pokeheartgold/asm/overlay_63.s
Adrienn Tindall 8660536d04 Make HeapID an enum
Also made some _ctor and _new -> _New
2023-06-03 02:18:52 -05:00

7654 lines
143 KiB
ArmAsm

.include "asm/macros.inc"
.include "overlay_63.inc"
.include "global.inc"
.text
thumb_func_start ov63_0221BE20
ov63_0221BE20: ; 0x0221BE20
push {r3, r4, r5, lr}
add r4, r0, #0
mov r0, #0
add r1, r0, #0
bl Main_SetVBlankIntrCB
bl HBlankInterruptDisable
mov r0, #0
bl GX_EngineASetLayers
mov r0, #0
bl GX_EngineBSetLayers
ldr r2, _0221BF10 ; =0x04000050
mov r1, #0
strh r1, [r2]
ldr r0, _0221BF14 ; =0x04001050
ldr r3, _0221BF18 ; =0x04000304
strh r1, [r0]
ldrh r1, [r3]
lsr r0, r3, #0xb
lsl r2, r2, #0xc
orr r0, r1
strh r0, [r3]
mov r0, #3
mov r1, #0x3e
bl CreateHeap
ldr r1, _0221BF1C ; =0x0001306C
add r0, r4, #0
mov r2, #0x3e
bl OverlayManager_CreateAndGetData
ldr r2, _0221BF1C ; =0x0001306C
mov r1, #0
add r5, r0, #0
bl MI_CpuFill8
add r0, r4, #0
bl OverlayManager_GetArgs
str r0, [r5]
mov r0, #0
mov r1, #0x1b
mov r2, #0xb4
mov r3, #0x3e
bl NewMsgDataFromNarc
add r1, r5, #0
add r1, #0x84
str r0, [r1]
mov r0, #0x3e
bl MessageFormat_new
add r1, r5, #0
add r1, #0x88
str r0, [r1]
mov r0, #0x7d
lsl r0, r0, #2
mov r1, #0x3e
bl String_New
add r1, r5, #0
add r1, #0x8c
str r0, [r1]
mov r0, #0x7d
lsl r0, r0, #2
mov r1, #0x3e
bl String_New
add r1, r5, #0
add r1, #0x90
str r0, [r1]
mov r0, #0x65
mov r1, #0x3e
bl NARC_ctor
add r1, r5, #0
add r1, #0x94
str r0, [r1]
mov r0, #0xb4
mov r1, #0x3e
bl NARC_ctor
add r1, r5, #0
add r1, #0x98
str r0, [r1]
add r0, r5, #0
bl ov63_0221E114
bl ov63_0221BFBC
add r0, r5, #0
bl ov63_0221C044
add r0, r5, #0
bl ov63_0221C068
ldr r1, _0221BF20 ; =0x000003F7
mov r0, #8
mov r2, #1
bl sub_02004EC4
mov r1, #0
mov r0, #0x47
add r2, r1, #0
bl sub_02004EC4
mov r1, #0x1e
mov r0, #0
lsl r1, r1, #4
mov r2, #0x3e
bl LoadFontPal0
ldr r0, _0221BF24 ; =0x0001304C
mov r1, #2
str r1, [r5, r0]
mov r0, #1
pop {r3, r4, r5, pc}
.balign 4, 0
_0221BF10: .word 0x04000050
_0221BF14: .word 0x04001050
_0221BF18: .word 0x04000304
_0221BF1C: .word 0x0001306C
_0221BF20: .word 0x000003F7
_0221BF24: .word 0x0001304C
thumb_func_end ov63_0221BE20
thumb_func_start ov63_0221BF28
ov63_0221BF28: ; 0x0221BF28
push {r3, r4, r5, lr}
add r5, r0, #0
bl OverlayManager_GetData
add r4, r0, #0
bl ov63_0221C118
add r0, r4, #0
bl ov63_0221C05C
add r0, r4, #0
add r0, #0x98
ldr r0, [r0]
bl NARC_dtor
add r0, r4, #0
add r0, #0x94
ldr r0, [r0]
bl NARC_dtor
add r0, r4, #0
add r0, #0x8c
ldr r0, [r0]
bl String_dtor
add r0, r4, #0
add r0, #0x90
ldr r0, [r0]
bl String_dtor
add r0, r4, #0
add r0, #0x88
ldr r0, [r0]
bl MessageFormat_delete
add r4, #0x84
ldr r0, [r4]
bl DestroyMsgData
add r0, r5, #0
bl OverlayManager_FreeData
mov r0, #0x3e
bl DestroyHeap
mov r0, #1
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_end ov63_0221BF28
thumb_func_start ov63_0221BF88
ov63_0221BF88: ; 0x0221BF88
push {r4, lr}
bl OverlayManager_GetData
ldr r1, _0221BFB4 ; =0x0001304C
add r4, r0, #0
ldr r1, [r4, r1]
lsl r2, r1, #2
ldr r1, _0221BFB8 ; =ov63_0221FD18
ldr r1, [r1, r2]
blx r1
ldr r1, _0221BFB4 ; =0x0001304C
str r0, [r4, r1]
ldr r0, [r4, r1]
cmp r0, #8
bne _0221BFAA
mov r0, #1
pop {r4, pc}
_0221BFAA:
add r0, r4, #0
bl ov63_0221C14C
mov r0, #0
pop {r4, pc}
.balign 4, 0
_0221BFB4: .word 0x0001304C
_0221BFB8: .word ov63_0221FD18
thumb_func_end ov63_0221BF88
thumb_func_start ov63_0221BFBC
ov63_0221BFBC: ; 0x0221BFBC
ldr r3, _0221BFC4 ; =GX_SetBanks
ldr r0, _0221BFC8 ; =ov63_0221FD58
bx r3
nop
_0221BFC4: .word GX_SetBanks
_0221BFC8: .word ov63_0221FD58
thumb_func_end ov63_0221BFBC
thumb_func_start ov63_0221BFCC
ov63_0221BFCC: ; 0x0221BFCC
push {r4, lr}
add r4, r1, #0
ldr r1, [r4, #8]
cmp r1, #0
beq _0221BFE2
add r0, r4, #0
blx r1
cmp r0, #0
bne _0221BFE2
mov r0, #0
str r0, [r4, #8]
_0221BFE2:
ldr r0, [r4, #0x10]
bl BgConfig_HandleScheduledScrollAndTransferOps
add r4, #0xa0
ldr r0, [r4]
bl sub_0200D020
bl sub_0200D034
ldr r3, _0221C004 ; =0x027E0000
ldr r1, _0221C008 ; =0x00003FF8
mov r0, #1
ldr r2, [r3, r1]
orr r0, r2
str r0, [r3, r1]
pop {r4, pc}
nop
_0221C004: .word 0x027E0000
_0221C008: .word 0x00003FF8
thumb_func_end ov63_0221BFCC
thumb_func_start ov63_0221C00C
ov63_0221C00C: ; 0x0221C00C
push {r4, r5, r6, lr}
add r6, r2, #0
add r4, r1, #0
add r5, r0, #0
add r1, r6, #0
bl DC_FlushRange
add r0, r5, #0
add r1, r4, #0
add r2, r6, #0
bl GX_LoadOBJ
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_end ov63_0221C00C
thumb_func_start ov63_0221C028
ov63_0221C028: ; 0x0221C028
push {r4, r5, r6, lr}
add r6, r2, #0
add r4, r1, #0
add r5, r0, #0
add r1, r6, #0
bl DC_FlushRange
add r0, r5, #0
add r1, r4, #0
add r2, r6, #0
bl GX_LoadOBJPltt
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_end ov63_0221C028
thumb_func_start ov63_0221C044
ov63_0221C044: ; 0x0221C044
push {r4, lr}
add r4, r0, #0
mov r0, #0x3e
bl BgConfig_Alloc
str r0, [r4, #0x10]
mov r0, #4
mov r1, #0
bl BG_SetMaskColor
pop {r4, pc}
.balign 4, 0
thumb_func_end ov63_0221C044
thumb_func_start ov63_0221C05C
ov63_0221C05C: ; 0x0221C05C
ldr r3, _0221C064 ; =FreeToHeap
ldr r0, [r0, #0x10]
bx r3
nop
_0221C064: .word FreeToHeap
thumb_func_end ov63_0221C05C
thumb_func_start ov63_0221C068
ov63_0221C068: ; 0x0221C068
push {r3, r4, r5, r6, lr}
sub sp, #0x4c
add r4, r0, #0
mov r0, #0x3e
bl sub_0200CF18
add r1, r4, #0
add r1, #0x9c
str r0, [r1]
add r0, r4, #0
add r0, #0x9c
ldr r0, [r0]
bl sub_0200CF38
add r1, r4, #0
add r1, #0xa0
add r2, sp, #0x2c
ldr r5, _0221C10C ; =ov63_0221FCB8
str r0, [r1]
ldmia r5!, {r0, r1}
add r3, r2, #0
stmia r2!, {r0, r1}
ldmia r5!, {r0, r1}
stmia r2!, {r0, r1}
ldmia r5!, {r0, r1}
stmia r2!, {r0, r1}
ldmia r5!, {r0, r1}
ldr r6, _0221C110 ; =ov63_0221FB30
stmia r2!, {r0, r1}
add r5, sp, #0x18
ldmia r6!, {r0, r1}
add r2, r5, #0
stmia r5!, {r0, r1}
ldmia r6!, {r0, r1}
stmia r5!, {r0, r1}
ldr r0, [r6]
add r1, r3, #0
str r0, [r5]
add r0, r4, #0
add r0, #0x9c
ldr r0, [r0]
mov r3, #0x20
bl sub_0200CF70
ldr r3, _0221C114 ; =ov63_0221FB5C
add r2, sp, #0
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
add r0, r4, #0
add r1, r4, #0
add r0, #0x9c
add r1, #0xa0
ldr r0, [r0]
ldr r1, [r1]
mov r2, #0xf
bl sub_0200CFF4
add r0, r4, #0
add r1, r4, #0
add r0, #0x9c
add r1, #0xa0
ldr r0, [r0]
ldr r1, [r1]
add r2, sp, #0
bl sub_0200D3F8
add r4, #0x9c
ldr r0, [r4]
bl sub_0200CF6C
mov r2, #1
mov r1, #0
lsl r2, r2, #0x16
bl G2dRenderer_SetSubSurfaceCoords
add sp, #0x4c
pop {r3, r4, r5, r6, pc}
nop
_0221C10C: .word ov63_0221FCB8
_0221C110: .word ov63_0221FB30
_0221C114: .word ov63_0221FB5C
thumb_func_end ov63_0221C068
thumb_func_start ov63_0221C118
ov63_0221C118: ; 0x0221C118
push {r4, lr}
add r4, r0, #0
add r1, r4, #0
add r0, #0x9c
add r1, #0xa0
ldr r0, [r0]
ldr r1, [r1]
bl sub_0200D998
add r4, #0x9c
ldr r0, [r4]
bl sub_0200D108
pop {r4, pc}
thumb_func_end ov63_0221C118
thumb_func_start ov63_0221C134
ov63_0221C134: ; 0x0221C134
push {r3, r4, r5, lr}
add r4, r0, #0
lsl r5, r1, #2
add r4, #0xa4
ldr r0, [r4, r5]
cmp r0, #0
beq _0221C14A
bl sub_0200D9DC
mov r0, #0
str r0, [r4, r5]
_0221C14A:
pop {r3, r4, r5, pc}
thumb_func_end ov63_0221C134
thumb_func_start ov63_0221C14C
ov63_0221C14C: ; 0x0221C14C
push {r3, r4, r5, lr}
add r5, r0, #0
mov r4, #0
_0221C152:
add r0, r5, #0
add r0, #0xa4
ldr r0, [r0]
cmp r0, #0
beq _0221C160
bl sub_0200DC18
_0221C160:
add r4, r4, #1
add r5, r5, #4
cmp r4, #0xf
blo _0221C152
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_end ov63_0221C14C
thumb_func_start ov63_0221C16C
ov63_0221C16C: ; 0x0221C16C
push {r4, r5, r6, lr}
add r5, r0, #0
lsl r4, r1, #2
add r5, #0xa4
ldr r0, [r5, r4]
mov r1, #0
add r6, r2, #0
bl sub_0200DCC0
ldr r0, [r5, r4]
add r1, r6, #0
bl sub_0200DC4C
pop {r4, r5, r6, pc}
thumb_func_end ov63_0221C16C
thumb_func_start ov63_0221C188
ov63_0221C188: ; 0x0221C188
push {r4, r5, lr}
sub sp, #0xc
add r5, r0, #0
mov r0, #6
add r4, r1, #0
str r0, [sp]
mov r1, #1
str r1, [sp, #4]
mov r0, #0x3e
str r0, [sp, #8]
mov r0, #0
add r2, r1, #0
add r3, r0, #0
bl BeginNormalPaletteFade
ldr r0, _0221C1B0 ; =0x00013050
str r4, [r5, r0]
mov r0, #0
add sp, #0xc
pop {r4, r5, pc}
.balign 4, 0
_0221C1B0: .word 0x00013050
thumb_func_end ov63_0221C188
thumb_func_start ov63_0221C1B4
ov63_0221C1B4: ; 0x0221C1B4
push {r4, r5, lr}
sub sp, #0xc
add r5, r0, #0
mov r0, #6
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
mov r0, #0x3e
str r0, [sp, #8]
mov r0, #0
add r4, r1, #0
add r1, r0, #0
add r2, r0, #0
add r3, r0, #0
bl BeginNormalPaletteFade
ldr r0, _0221C1E0 ; =0x00013050
str r4, [r5, r0]
mov r0, #0
add sp, #0xc
pop {r4, r5, pc}
nop
_0221C1E0: .word 0x00013050
thumb_func_end ov63_0221C1B4
thumb_func_start ov63_0221C1E4
ov63_0221C1E4: ; 0x0221C1E4
ldr r3, _0221C1F4 ; =0x00013050
str r2, [r0, r3]
mov r2, #0
strh r2, [r0, #0xc]
strh r2, [r0, #0xe]
str r1, [r0, #8]
mov r0, #1
bx lr
.balign 4, 0
_0221C1F4: .word 0x00013050
thumb_func_end ov63_0221C1E4
thumb_func_start ov63_0221C1F8
ov63_0221C1F8: ; 0x0221C1F8
push {r4, lr}
add r4, r0, #0
bl IsPaletteFadeFinished
cmp r0, #1
bne _0221C20A
ldr r0, _0221C210 ; =0x00013050
ldr r0, [r4, r0]
pop {r4, pc}
_0221C20A:
mov r0, #0
pop {r4, pc}
nop
_0221C210: .word 0x00013050
thumb_func_end ov63_0221C1F8
thumb_func_start ov63_0221C214
ov63_0221C214: ; 0x0221C214
ldr r1, [r0, #8]
cmp r1, #0
bne _0221C220
ldr r1, _0221C224 ; =0x00013050
ldr r0, [r0, r1]
bx lr
_0221C220:
mov r0, #1
bx lr
.balign 4, 0
_0221C224: .word 0x00013050
thumb_func_end ov63_0221C214
thumb_func_start ov63_0221C228
ov63_0221C228: ; 0x0221C228
push {r4, lr}
add r4, r0, #0
bl ov63_0221CC78
add r0, r4, #0
bl ov63_0221CDF8
add r0, r4, #0
bl ov63_0221CD68
ldr r0, _0221C25C ; =0x00013054
mov r2, #0
strh r2, [r4, r0]
add r0, r0, #2
strh r2, [r4, r0]
ldr r0, _0221C260 ; =ov63_0221BFCC
add r1, r4, #0
bl sub_0200E33C
str r0, [r4, #4]
add r0, r4, #0
mov r1, #3
bl ov63_0221C188
pop {r4, pc}
nop
_0221C25C: .word 0x00013054
_0221C260: .word ov63_0221BFCC
thumb_func_end ov63_0221C228
thumb_func_start ov63_0221C264
ov63_0221C264: ; 0x0221C264
push {r3, r4, lr}
sub sp, #4
ldr r1, _0221C354 ; =0x00013054
add r4, r0, #0
ldrh r2, [r4, r1]
cmp r2, #4
bhi _0221C34C
add r3, r2, r2
add r3, pc
ldrh r3, [r3, #6]
lsl r3, r3, #0x10
asr r3, r3, #0x10
add pc, r3
_0221C27E: ; jump table
.short _0221C288 - _0221C27E - 2 ; case 0
.short _0221C296 - _0221C27E - 2 ; case 1
.short _0221C2B8 - _0221C27E - 2 ; case 2
.short _0221C316 - _0221C27E - 2 ; case 3
.short _0221C342 - _0221C27E - 2 ; case 4
_0221C288:
bl ov63_0221D344
ldr r0, _0221C354 ; =0x00013054
ldrh r1, [r4, r0]
add r1, r1, #1
strh r1, [r4, r0]
b _0221C34C
_0221C296:
add r2, r2, #1
strh r2, [r4, r1]
add r1, r1, #2
ldrh r2, [r4, r1]
mov r1, #1
tst r1, r2
bne _0221C2AE
ldr r1, _0221C358 ; =ov63_0221D55C
mov r2, #3
bl ov63_0221C1E4
b _0221C34C
_0221C2AE:
ldr r1, _0221C35C ; =ov63_0221DB38
mov r2, #3
bl ov63_0221C1E4
b _0221C34C
_0221C2B8:
ldr r3, [r4, #8]
cmp r3, #0
bne _0221C2C4
add r0, r2, #1
strh r0, [r4, r1]
b _0221C34C
_0221C2C4:
add r2, r1, #0
add r2, #0xc
ldr r2, [r4, r2]
lsl r2, r2, #0x1e
lsr r2, r2, #0x1f
cmp r2, #1
bne _0221C2EC
mov r2, #0
str r2, [sp]
add r1, r1, #2
ldrh r1, [r4, r1]
mov r2, #2
mov r3, #1
bl ov63_0221E450
ldr r1, _0221C360 ; =0x00013060
mov r0, #2
ldr r2, [r4, r1]
bic r2, r0
str r2, [r4, r1]
_0221C2EC:
ldr r1, _0221C360 ; =0x00013060
ldr r0, [r4, r1]
lsl r0, r0, #0x1f
lsr r0, r0, #0x1f
cmp r0, #1
bne _0221C34C
mov r0, #2
str r0, [sp]
sub r1, #0xa
ldrh r1, [r4, r1]
add r0, r4, #0
mov r2, #0
mov r3, #1
bl ov63_0221E450
ldr r1, _0221C360 ; =0x00013060
mov r0, #1
ldr r2, [r4, r1]
bic r2, r0
str r2, [r4, r1]
b _0221C34C
_0221C316:
bl ov63_0221D21C
ldr r1, _0221C364 ; =0x00013056
ldrh r0, [r4, r1]
add r0, r0, #1
strh r0, [r4, r1]
add r0, r1, #0
sub r0, #0xe
ldr r2, [r4, r0]
ldrh r0, [r4, r1]
cmp r2, r0
bne _0221C33A
sub r0, r1, #2
ldrh r0, [r4, r0]
add r2, r0, #1
sub r0, r1, #2
strh r2, [r4, r0]
b _0221C34C
_0221C33A:
mov r2, #0
sub r0, r1, #2
strh r2, [r4, r0]
b _0221C34C
_0221C342:
mov r1, #4
bl ov63_0221C1B4
add sp, #4
pop {r3, r4, pc}
_0221C34C:
mov r0, #3
add sp, #4
pop {r3, r4, pc}
nop
_0221C354: .word 0x00013054
_0221C358: .word ov63_0221D55C
_0221C35C: .word ov63_0221DB38
_0221C360: .word 0x00013060
_0221C364: .word 0x00013056
thumb_func_end ov63_0221C264
thumb_func_start ov63_0221C368
ov63_0221C368: ; 0x0221C368
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #4]
bl DestroySysTask
add r0, r4, #0
bl ov63_0221CE7C
add r0, r4, #0
bl ov63_0221CD40
mov r0, #5
pop {r4, pc}
.balign 4, 0
thumb_func_end ov63_0221C368
thumb_func_start ov63_0221C384
ov63_0221C384: ; 0x0221C384
push {r4, lr}
ldr r1, _0221C3C4 ; =0x00013056
add r4, r0, #0
mov r2, #0
strh r2, [r4, r1]
sub r1, r1, #2
strh r2, [r4, r1]
bl ov63_0221E940
add r0, r4, #0
bl ov63_0221EA24
add r0, r4, #0
bl ov63_0221EAA8
add r0, r4, #0
bl ov63_0221EC1C
add r0, r4, #0
bl ov63_0221F088
ldr r0, _0221C3C8 ; =ov63_0221E8FC
add r1, r4, #0
mov r2, #4
bl sub_0200E33C
str r0, [r4, #4]
add r0, r4, #0
mov r1, #6
bl ov63_0221C188
pop {r4, pc}
.balign 4, 0
_0221C3C4: .word 0x00013056
_0221C3C8: .word ov63_0221E8FC
thumb_func_end ov63_0221C384
thumb_func_start ov63_0221C3CC
ov63_0221C3CC: ; 0x0221C3CC
push {r3, r4, r5, r6, r7, lr}
ldr r1, _0221C570 ; =0x00013054
add r5, r0, #0
ldrh r2, [r5, r1]
cmp r2, #0
beq _0221C3E4
cmp r2, #1
beq _0221C3F2
cmp r2, #2
bne _0221C3E2
b _0221C562
_0221C3E2:
b _0221C56A
_0221C3E4:
add r2, r2, #1
strh r2, [r5, r1]
ldr r1, _0221C574 ; =ov63_0221E5A0
mov r2, #6
bl ov63_0221C1E4
b _0221C56A
_0221C3F2:
ldr r0, [r5, #8]
cmp r0, #0
bne _0221C3FC
add r0, r2, #1
strh r0, [r5, r1]
_0221C3FC:
ldr r0, _0221C578 ; =0x00013060
ldr r0, [r5, r0]
lsl r0, r0, #0x1d
lsr r0, r0, #0x1f
cmp r0, #1
beq _0221C40A
b _0221C51C
_0221C40A:
add r0, r5, #0
bl ov63_0221F238
add r1, r5, #0
add r1, #0xf8
str r0, [r1]
add r0, r5, #0
add r0, #0xf8
mov r2, #5
ldr r0, [r0]
ldr r1, _0221C57C ; =0xFFFFF493
lsl r2, r2, #0xe
bl ov63_0221F324
add r0, r5, #0
add r0, #0xf8
mov r2, #0xf
ldr r0, [r0]
ldr r1, _0221C580 ; =0xFFFFF923
lsl r2, r2, #0xe
bl ov63_0221F324
add r0, r5, #0
add r0, #0xf8
mov r2, #0xa
ldr r0, [r0]
ldr r1, _0221C584 ; =0xFFFFFDB6
lsl r2, r2, #0xe
bl ov63_0221F324
add r0, r5, #0
add r0, #0xf8
mov r2, #0x23
ldr r0, [r0]
ldr r1, _0221C588 ; =0x0000024A
lsl r2, r2, #0xe
bl ov63_0221F324
add r0, r5, #0
add r0, #0xf8
mov r2, #0x1e
ldr r0, [r0]
ldr r1, _0221C58C ; =0x000006DD
lsl r2, r2, #0xe
bl ov63_0221F324
add r0, r5, #0
add r0, #0xf8
mov r2, #0xa
ldr r0, [r0]
ldr r1, _0221C590 ; =0x00000B6D
lsl r2, r2, #0x10
bl ov63_0221F324
add r0, r5, #0
bl ov63_0221F614
add r1, r5, #0
add r1, #0xfc
str r0, [r1]
add r0, r5, #0
add r0, #0xfc
ldr r0, [r0]
bl ov63_0221F7DC
mov r0, #2
mov r1, #1
bl GX_EngineAToggleLayers
mov r0, #4
mov r1, #1
bl GX_EngineAToggleLayers
mov r0, #8
mov r1, #1
bl GX_EngineAToggleLayers
add r0, r5, #0
add r0, #0xd4
ldr r0, [r0]
mov r1, #1
bl sub_0200DCE8
add r0, r5, #0
add r0, #0xd8
ldr r0, [r0]
mov r1, #1
bl sub_0200DCE8
ldr r0, _0221C594 ; =0x00013048
mov r6, #0
ldr r0, [r5, r0]
cmp r0, #0
bls _0221C512
ldr r7, _0221C594 ; =0x00013048
add r4, r5, #0
_0221C4CA:
add r0, r5, #0
add r1, r6, #0
add r2, r6, #0
bl ov63_0221C9E0
add r0, r4, #0
add r0, #0xa4
mov r1, #0xfe
lsl r1, r1, #0x16
ldr r0, [r0]
add r2, r1, #0
bl sub_0200E024
add r0, r4, #0
add r0, #0xbc
ldr r0, [r0]
mov r1, #1
bl sub_0200DCE8
add r0, r4, #0
add r0, #0xa4
ldr r0, [r0]
mov r1, #0
bl sub_0200E0FC
add r0, r4, #0
add r0, #0xbc
ldr r0, [r0]
mov r1, #1
bl sub_0200E0FC
ldr r0, [r5, r7]
add r6, r6, #1
add r4, r4, #4
cmp r6, r0
blo _0221C4CA
_0221C512:
ldr r1, _0221C578 ; =0x00013060
mov r0, #4
ldr r2, [r5, r1]
bic r2, r0
str r2, [r5, r1]
_0221C51C:
ldr r0, _0221C578 ; =0x00013060
ldr r0, [r5, r0]
lsl r0, r0, #0x1c
lsr r0, r0, #0x1f
cmp r0, #1
bne _0221C544
add r0, r5, #0
bl ov63_0221E8AC
ldr r0, _0221C598 ; =0x00000919
bl PlaySE
ldr r0, _0221C59C ; =0x0000091A
bl PlaySE
ldr r1, _0221C578 ; =0x00013060
mov r0, #8
ldr r2, [r5, r1]
bic r2, r0
str r2, [r5, r1]
_0221C544:
ldr r0, _0221C578 ; =0x00013060
ldr r0, [r5, r0]
lsl r0, r0, #0x1b
lsr r0, r0, #0x1f
cmp r0, #1
bne _0221C56A
add r0, r5, #0
bl ov63_0221E8D4
ldr r1, _0221C578 ; =0x00013060
mov r0, #0x10
ldr r2, [r5, r1]
bic r2, r0
str r2, [r5, r1]
b _0221C56A
_0221C562:
mov r0, #0
strh r0, [r5, r1]
mov r0, #7
pop {r3, r4, r5, r6, r7, pc}
_0221C56A:
mov r0, #6
pop {r3, r4, r5, r6, r7, pc}
nop
_0221C570: .word 0x00013054
_0221C574: .word ov63_0221E5A0
_0221C578: .word 0x00013060
_0221C57C: .word 0xFFFFF493
_0221C580: .word 0xFFFFF923
_0221C584: .word 0xFFFFFDB6
_0221C588: .word 0x0000024A
_0221C58C: .word 0x000006DD
_0221C590: .word 0x00000B6D
_0221C594: .word 0x00013048
_0221C598: .word 0x00000919
_0221C59C: .word 0x0000091A
thumb_func_end ov63_0221C3CC
thumb_func_start ov63_0221C5A0
ov63_0221C5A0: ; 0x0221C5A0
push {r4, lr}
ldr r1, _0221C60C ; =0x00013054
add r4, r0, #0
ldrh r1, [r4, r1]
cmp r1, #0
beq _0221C5B6
cmp r1, #1
beq _0221C5DA
cmp r1, #2
beq _0221C5EC
b _0221C606
_0221C5B6:
ldr r0, [r4, #4]
bl DestroySysTask
add r0, r4, #0
add r0, #0xfc
ldr r0, [r0]
bl ov63_0221F7C4
add r0, r4, #0
add r0, #0xf8
ldr r0, [r0]
bl ov63_0221F5B4
ldr r0, _0221C60C ; =0x00013054
ldrh r1, [r4, r0]
add r1, r1, #1
strh r1, [r4, r0]
b _0221C606
_0221C5DA:
bl ov63_0221F600
cmp r0, #1
bne _0221C606
ldr r0, _0221C60C ; =0x00013054
ldrh r1, [r4, r0]
add r1, r1, #1
strh r1, [r4, r0]
b _0221C606
_0221C5EC:
bl ov63_0221F1C4
add r0, r4, #0
bl ov63_0221EFD8
add r0, r4, #0
bl ov63_0221EC04
add r0, r4, #0
bl ov63_0221E9FC
mov r0, #8
pop {r4, pc}
_0221C606:
mov r0, #7
pop {r4, pc}
nop
_0221C60C: .word 0x00013054
thumb_func_end ov63_0221C5A0
thumb_func_start ov63_0221C610
ov63_0221C610: ; 0x0221C610
push {r4, r5, r6, r7, lr}
sub sp, #0xc
add r4, r1, #0
str r0, [sp]
str r2, [sp, #4]
add r6, r3, #0
bne _0221C638
mov r1, #0
mov r2, #2
ldrsh r1, [r4, r1]
ldrsh r2, [r4, r2]
bl sub_0200DDB8
ldr r1, [r4, #8]
ldr r0, [sp]
add r2, r1, #0
bl sub_0200E024
add sp, #0xc
pop {r4, r5, r6, r7, pc}
_0221C638:
add r1, r2, #0
cmp r6, r1
bne _0221C658
mov r1, #4
mov r2, #6
ldrsh r1, [r4, r1]
ldrsh r2, [r4, r2]
bl sub_0200DDB8
ldr r1, [r4, #0xc]
ldr r0, [sp]
add r2, r1, #0
bl sub_0200E024
add sp, #0xc
pop {r4, r5, r6, r7, pc}
_0221C658:
mov r0, #4
ldrsh r7, [r4, r0]
mov r0, #0
ldrsh r5, [r4, r0]
sub r0, r5, r7
bl abs
ldr r1, [sp, #4]
lsl r0, r0, #8
bl _u32_div_f
mul r0, r6
lsl r0, r0, #8
asr r0, r0, #0x10
cmp r5, r7
ble _0221C682
sub r0, r5, r0
lsl r0, r0, #0x10
asr r0, r0, #0x10
str r0, [sp, #8]
b _0221C68A
_0221C682:
add r0, r5, r0
lsl r0, r0, #0x10
asr r0, r0, #0x10
str r0, [sp, #8]
_0221C68A:
mov r0, #6
ldrsh r7, [r4, r0]
mov r0, #2
ldrsh r5, [r4, r0]
sub r0, r5, r7
bl abs
ldr r1, [sp, #4]
lsl r0, r0, #8
bl _u32_div_f
mul r0, r6
lsl r0, r0, #8
asr r0, r0, #0x10
cmp r5, r7
ble _0221C6AE
sub r0, r5, r0
b _0221C6B0
_0221C6AE:
add r0, r5, r0
_0221C6B0:
lsl r0, r0, #0x10
asr r2, r0, #0x10
ldr r0, [sp]
ldr r1, [sp, #8]
bl sub_0200DDB8
add r0, r6, #0
bl _ffltu
add r5, r0, #0
ldr r0, [r4, #0xc]
ldr r1, [r4, #8]
bl _fsub
add r6, r0, #0
ldr r0, [sp, #4]
bl _ffltu
add r1, r0, #0
add r0, r6, #0
bl _fdiv
add r1, r0, #0
add r0, r5, #0
bl _fmul
add r1, r0, #0
ldr r0, [r4, #8]
bl _fadd
add r1, r0, #0
ldr r0, [sp]
add r2, r1, #0
bl sub_0200E024
add sp, #0xc
pop {r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_end ov63_0221C610
thumb_func_start ov63_0221C6FC
ov63_0221C6FC: ; 0x0221C6FC
push {r3, r4, r5, lr}
sub sp, #0x10
add r5, r0, #0
mov r0, #8
mov r1, #0x3e
bl NARC_ctor
add r4, r0, #0
mov r0, #0
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
ldr r0, _0221C84C ; =0x0000D8D8
add r1, r5, #0
str r0, [sp, #8]
add r0, r5, #0
add r0, #0x9c
add r1, #0xa0
ldr r0, [r0]
ldr r1, [r1]
add r2, r4, #0
mov r3, #0x4c
bl sub_0200D504
mov r0, #0
str r0, [sp]
ldr r0, _0221C84C ; =0x0000D8D8
add r1, r5, #0
str r0, [sp, #4]
add r0, r5, #0
add r0, #0x9c
add r1, #0xa0
ldr r0, [r0]
ldr r1, [r1]
add r2, r4, #0
mov r3, #0x4d
bl sub_0200D6EC
mov r0, #0
str r0, [sp]
ldr r0, _0221C84C ; =0x0000D8D8
add r1, r5, #0
str r0, [sp, #4]
add r0, r5, #0
add r0, #0x9c
add r1, #0xa0
ldr r0, [r0]
ldr r1, [r1]
add r2, r4, #0
mov r3, #0x4e
bl sub_0200D71C
mov r0, #0
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
str r0, [sp, #8]
ldr r0, _0221C84C ; =0x0000D8D8
add r1, r5, #0
str r0, [sp, #0xc]
add r0, r5, #0
add r0, #0x9c
add r1, #0xa0
ldr r0, [r0]
ldr r1, [r1]
add r2, r4, #0
mov r3, #0x4b
bl sub_0200D5D4
mov r0, #0
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
str r0, [sp, #8]
ldr r0, _0221C850 ; =0x0000D8D9
add r1, r5, #0
str r0, [sp, #0xc]
add r0, r5, #0
add r0, #0x9c
add r1, #0xa0
ldr r0, [r0]
ldr r1, [r1]
add r2, r4, #0
mov r3, #0x4b
bl sub_0200D5D4
mov r0, #0
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
ldr r0, _0221C850 ; =0x0000D8D9
add r1, r5, #0
str r0, [sp, #8]
add r0, r5, #0
add r0, #0x9c
add r1, #0xa0
ldr r0, [r0]
ldr r1, [r1]
add r2, r4, #0
mov r3, #0x4c
bl sub_0200D504
mov r0, #0
str r0, [sp]
ldr r0, _0221C850 ; =0x0000D8D9
add r1, r5, #0
str r0, [sp, #4]
add r0, r5, #0
add r0, #0x9c
add r1, #0xa0
ldr r0, [r0]
ldr r1, [r1]
add r2, r4, #0
mov r3, #0x4d
bl sub_0200D6EC
mov r0, #0
str r0, [sp]
ldr r0, _0221C850 ; =0x0000D8D9
add r1, r5, #0
str r0, [sp, #4]
add r0, r5, #0
add r0, #0x9c
add r1, #0xa0
ldr r0, [r0]
ldr r1, [r1]
add r2, r4, #0
mov r3, #0x4e
bl sub_0200D71C
mov r0, #0
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
str r0, [sp, #8]
ldr r0, _0221C854 ; =0x0000D8DA
add r1, r5, #0
str r0, [sp, #0xc]
add r0, r5, #0
add r0, #0x9c
add r1, #0xa0
ldr r0, [r0]
ldr r1, [r1]
add r2, r4, #0
mov r3, #0x4b
bl sub_0200D5D4
mov r0, #0
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
str r0, [sp, #8]
ldr r0, _0221C858 ; =0x0000D8DB
add r2, r4, #0
str r0, [sp, #0xc]
add r0, r5, #0
add r0, #0x9c
add r5, #0xa0
ldr r0, [r0]
ldr r1, [r5]
mov r3, #0x4b
bl sub_0200D5D4
add r0, r4, #0
bl NARC_dtor
add sp, #0x10
pop {r3, r4, r5, pc}
.balign 4, 0
_0221C84C: .word 0x0000D8D8
_0221C850: .word 0x0000D8D9
_0221C854: .word 0x0000D8DA
_0221C858: .word 0x0000D8DB
thumb_func_end ov63_0221C6FC
thumb_func_start ov63_0221C85C
ov63_0221C85C: ; 0x0221C85C
push {r4, lr}
add r4, r0, #0
add r0, #0xa0
ldr r0, [r0]
ldr r1, _0221C8D8 ; =0x0000D8D8
bl sub_0200D968
add r0, r4, #0
add r0, #0xa0
ldr r0, [r0]
ldr r1, _0221C8DC ; =0x0000D8D9
bl sub_0200D968
add r0, r4, #0
add r0, #0xa0
ldr r0, [r0]
ldr r1, _0221C8E0 ; =0x0000D8DA
bl sub_0200D968
add r0, r4, #0
add r0, #0xa0
ldr r0, [r0]
ldr r1, _0221C8E4 ; =0x0000D8DB
bl sub_0200D968
add r0, r4, #0
add r0, #0xa0
ldr r0, [r0]
ldr r1, _0221C8D8 ; =0x0000D8D8
bl sub_0200D958
add r0, r4, #0
add r0, #0xa0
ldr r0, [r0]
ldr r1, _0221C8D8 ; =0x0000D8D8
bl sub_0200D978
add r0, r4, #0
add r0, #0xa0
ldr r0, [r0]
ldr r1, _0221C8D8 ; =0x0000D8D8
bl sub_0200D988
add r0, r4, #0
add r0, #0xa0
ldr r0, [r0]
ldr r1, _0221C8DC ; =0x0000D8D9
bl sub_0200D958
add r0, r4, #0
add r0, #0xa0
ldr r0, [r0]
ldr r1, _0221C8DC ; =0x0000D8D9
bl sub_0200D978
add r4, #0xa0
ldr r0, [r4]
ldr r1, _0221C8DC ; =0x0000D8D9
bl sub_0200D988
pop {r4, pc}
nop
_0221C8D8: .word 0x0000D8D8
_0221C8DC: .word 0x0000D8D9
_0221C8E0: .word 0x0000D8DA
_0221C8E4: .word 0x0000D8DB
thumb_func_end ov63_0221C85C
thumb_func_start ov63_0221C8E8
ov63_0221C8E8: ; 0x0221C8E8
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x18
add r4, r1, #0
ldr r1, [r4]
add r5, r0, #0
add r0, sp, #8
add r6, r2, #0
add r7, r3, #0
bl GetPokemonSpriteCharAndPlttNarcIds
cmp r6, #2
bne _0221C904
add r4, #0x6c
b _0221C908
_0221C904:
ldr r0, _0221C950 ; =0x0000196C
add r4, r4, r0
_0221C908:
add r5, #0xa4
lsl r6, r7, #2
ldr r0, [r5, r6]
ldr r0, [r0]
bl sub_02024B1C
mov r1, #1
bl NNS_G2dGetImageLocation
mov r2, #0x32
add r1, r0, #0
add r0, r4, #0
lsl r2, r2, #6
bl ov63_0221C00C
ldr r0, [r5, r6]
ldr r0, [r0]
bl sub_02024B34
mov r1, #1
bl NNS_G2dGetImagePaletteLocation
add r3, r0, #0
mov r0, #0x20
str r0, [sp]
mov r0, #0x3e
str r0, [sp, #4]
add r1, sp, #8
ldrh r0, [r1]
ldrh r1, [r1, #4]
mov r2, #1
bl GfGfxLoader_GXLoadPal
add sp, #0x18
pop {r3, r4, r5, r6, r7, pc}
nop
_0221C950: .word 0x0000196C
thumb_func_end ov63_0221C8E8
thumb_func_start ov63_0221C954
ov63_0221C954: ; 0x0221C954
push {r3, r4, r5, lr}
lsl r1, r1, #2
add r0, r0, r1
add r0, #0xa4
ldr r0, [r0]
add r5, r2, #0
ldr r0, [r0]
bl sub_02024B34
mov r1, #1
bl NNS_G2dGetImagePaletteLocation
add r1, r0, #0
cmp r5, #0
beq _0221C97C
cmp r5, #1
beq _0221C980
cmp r5, #2
beq _0221C984
b _0221C986
_0221C97C:
ldr r4, _0221C990 ; =ov63_0221FC58
b _0221C986
_0221C980:
ldr r4, _0221C994 ; =ov63_0221FC78
b _0221C986
_0221C984:
ldr r4, _0221C998 ; =ov63_0221FC98
_0221C986:
add r0, r4, #0
mov r2, #0x20
bl ov63_0221C028
pop {r3, r4, r5, pc}
.balign 4, 0
_0221C990: .word ov63_0221FC58
_0221C994: .word ov63_0221FC78
_0221C998: .word ov63_0221FC98
thumb_func_end ov63_0221C954
thumb_func_start ov63_0221C99C
ov63_0221C99C: ; 0x0221C99C
push {r4, r5, r6, lr}
add r5, r0, #0
lsl r0, r2, #2
add r0, r5, r0
add r0, #0xa4
ldr r0, [r0]
add r4, r1, #0
ldr r0, [r0]
bl sub_02024B34
mov r1, #1
bl NNS_G2dGetImagePaletteLocation
add r6, r0, #0
bl sub_02026EA4
mov r1, #1
bic r6, r1
mov r1, #1
lsl r1, r1, #8
add r3, r5, r1
ldr r1, _0221C9DC ; =0x0000328C
add r2, r4, #0
mul r2, r1
add r2, r3, r2
sub r1, #0x20
add r1, r2, r1
add r0, r0, r6
mov r2, #0x20
bl MI_CpuCopy8
pop {r4, r5, r6, pc}
.balign 4, 0
_0221C9DC: .word 0x0000328C
thumb_func_end ov63_0221C99C
thumb_func_start ov63_0221C9E0
ov63_0221C9E0: ; 0x0221C9E0
push {r3, r4, r5, lr}
add r5, r0, #0
lsl r0, r2, #2
add r0, r5, r0
add r0, #0xa4
ldr r0, [r0]
add r4, r1, #0
ldr r0, [r0]
bl sub_02024B34
mov r1, #1
bl NNS_G2dGetImagePaletteLocation
add r1, r0, #0
mov r0, #1
lsl r0, r0, #8
add r3, r5, r0
ldr r0, _0221CA18 ; =0x0000328C
add r2, r4, #0
mul r2, r0
add r2, r3, r2
sub r0, #0x20
add r0, r2, r0
mov r2, #0x20
bl ov63_0221C028
pop {r3, r4, r5, pc}
nop
_0221CA18: .word 0x0000328C
thumb_func_end ov63_0221C9E0
thumb_func_start ov63_0221CA1C
ov63_0221CA1C: ; 0x0221CA1C
push {r4, lr}
sub sp, #0x10
add r4, r0, #0
ldrb r0, [r1, #5]
cmp r0, #0
beq _0221CA8C
mov r0, #1
str r0, [sp]
str r0, [sp, #4]
ldr r0, _0221CB3C ; =0x0000D8DE
add r1, r4, #0
str r0, [sp, #8]
add r0, r4, #0
add r2, r4, #0
add r0, #0x9c
add r1, #0xa0
add r2, #0x94
ldr r0, [r0]
ldr r1, [r1]
ldr r2, [r2]
mov r3, #0xc
bl sub_0200D504
mov r0, #1
str r0, [sp]
ldr r0, _0221CB40 ; =0x0000D8DA
add r1, r4, #0
str r0, [sp, #4]
add r0, r4, #0
add r2, r4, #0
add r0, #0x9c
add r1, #0xa0
add r2, #0x94
ldr r0, [r0]
ldr r1, [r1]
ldr r2, [r2]
mov r3, #0xd
bl sub_0200D6EC
mov r0, #1
str r0, [sp]
ldr r0, _0221CB40 ; =0x0000D8DA
add r1, r4, #0
str r0, [sp, #4]
add r0, r4, #0
add r2, r4, #0
add r0, #0x9c
add r1, #0xa0
add r2, #0x94
ldr r0, [r0]
ldr r1, [r1]
ldr r2, [r2]
mov r3, #0xe
bl sub_0200D71C
b _0221CAEE
_0221CA8C:
mov r0, #1
str r0, [sp]
str r0, [sp, #4]
ldr r0, _0221CB3C ; =0x0000D8DE
add r1, r4, #0
str r0, [sp, #8]
add r0, r4, #0
add r2, r4, #0
add r0, #0x9c
add r1, #0xa0
add r2, #0x94
ldr r0, [r0]
ldr r1, [r1]
ldr r2, [r2]
mov r3, #9
bl sub_0200D504
mov r0, #1
str r0, [sp]
ldr r0, _0221CB40 ; =0x0000D8DA
add r1, r4, #0
str r0, [sp, #4]
add r0, r4, #0
add r2, r4, #0
add r0, #0x9c
add r1, #0xa0
add r2, #0x94
ldr r0, [r0]
ldr r1, [r1]
ldr r2, [r2]
mov r3, #0xa
bl sub_0200D6EC
mov r0, #1
str r0, [sp]
ldr r0, _0221CB40 ; =0x0000D8DA
add r1, r4, #0
str r0, [sp, #4]
add r0, r4, #0
add r2, r4, #0
add r0, #0x9c
add r1, #0xa0
add r2, #0x94
ldr r0, [r0]
ldr r1, [r1]
ldr r2, [r2]
mov r3, #0xb
bl sub_0200D71C
_0221CAEE:
mov r0, #0
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
str r0, [sp, #8]
ldr r0, _0221CB3C ; =0x0000D8DE
add r1, r4, #0
str r0, [sp, #0xc]
add r0, r4, #0
add r2, r4, #0
add r0, #0x9c
add r1, #0xa0
add r2, #0x94
ldr r0, [r0]
ldr r1, [r1]
ldr r2, [r2]
mov r3, #0xf
bl sub_0200D5D4
mov r0, #0
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
str r0, [sp, #8]
ldr r0, _0221CB44 ; =0x0000D8DF
add r1, r4, #0
str r0, [sp, #0xc]
add r0, r4, #0
add r0, #0x9c
add r1, #0xa0
add r4, #0x94
ldr r0, [r0]
ldr r1, [r1]
ldr r2, [r4]
mov r3, #0xf
bl sub_0200D5D4
add sp, #0x10
pop {r4, pc}
.balign 4, 0
_0221CB3C: .word 0x0000D8DE
_0221CB40: .word 0x0000D8DA
_0221CB44: .word 0x0000D8DF
thumb_func_end ov63_0221CA1C
thumb_func_start ov63_0221CB48
ov63_0221CB48: ; 0x0221CB48
push {r4, lr}
add r4, r0, #0
add r0, #0xa0
ldr r0, [r0]
ldr r1, _0221CB88 ; =0x0000D8DE
bl sub_0200D968
add r0, r4, #0
add r0, #0xa0
ldr r0, [r0]
ldr r1, _0221CB8C ; =0x0000D8DF
bl sub_0200D968
add r0, r4, #0
add r0, #0xa0
ldr r0, [r0]
ldr r1, _0221CB88 ; =0x0000D8DE
bl sub_0200D958
add r0, r4, #0
add r0, #0xa0
ldr r0, [r0]
ldr r1, _0221CB90 ; =0x0000D8DA
bl sub_0200D978
add r4, #0xa0
ldr r0, [r4]
ldr r1, _0221CB90 ; =0x0000D8DA
bl sub_0200D988
pop {r4, pc}
nop
_0221CB88: .word 0x0000D8DE
_0221CB8C: .word 0x0000D8DF
_0221CB90: .word 0x0000D8DA
thumb_func_end ov63_0221CB48
thumb_func_start ov63_0221CB94
ov63_0221CB94: ; 0x0221CB94
push {r4, r5, r6, r7, lr}
sub sp, #0x2c
str r0, [sp, #0x24]
add r0, #0xa4
str r0, [sp, #0x24]
str r1, [sp, #0xc]
lsl r0, r2, #2
ldr r1, [sp, #0x24]
str r0, [sp, #0x28]
ldr r0, [r1, r0]
ldr r0, [r0]
bl sub_02024B1C
mov r1, #1
bl NNS_G2dGetImageLocation
str r0, [sp, #0x14]
ldr r0, [sp, #0xc]
ldrb r0, [r0, #5]
cmp r0, #0
beq _0221CBC4
mov r0, #8
str r0, [sp, #0x10]
b _0221CBC8
_0221CBC4:
mov r0, #4
str r0, [sp, #0x10]
_0221CBC8:
ldr r0, [sp, #0x10]
ldr r2, [sp, #0xc]
lsl r1, r0, #5
add r6, r0, #0
mul r6, r1
ldr r0, [sp, #0xc]
ldr r1, [sp, #0xc]
ldrh r0, [r0, #0xc]
ldrb r1, [r1, #0x10]
ldrb r2, [r2, #0x11]
bl ov63_0221E404
add r1, r0, #0
mov r0, #0x51
mov r2, #0x3e
bl AllocAndReadWholeNarcMemberByIdPair
str r0, [sp, #0x1c]
bl NNS_G3dGetTex
ldr r1, [r0, #0x14]
str r0, [sp, #0x20]
add r0, r0, r1
str r0, [sp, #0x18]
mov r0, #0x3e
add r1, r6, #0
bl AllocFromHeap
add r7, r0, #0
mov r4, #0
_0221CC04:
ldr r0, [sp, #0x10]
add r5, r6, #0
str r0, [sp]
str r0, [sp, #4]
mov r2, #0
ldr r0, [sp, #0x18]
mul r5, r4
ldr r1, [sp, #0x10]
add r0, r0, r5
add r3, r2, #0
str r7, [sp, #8]
bl sub_020145B4
ldr r1, [sp, #0x14]
add r0, r7, #0
add r1, r1, r5
add r2, r6, #0
bl ov63_0221C00C
add r0, r4, #1
lsl r0, r0, #0x18
lsr r4, r0, #0x18
cmp r4, #8
blo _0221CC04
add r0, r7, #0
bl FreeToHeap
ldr r1, [sp, #0x24]
ldr r0, [sp, #0x28]
ldr r0, [r1, r0]
ldr r0, [r0]
bl sub_02024B34
mov r1, #1
bl NNS_G2dGetImagePaletteLocation
add r4, r0, #0
ldr r0, [sp, #0x20]
ldr r1, [r0, #0x38]
add r5, r0, r1
ldr r0, [sp, #0xc]
ldr r0, [r0]
bl MonIsShiny
cmp r0, #1
bne _0221CC62
add r5, #0x20
_0221CC62:
add r0, r5, #0
add r1, r4, #0
mov r2, #0x20
bl ov63_0221C028
ldr r0, [sp, #0x1c]
bl FreeToHeap
add sp, #0x2c
pop {r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_end ov63_0221CB94
thumb_func_start ov63_0221CC78
ov63_0221CC78: ; 0x0221CC78
push {r3, r4, r5, lr}
sub sp, #0x80
ldr r5, _0221CD2C ; =ov63_0221FB10
add r3, sp, #0x70
add r4, r0, #0
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, _0221CD30 ; =ov63_0221FBAC
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, #0
str r0, [r3]
ldr r0, [r4, #0x10]
add r3, r1, #0
bl InitBgFromTemplate
ldr r0, [r4, #0x10]
mov r1, #0
bl BgClearTilemapBufferAndCommit
mov r0, #0
mov r1, #0x20
add r2, r0, #0
mov r3, #0x3e
bl BG_ClearCharDataRange
ldr r5, _0221CD34 ; =ov63_0221FBC8
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, #0x10]
mov r3, #0
bl InitBgFromTemplate
ldr r5, _0221CD38 ; =ov63_0221FB74
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, #0x10]
mov r3, #0
bl InitBgFromTemplate
ldr r5, _0221CD3C ; =ov63_0221FC1C
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, #3
str r0, [r3]
ldr r0, [r4, #0x10]
mov r3, #0
bl InitBgFromTemplate
add sp, #0x80
pop {r3, r4, r5, pc}
nop
_0221CD2C: .word ov63_0221FB10
_0221CD30: .word ov63_0221FBAC
_0221CD34: .word ov63_0221FBC8
_0221CD38: .word ov63_0221FB74
_0221CD3C: .word ov63_0221FC1C
thumb_func_end ov63_0221CC78
thumb_func_start ov63_0221CD40
ov63_0221CD40: ; 0x0221CD40
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #0x10]
mov r1, #3
bl FreeBgTilemapBuffer
ldr r0, [r4, #0x10]
mov r1, #2
bl FreeBgTilemapBuffer
ldr r0, [r4, #0x10]
mov r1, #1
bl FreeBgTilemapBuffer
ldr r0, [r4, #0x10]
mov r1, #0
bl FreeBgTilemapBuffer
pop {r4, pc}
.balign 4, 0
thumb_func_end ov63_0221CD40
thumb_func_start ov63_0221CD68
ov63_0221CD68: ; 0x0221CD68
push {r4, lr}
sub sp, #0x10
mov r1, #0
str r1, [sp]
str r1, [sp, #4]
mov r3, #1
add r4, r0, #0
str r3, [sp, #8]
mov r0, #0x3e
str r0, [sp, #0xc]
add r0, r4, #0
add r0, #0x94
ldr r0, [r0]
ldr r2, [r4, #0x10]
bl GfGfxLoader_LoadScrnDataFromOpenNarc
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
mov r1, #1
str r1, [sp, #8]
mov r0, #0x3e
str r0, [sp, #0xc]
add r0, r4, #0
add r0, #0x94
ldr r0, [r0]
ldr r2, [r4, #0x10]
mov r3, #2
bl GfGfxLoader_LoadScrnDataFromOpenNarc
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
mov r0, #1
str r0, [sp, #8]
mov r0, #0x3e
str r0, [sp, #0xc]
add r0, r4, #0
add r0, #0x94
ldr r0, [r0]
ldr r2, [r4, #0x10]
mov r1, #2
mov r3, #3
bl GfGfxLoader_LoadScrnDataFromOpenNarc
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0x3e
str r0, [sp, #0xc]
add r0, r4, #0
add r0, #0x94
ldr r0, [r0]
ldr r2, [r4, #0x10]
mov r1, #3
bl GfGfxLoader_LoadCharDataFromOpenNarc
mov r0, #0x20
str r0, [sp]
mov r0, #0x3e
mov r2, #0
add r4, #0x94
str r0, [sp, #4]
ldr r0, [r4]
mov r1, #4
add r3, r2, #0
bl GfGfxLoader_GXLoadPalFromOpenNarc
add sp, #0x10
pop {r4, pc}
thumb_func_end ov63_0221CD68
thumb_func_start ov63_0221CDF8
ov63_0221CDF8: ; 0x0221CDF8
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x10
add r7, r0, #0
add r5, r7, #0
ldr r4, _0221CE74 ; =ov63_0221FD80
mov r6, #0
add r5, #0x14
_0221CE06:
ldr r0, [r7, #0x10]
add r1, r5, #0
add r2, r4, #0
bl AddWindow
add r6, r6, #1
add r4, #8
add r5, #0x10
cmp r6, #7
blo _0221CE06
add r0, r7, #0
add r0, #0x14
mov r1, #0
bl FillWindowPixelBuffer
add r0, r7, #0
add r2, r7, #0
add r0, #0x84
add r2, #0x8c
ldr r0, [r0]
ldr r2, [r2]
mov r1, #0
bl ReadMsgDataIntoString
add r1, r7, #0
add r1, #0x8c
mov r0, #0
ldr r1, [r1]
add r2, r0, #0
bl FontID_String_GetWidth
add r3, r0, #0
mov r1, #0
add r2, r7, #0
lsr r4, r3, #1
mov r3, #0x80
str r1, [sp]
mov r0, #0xff
str r0, [sp, #4]
ldr r0, _0221CE78 ; =0x000F0200
add r2, #0x8c
str r0, [sp, #8]
str r1, [sp, #0xc]
add r0, r7, #0
ldr r2, [r2]
add r0, #0x14
sub r3, r3, r4
bl AddTextPrinterParameterized2
add r7, #0x14
add r0, r7, #0
bl CopyWindowPixelsToVram_TextMode
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_0221CE74: .word ov63_0221FD80
_0221CE78: .word 0x000F0200
thumb_func_end ov63_0221CDF8
thumb_func_start ov63_0221CE7C
ov63_0221CE7C: ; 0x0221CE7C
push {r3, r4, r5, lr}
add r5, r0, #0
mov r4, #0
add r5, #0x14
_0221CE84:
add r0, r5, #0
bl RemoveWindow
add r4, r4, #1
add r5, #0x10
cmp r4, #7
blo _0221CE84
pop {r3, r4, r5, pc}
thumb_func_end ov63_0221CE7C
thumb_func_start ov63_0221CE94
ov63_0221CE94: ; 0x0221CE94
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x18
add r4, r0, #0
add r0, r1, #0
mov r1, #1
lsl r1, r1, #8
lsl r6, r2, #4
add r2, r4, r1
ldr r1, _0221D204 ; =0x0000328C
add r5, r4, #0
mul r1, r0
ldr r0, [r2, r1]
add r5, #0x14
add r7, r2, r1
str r0, [sp, #0x14]
bl Mon_GetBoxMon
str r0, [sp, #0x10]
add r0, r5, r6
mov r1, #0
bl FillWindowPixelBuffer
add r0, r4, #0
add r2, r4, #0
add r0, #0x84
add r2, #0x8c
ldr r0, [r0]
ldr r2, [r2]
mov r1, #4
bl ReadMsgDataIntoString
add r0, r4, #0
add r0, #0x88
ldr r0, [r0]
ldr r2, [sp, #0x10]
mov r1, #0
bl BufferBoxMonNickname
add r0, r4, #0
add r1, r4, #0
add r2, r4, #0
add r0, #0x88
add r1, #0x90
add r2, #0x8c
ldr r0, [r0]
ldr r1, [r1]
ldr r2, [r2]
bl StringExpandPlaceholders
mov r1, #0
add r2, r4, #0
str r1, [sp]
mov r0, #0xff
str r0, [sp, #4]
ldr r0, _0221D208 ; =0x000F0200
add r2, #0x90
str r0, [sp, #8]
str r1, [sp, #0xc]
ldr r2, [r2]
add r0, r5, r6
mov r3, #2
bl AddTextPrinterParameterized2
add r0, r5, r6
bl CopyWindowPixelsToVram_TextMode
add r0, r5, r6
add r0, #0x10
mov r1, #0
bl FillWindowPixelBuffer
ldrb r1, [r7, #0x11]
cmp r1, #2
beq _0221CF2E
ldrb r0, [r7, #0x12]
cmp r0, #0
bne _0221CF42
_0221CF2E:
add r0, r4, #0
add r2, r4, #0
add r0, #0x84
add r2, #0x8c
ldr r0, [r0]
ldr r2, [r2]
mov r1, #3
bl ReadMsgDataIntoString
b _0221CF84
_0221CF42:
cmp r1, #0
bne _0221CF5A
add r0, r4, #0
add r2, r4, #0
add r0, #0x84
add r2, #0x8c
ldr r0, [r0]
ldr r2, [r2]
mov r1, #1
bl ReadMsgDataIntoString
b _0221CF84
_0221CF5A:
cmp r1, #1
bne _0221CF72
add r0, r4, #0
add r2, r4, #0
add r0, #0x84
add r2, #0x8c
ldr r0, [r0]
ldr r2, [r2]
mov r1, #2
bl ReadMsgDataIntoString
b _0221CF84
_0221CF72:
add r0, r4, #0
add r2, r4, #0
add r0, #0x84
add r2, #0x8c
ldr r0, [r0]
ldr r2, [r2]
mov r1, #3
bl ReadMsgDataIntoString
_0221CF84:
add r0, r4, #0
add r0, #0x88
ldr r0, [r0]
ldr r2, [sp, #0x10]
mov r1, #0
bl BufferBoxMonSpeciesName
add r0, r4, #0
add r1, r4, #0
add r2, r4, #0
add r0, #0x88
add r1, #0x90
add r2, #0x8c
ldr r0, [r0]
ldr r1, [r1]
ldr r2, [r2]
bl StringExpandPlaceholders
mov r1, #0
add r2, r4, #0
str r1, [sp]
mov r0, #0xff
str r0, [sp, #4]
ldr r0, _0221D208 ; =0x000F0200
add r2, #0x90
str r0, [sp, #8]
str r1, [sp, #0xc]
add r0, r5, r6
ldr r2, [r2]
add r0, #0x10
mov r3, #2
bl AddTextPrinterParameterized2
add r0, r4, #0
add r2, r4, #0
add r0, #0x84
add r2, #0x8c
ldr r0, [r0]
ldr r2, [r2]
mov r1, #5
bl ReadMsgDataIntoString
mov r1, #0
str r1, [sp]
mov r0, #1
str r0, [sp, #4]
add r0, r4, #0
add r0, #0x88
ldrh r2, [r7, #0xe]
ldr r0, [r0]
mov r3, #3
bl BufferIntegerAsString
add r0, r4, #0
add r1, r4, #0
add r2, r4, #0
add r0, #0x88
add r1, #0x90
add r2, #0x8c
ldr r0, [r0]
ldr r1, [r1]
ldr r2, [r2]
bl StringExpandPlaceholders
mov r0, #0x10
str r0, [sp]
mov r0, #0xff
str r0, [sp, #4]
ldr r0, _0221D208 ; =0x000F0200
add r2, r4, #0
str r0, [sp, #8]
mov r1, #0
add r0, r5, r6
str r1, [sp, #0xc]
add r2, #0x90
ldr r2, [r2]
add r0, #0x10
mov r3, #2
bl AddTextPrinterParameterized2
add r0, r5, r6
add r0, #0x10
bl CopyWindowPixelsToVram_TextMode
add r0, r5, r6
add r0, #0x20
mov r1, #0
bl FillWindowPixelBuffer
add r0, r4, #0
add r2, r4, #0
add r0, #0x84
add r2, #0x8c
ldr r0, [r0]
ldr r2, [r2]
mov r1, #6
bl ReadMsgDataIntoString
add r0, r4, #0
add r0, #0x88
ldr r0, [r0]
ldr r2, [sp, #0x10]
mov r1, #0
bl BufferBoxMonOTName
add r0, r4, #0
add r1, r4, #0
add r2, r4, #0
add r0, #0x88
add r1, #0x90
add r2, #0x8c
ldr r0, [r0]
ldr r1, [r1]
ldr r2, [r2]
bl StringExpandPlaceholders
mov r1, #0
str r1, [sp]
mov r0, #0xff
str r0, [sp, #4]
ldr r0, _0221D208 ; =0x000F0200
add r2, r4, #0
str r0, [sp, #8]
add r0, r5, r6
str r1, [sp, #0xc]
add r2, #0x90
ldr r2, [r2]
add r0, #0x20
mov r3, #2
bl AddTextPrinterParameterized2
ldr r2, [r4]
ldr r1, [sp, #0x14]
ldr r2, [r2]
add r0, r4, #0
bl ov63_0221E310
cmp r0, #9
bls _0221D09C
b _0221D1DA
_0221D09C:
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_0221D0A8: ; jump table
.short _0221D0BC - _0221D0A8 - 2 ; case 0
.short _0221D0F4 - _0221D0A8 - 2 ; case 1
.short _0221D12C - _0221D0A8 - 2 ; case 2
.short _0221D140 - _0221D0A8 - 2 ; case 3
.short _0221D154 - _0221D0A8 - 2 ; case 4
.short _0221D168 - _0221D0A8 - 2 ; case 5
.short _0221D17C - _0221D0A8 - 2 ; case 6
.short _0221D190 - _0221D0A8 - 2 ; case 7
.short _0221D1A4 - _0221D0A8 - 2 ; case 8
.short _0221D1A4 - _0221D0A8 - 2 ; case 9
_0221D0BC:
add r0, r4, #0
add r2, r4, #0
add r0, #0x84
add r2, #0x8c
ldr r0, [r0]
ldr r2, [r2]
mov r1, #7
bl ReadMsgDataIntoString
add r0, r4, #0
add r0, #0x88
ldr r0, [r0]
ldr r2, [r7, #0x14]
mov r1, #0
bl BufferLandmarkName
add r0, r4, #0
add r1, r4, #0
add r2, r4, #0
add r0, #0x88
add r1, #0x90
add r2, #0x8c
ldr r0, [r0]
ldr r1, [r1]
ldr r2, [r2]
bl StringExpandPlaceholders
b _0221D1DA
_0221D0F4:
add r0, r4, #0
add r2, r4, #0
add r0, #0x84
add r2, #0x8c
ldr r0, [r0]
ldr r2, [r2]
mov r1, #8
bl ReadMsgDataIntoString
add r0, r4, #0
add r0, #0x88
ldr r0, [r0]
ldr r2, [r7, #0x14]
mov r1, #0
bl BufferLandmarkName
add r0, r4, #0
add r1, r4, #0
add r2, r4, #0
add r0, #0x88
add r1, #0x90
add r2, #0x8c
ldr r0, [r0]
ldr r1, [r1]
ldr r2, [r2]
bl StringExpandPlaceholders
b _0221D1DA
_0221D12C:
add r0, r4, #0
add r2, r4, #0
add r0, #0x84
add r2, #0x90
ldr r0, [r0]
ldr r2, [r2]
mov r1, #9
bl ReadMsgDataIntoString
b _0221D1DA
_0221D140:
add r0, r4, #0
add r2, r4, #0
add r0, #0x84
add r2, #0x90
ldr r0, [r0]
ldr r2, [r2]
mov r1, #0xa
bl ReadMsgDataIntoString
b _0221D1DA
_0221D154:
add r0, r4, #0
add r2, r4, #0
add r0, #0x84
add r2, #0x90
ldr r0, [r0]
ldr r2, [r2]
mov r1, #0xb
bl ReadMsgDataIntoString
b _0221D1DA
_0221D168:
add r0, r4, #0
add r2, r4, #0
add r0, #0x84
add r2, #0x90
ldr r0, [r0]
ldr r2, [r2]
mov r1, #0xe
bl ReadMsgDataIntoString
b _0221D1DA
_0221D17C:
add r0, r4, #0
add r2, r4, #0
add r0, #0x84
add r2, #0x90
ldr r0, [r0]
ldr r2, [r2]
mov r1, #0xc
bl ReadMsgDataIntoString
b _0221D1DA
_0221D190:
add r0, r4, #0
add r2, r4, #0
add r0, #0x84
add r2, #0x90
ldr r0, [r0]
ldr r2, [r2]
mov r1, #0xd
bl ReadMsgDataIntoString
b _0221D1DA
_0221D1A4:
add r0, r4, #0
add r2, r4, #0
add r0, #0x84
add r2, #0x8c
ldr r0, [r0]
ldr r2, [r2]
mov r1, #0xf
bl ReadMsgDataIntoString
add r0, r4, #0
add r0, #0x88
ldr r0, [r0]
ldr r2, [r7, #0x14]
mov r1, #0
bl BufferLandmarkName
add r0, r4, #0
add r1, r4, #0
add r2, r4, #0
add r0, #0x88
add r1, #0x90
add r2, #0x8c
ldr r0, [r0]
ldr r1, [r1]
ldr r2, [r2]
bl StringExpandPlaceholders
_0221D1DA:
mov r0, #0x18
str r0, [sp]
mov r0, #0xff
str r0, [sp, #4]
ldr r0, _0221D208 ; =0x000F0200
mov r1, #0
str r0, [sp, #8]
add r0, r5, r6
str r1, [sp, #0xc]
add r4, #0x90
ldr r2, [r4]
add r0, #0x20
mov r3, #2
bl AddTextPrinterParameterized2
add r0, r5, r6
add r0, #0x20
bl CopyWindowPixelsToVram_TextMode
add sp, #0x18
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_0221D204: .word 0x0000328C
_0221D208: .word 0x000F0200
thumb_func_end ov63_0221CE94
thumb_func_start ov63_0221D20C
ov63_0221D20C: ; 0x0221D20C
push {r3, lr}
bl ov63_0221D240
mov r0, #0x10
mov r1, #1
bl GX_EngineAToggleLayers
pop {r3, pc}
thumb_func_end ov63_0221D20C
thumb_func_start ov63_0221D21C
ov63_0221D21C: ; 0x0221D21C
push {r3, r4, r5, lr}
add r5, r0, #0
mov r4, #0
_0221D222:
add r0, r5, #0
add r1, r4, #0
bl ov63_0221C134
add r4, r4, #1
cmp r4, #0xf
blo _0221D222
add r0, r5, #0
bl ov63_0221CB48
add r0, r5, #0
bl ov63_0221C85C
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_end ov63_0221D21C
thumb_func_start ov63_0221D240
ov63_0221D240: ; 0x0221D240
push {r3, r4, r5, r6, r7, lr}
mov r2, #1
add r5, r0, #0
lsl r2, r2, #8
add r3, r5, r2
ldr r2, _0221D2EC ; =0x0000328C
mul r2, r1
add r1, r3, r2
str r1, [sp]
bl ov63_0221C6FC
ldr r1, [sp]
add r0, r5, #0
bl ov63_0221CA1C
ldr r4, _0221D2F0 ; =ov63_0221FF68
mov r7, #0
add r6, r5, #0
_0221D264:
add r0, r5, #0
add r1, r5, #0
add r0, #0x9c
add r1, #0xa0
ldr r0, [r0]
ldr r1, [r1]
add r2, r4, #0
bl sub_0200D734
add r1, r6, #0
add r1, #0xa4
add r7, r7, #1
str r0, [r1]
add r4, #0x34
add r6, r6, #4
cmp r7, #5
bls _0221D264
ldr r1, [sp]
add r0, r5, #0
mov r2, #2
mov r3, #0
bl ov63_0221C8E8
ldr r1, [sp]
add r0, r5, #0
mov r2, #0
mov r3, #2
bl ov63_0221C8E8
ldr r1, [sp]
add r0, r5, #0
mov r2, #4
bl ov63_0221CB94
ldr r0, [sp]
ldrh r1, [r0, #0xc]
ldr r0, _0221D2F4 ; =0x0000FF9E
add r0, r1, r0
lsl r0, r0, #0x10
lsr r0, r0, #0x10
cmp r0, #1
bhi _0221D2CC
add r0, r5, #0
mov r1, #4
mov r2, #2
bl ov63_0221C16C
add r0, r5, #0
mov r1, #5
mov r2, #2
bl ov63_0221C16C
_0221D2CC:
add r0, r5, #0
mov r1, #1
mov r2, #0
bl ov63_0221C954
add r0, r5, #0
mov r1, #3
mov r2, #0
bl ov63_0221C954
add r0, r5, #0
mov r1, #5
mov r2, #0
bl ov63_0221C954
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_0221D2EC: .word 0x0000328C
_0221D2F0: .word ov63_0221FF68
_0221D2F4: .word 0x0000FF9E
thumb_func_end ov63_0221D240
thumb_func_start ov63_0221D2F8
ov63_0221D2F8: ; 0x0221D2F8
push {r4, lr}
add r4, r0, #0
ldrb r0, [r1, #5]
cmp r0, #0
beq _0221D322
add r0, r4, #0
add r0, #0xb4
mov r1, #0x1f
mvn r1, r1
ldr r0, [r0]
add r2, r1, #0
bl sub_0200DED0
add r4, #0xb8
mov r1, #0x1f
mvn r1, r1
ldr r0, [r4]
add r2, r1, #0
bl sub_0200DED0
pop {r4, pc}
_0221D322:
add r0, r4, #0
add r0, #0xb4
mov r1, #0xf
mvn r1, r1
ldr r0, [r0]
add r2, r1, #0
bl sub_0200DED0
add r4, #0xb8
mov r1, #0xf
mvn r1, r1
ldr r0, [r4]
add r2, r1, #0
bl sub_0200DED0
pop {r4, pc}
.balign 4, 0
thumb_func_end ov63_0221D2F8
thumb_func_start ov63_0221D344
ov63_0221D344: ; 0x0221D344
push {r3, r4, r5, lr}
ldr r1, _0221D54C ; =0x00013056
add r5, r0, #0
mov r2, #1
lsl r2, r2, #8
add r3, r5, r2
ldrh r1, [r5, r1]
ldr r2, _0221D550 ; =0x0000328C
mul r2, r1
add r4, r3, r2
bl ov63_0221D20C
ldr r0, [r5, #0x10]
mov r1, #0
bl BgClearTilemapBufferAndCommit
mov r1, #0
ldr r0, [r5, #0x10]
add r2, r1, #0
add r3, r1, #0
bl ScheduleSetBgPosText
mov r1, #0
ldr r0, [r5, #0x10]
mov r2, #3
add r3, r1, #0
bl ScheduleSetBgPosText
ldr r0, _0221D54C ; =0x00013056
mov r1, #1
ldrh r0, [r5, r0]
tst r0, r1
ldr r0, [r5, #0x10]
bne _0221D44E
mov r2, #0
add r3, r2, #0
bl ScheduleSetBgPosText
ldr r0, [r5, #0x10]
mov r1, #1
mov r2, #3
mov r3, #0
bl ScheduleSetBgPosText
mov r2, #0
ldr r0, [r5, #0x10]
mov r1, #2
add r3, r2, #0
bl ScheduleSetBgPosText
ldr r0, [r5, #0x10]
mov r1, #2
mov r2, #3
mov r3, #0
bl ScheduleSetBgPosText
mov r2, #0
ldr r0, [r5, #0x10]
mov r1, #3
add r3, r2, #0
bl ScheduleSetBgPosText
mov r1, #3
ldr r0, [r5, #0x10]
add r2, r1, #0
mov r3, #0
bl ScheduleSetBgPosText
add r0, r5, #0
add r0, #0xa4
mov r1, #1
mov r2, #0x27
ldr r0, [r0]
lsl r1, r1, #8
mvn r2, r2
bl sub_0200DDB8
add r0, r5, #0
add r0, #0xa8
mov r1, #0x4a
mov r2, #0x4f
ldr r0, [r0]
lsl r1, r1, #2
mvn r2, r2
bl sub_0200DDB8
ldrb r2, [r4, #0x13]
add r0, r5, #0
add r0, #0xac
add r2, #0x98
mov r1, #0x12
lsl r2, r2, #0x10
ldr r0, [r0]
lsl r1, r1, #4
asr r2, r2, #0x10
bl sub_0200DDB8
ldrb r2, [r4, #0x13]
add r0, r5, #0
add r0, #0xb0
add r2, #0x98
mov r1, #0x4a
lsl r2, r2, #0x10
ldr r0, [r0]
lsl r1, r1, #2
asr r2, r2, #0x10
bl sub_0200DDB8
add r0, r5, #0
mov r1, #0x51
add r0, #0xb4
mvn r1, r1
add r2, r1, #0
ldr r0, [r0]
add r2, #0x50
bl sub_0200DDB8
add r0, r5, #0
mov r1, #0x58
add r0, #0xb8
mvn r1, r1
add r2, r1, #0
ldr r0, [r0]
add r2, #0x56
bl sub_0200DDB8
ldr r1, _0221D54C ; =0x00013056
add r0, r5, #0
ldrh r1, [r5, r1]
mov r2, #1
bl ov63_0221CE94
b _0221D512
_0221D44E:
mov r2, #0
add r3, r2, #0
bl ScheduleSetBgPosText
mov r2, #3
add r3, r2, #0
ldr r0, [r5, #0x10]
mov r1, #1
add r3, #0xfd
bl ScheduleSetBgPosText
mov r2, #0
add r3, r2, #0
ldr r0, [r5, #0x10]
mov r1, #2
sub r3, #0xb8
bl ScheduleSetBgPosText
ldr r0, [r5, #0x10]
mov r1, #2
mov r2, #3
mov r3, #0
bl ScheduleSetBgPosText
mov r1, #3
add r3, r1, #0
ldr r0, [r5, #0x10]
mov r2, #0
add r3, #0xfd
bl ScheduleSetBgPosText
mov r1, #3
ldr r0, [r5, #0x10]
add r2, r1, #0
mov r3, #0
bl ScheduleSetBgPosText
add r0, r5, #0
add r0, #0xa4
mov r1, #0
add r2, r1, #0
ldr r0, [r0]
sub r2, #0x28
bl sub_0200DDB8
add r0, r5, #0
mov r1, #0x27
add r0, #0xa8
mvn r1, r1
add r2, r1, #0
ldr r0, [r0]
sub r2, #0x28
bl sub_0200DDB8
ldrb r2, [r4, #0x13]
add r0, r5, #0
add r0, #0xac
add r2, #0x98
mov r1, #0x4f
lsl r2, r2, #0x10
ldr r0, [r0]
mvn r1, r1
asr r2, r2, #0x10
bl sub_0200DDB8
ldrb r2, [r4, #0x13]
add r0, r5, #0
add r0, #0xb0
add r2, #0x98
mov r1, #0x5b
lsl r2, r2, #0x10
ldr r0, [r0]
mvn r1, r1
asr r2, r2, #0x10
bl sub_0200DDB8
add r0, r5, #0
add r0, #0xb4
mov r2, #1
ldr r0, [r0]
ldr r1, _0221D554 ; =0x00000152
mvn r2, r2
bl sub_0200DDB8
add r0, r5, #0
add r0, #0xb8
mov r2, #2
ldr r0, [r0]
ldr r1, _0221D558 ; =0x00000159
mvn r2, r2
bl sub_0200DDB8
ldr r1, _0221D54C ; =0x00013056
add r0, r5, #0
ldrh r1, [r5, r1]
mov r2, #4
bl ov63_0221CE94
_0221D512:
add r0, r5, #0
add r0, #0xa4
ldr r0, [r0]
mov r1, #2
bl sub_0200DF98
add r0, r5, #0
add r0, #0xa8
ldr r0, [r0]
mov r1, #2
bl sub_0200DF98
add r0, r5, #0
add r0, #0xa8
mov r1, #0xff
lsl r1, r1, #0x16
ldr r0, [r0]
add r2, r1, #0
bl sub_0200E024
add r0, r5, #0
add r1, r4, #0
bl ov63_0221D2F8
ldr r0, [r5, #0x10]
mov r1, #0
bl ScheduleBgTilemapBufferTransfer
pop {r3, r4, r5, pc}
.balign 4, 0
_0221D54C: .word 0x00013056
_0221D550: .word 0x0000328C
_0221D554: .word 0x00000152
_0221D558: .word 0x00000159
thumb_func_end ov63_0221D344
thumb_func_start ov63_0221D55C
ov63_0221D55C: ; 0x0221D55C
push {r3, r4, r5, lr}
add r4, r0, #0
ldrh r1, [r4, #0xe]
cmp r1, #0x10
bls _0221D568
b _0221DB1A
_0221D568:
add r1, r1, r1
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_0221D574: ; jump table
.short _0221D596 - _0221D574 - 2 ; case 0
.short _0221D632 - _0221D574 - 2 ; case 1
.short _0221D644 - _0221D574 - 2 ; case 2
.short _0221D65C - _0221D574 - 2 ; case 3
.short _0221D6C4 - _0221D574 - 2 ; case 4
.short _0221D70E - _0221D574 - 2 ; case 5
.short _0221D726 - _0221D574 - 2 ; case 6
.short _0221D734 - _0221D574 - 2 ; case 7
.short _0221D780 - _0221D574 - 2 ; case 8
.short _0221D812 - _0221D574 - 2 ; case 9
.short _0221D848 - _0221D574 - 2 ; case 10
.short _0221D860 - _0221D574 - 2 ; case 11
.short _0221D87C - _0221D574 - 2 ; case 12
.short _0221D894 - _0221D574 - 2 ; case 13
.short _0221D8B8 - _0221D574 - 2 ; case 14
.short _0221D940 - _0221D574 - 2 ; case 15
.short _0221DB0C - _0221D574 - 2 ; case 16
_0221D596:
ldrh r0, [r4, #0xc]
cmp r0, #0xa
bne _0221D5F2
ldr r0, _0221D8A4 ; =0x00013056
mov r2, #0
ldrh r1, [r4, r0]
ldr r0, _0221D8A8 ; =0x0000328C
add r3, r2, #0
mul r0, r1
add r1, r4, r0
ldr r0, _0221D8AC ; =0x00000113
sub r3, #0x48
ldrb r5, [r1, r0]
ldr r0, [r4, #0x10]
mov r1, #1
bl ScheduleSetBgPosText
ldr r0, [r4, #0x10]
mov r1, #2
mov r2, #0
mov r3, #0x48
bl ScheduleSetBgPosText
add r0, r4, #0
add r5, #0x98
add r0, #0xac
lsl r2, r5, #0x10
ldr r0, [r0]
mov r1, #0x30
asr r2, r2, #0x10
bl sub_0200DDB8
add r0, r4, #0
add r0, #0xb0
lsl r2, r5, #0x10
ldr r0, [r0]
mov r1, #0x2e
asr r2, r2, #0x10
bl sub_0200DDB8
mov r0, #0
strh r0, [r4, #0xc]
ldrh r0, [r4, #0xe]
add r0, r0, #1
strh r0, [r4, #0xe]
b _0221DB1A
_0221D5F2:
ldr r0, [r4, #0x10]
mov r1, #1
mov r2, #2
mov r3, #7
bl ScheduleSetBgPosText
ldr r0, [r4, #0x10]
mov r1, #2
mov r2, #1
mov r3, #7
bl ScheduleSetBgPosText
add r0, r4, #0
add r0, #0xac
mov r1, #0x17
ldr r0, [r0]
mvn r1, r1
mov r2, #0
bl sub_0200DED0
add r0, r4, #0
add r0, #0xb0
mov r1, #0x18
ldr r0, [r0]
mvn r1, r1
mov r2, #0
bl sub_0200DED0
ldrh r0, [r4, #0xc]
add r0, r0, #1
strh r0, [r4, #0xc]
b _0221DB1A
_0221D632:
ldr r1, _0221D8B0 ; =0x00013060
mov r0, #2
ldr r2, [r4, r1]
orr r0, r2
str r0, [r4, r1]
ldrh r0, [r4, #0xe]
add r0, r0, #1
strh r0, [r4, #0xe]
b _0221DB1A
_0221D644:
ldrh r0, [r4, #0xc]
cmp r0, #0x32
bne _0221D656
mov r0, #0
strh r0, [r4, #0xc]
ldrh r0, [r4, #0xe]
add r0, r0, #1
strh r0, [r4, #0xe]
b _0221DB1A
_0221D656:
add r0, r0, #1
strh r0, [r4, #0xc]
b _0221DB1A
_0221D65C:
ldrh r0, [r4, #0xc]
cmp r0, #6
bne _0221D6A0
add r0, r4, #0
add r0, #0xb4
ldr r0, [r0]
mov r1, #0x20
mov r2, #0x28
bl sub_0200DDB8
add r0, r4, #0
add r0, #0xb8
ldr r0, [r0]
mov r1, #0x1f
mov r2, #0x27
bl sub_0200DDB8
mov r1, #1
lsl r1, r1, #8
add r3, r4, r1
ldr r1, _0221D8A4 ; =0x00013056
add r0, r4, #0
ldrh r2, [r4, r1]
ldr r1, _0221D8A8 ; =0x0000328C
mul r1, r2
add r1, r3, r1
bl ov63_0221D2F8
mov r0, #0
strh r0, [r4, #0xc]
ldrh r0, [r4, #0xe]
add r0, r0, #1
strh r0, [r4, #0xe]
b _0221DB1A
_0221D6A0:
add r0, r4, #0
add r0, #0xb4
ldr r0, [r0]
mov r1, #0x13
mov r2, #7
bl sub_0200DED0
add r0, r4, #0
add r0, #0xb8
ldr r0, [r0]
mov r1, #0x14
mov r2, #7
bl sub_0200DED0
ldrh r0, [r4, #0xc]
add r0, r0, #1
strh r0, [r4, #0xc]
b _0221DB1A
_0221D6C4:
ldr r1, _0221D8A4 ; =0x00013056
ldrh r2, [r4, r1]
ldr r1, _0221D8A8 ; =0x0000328C
mul r1, r2
add r2, r4, r1
mov r1, #0x43
lsl r1, r1, #2
ldrh r2, [r2, r1]
ldr r1, _0221D8B4 ; =0x0000FF9E
add r1, r2, r1
lsl r1, r1, #0x10
lsr r1, r1, #0x10
cmp r1, #1
bhi _0221D6F4
mov r1, #4
mov r2, #3
bl ov63_0221C16C
add r0, r4, #0
mov r1, #5
mov r2, #3
bl ov63_0221C16C
b _0221D706
_0221D6F4:
mov r1, #4
mov r2, #1
bl ov63_0221C16C
add r0, r4, #0
mov r1, #5
mov r2, #1
bl ov63_0221C16C
_0221D706:
ldrh r0, [r4, #0xe]
add r0, r0, #1
strh r0, [r4, #0xe]
b _0221DB1A
_0221D70E:
ldrh r0, [r4, #0xc]
cmp r0, #0x14
bne _0221D720
mov r0, #0
strh r0, [r4, #0xc]
ldrh r0, [r4, #0xe]
add r0, r0, #1
strh r0, [r4, #0xe]
b _0221DB1A
_0221D720:
add r0, r0, #1
strh r0, [r4, #0xc]
b _0221DB1A
_0221D726:
add r0, #0x14
bl ScheduleWindowCopyToVram
ldrh r0, [r4, #0xe]
add r0, r0, #1
strh r0, [r4, #0xe]
b _0221DB1A
_0221D734:
ldrh r0, [r4, #0xc]
cmp r0, #0x3c
bne _0221D77A
mov r2, #0
add r3, r2, #0
ldr r0, [r4, #0x10]
mov r1, #2
sub r3, #0x10
bl ScheduleSetBgPosText
mov r2, #3
add r3, r2, #0
ldr r0, [r4, #0x10]
mov r1, #2
add r3, #0xfd
bl ScheduleSetBgPosText
add r0, r4, #0
add r0, #0xac
ldr r0, [r0]
mov r1, #2
bl sub_0200DD54
add r0, r4, #0
add r0, #0xb0
ldr r0, [r0]
mov r1, #2
bl sub_0200DD54
mov r0, #0
strh r0, [r4, #0xc]
ldrh r0, [r4, #0xe]
add r0, r0, #1
strh r0, [r4, #0xe]
b _0221DB1A
_0221D77A:
add r0, r0, #1
strh r0, [r4, #0xc]
b _0221DB1A
_0221D780:
ldrh r0, [r4, #0xc]
cmp r0, #8
ldr r0, [r4, #0x10]
bne _0221D7D4
mov r1, #2
mov r2, #0
mov r3, #0x70
bl ScheduleSetBgPosText
ldr r0, [r4, #0x10]
mov r1, #2
mov r2, #3
mov r3, #0xc0
bl ScheduleSetBgPosText
mov r1, #3
add r3, r1, #0
ldr r0, [r4, #0x10]
add r2, r1, #0
add r3, #0xfd
bl ScheduleSetBgPosText
add r0, r4, #0
add r0, #0xa4
mov r1, #0x58
ldr r0, [r0]
add r2, r1, #0
bl sub_0200DDB8
add r0, r4, #0
add r0, #0xa8
ldr r0, [r0]
mov r1, #0x68
mov r2, #0x48
bl sub_0200DDB8
mov r0, #0
strh r0, [r4, #0xc]
ldrh r0, [r4, #0xe]
add r0, r0, #1
strh r0, [r4, #0xe]
b _0221DB1A
_0221D7D4:
mov r1, #2
mov r2, #1
mov r3, #0x10
bl ScheduleSetBgPosText
ldr r0, [r4, #0x10]
mov r1, #2
mov r2, #5
mov r3, #8
bl ScheduleSetBgPosText
add r0, r4, #0
add r0, #0xa4
mov r1, #0x14
ldr r0, [r0]
mvn r1, r1
mov r2, #0x10
bl sub_0200DED0
add r0, r4, #0
add r0, #0xa8
mov r1, #0x17
ldr r0, [r0]
mvn r1, r1
mov r2, #0x13
bl sub_0200DED0
ldrh r0, [r4, #0xc]
add r0, r0, #1
strh r0, [r4, #0xc]
b _0221DB1A
_0221D812:
add r0, #0x24
bl ScheduleWindowCopyToVram
add r0, r4, #0
mov r1, #2
mov r2, #0
bl ov63_0221C954
add r0, r4, #0
mov r1, #4
mov r2, #0
bl ov63_0221C954
add r0, r4, #0
mov r1, #3
mov r2, #2
bl ov63_0221C954
add r0, r4, #0
mov r1, #5
mov r2, #2
bl ov63_0221C954
ldrh r0, [r4, #0xe]
add r0, r0, #1
strh r0, [r4, #0xe]
b _0221DB1A
_0221D848:
ldrh r0, [r4, #0xc]
cmp r0, #0x28
bne _0221D85A
mov r0, #0
strh r0, [r4, #0xc]
ldrh r0, [r4, #0xe]
add r0, r0, #1
strh r0, [r4, #0xe]
b _0221DB1A
_0221D85A:
add r0, r0, #1
strh r0, [r4, #0xc]
b _0221DB1A
_0221D860:
add r0, #0x34
bl ScheduleWindowCopyToVram
ldr r1, _0221D8B0 ; =0x00013060
mov r0, #1
ldr r2, [r4, r1]
bic r2, r0
mov r0, #1
orr r0, r2
str r0, [r4, r1]
ldrh r0, [r4, #0xe]
add r0, r0, #1
strh r0, [r4, #0xe]
b _0221DB1A
_0221D87C:
ldrh r0, [r4, #0xc]
cmp r0, #0x14
bne _0221D88E
mov r0, #0
strh r0, [r4, #0xc]
ldrh r0, [r4, #0xe]
add r0, r0, #1
strh r0, [r4, #0xe]
b _0221DB1A
_0221D88E:
add r0, r0, #1
strh r0, [r4, #0xc]
b _0221DB1A
_0221D894:
add r0, #0x44
bl ScheduleWindowCopyToVram
ldrh r0, [r4, #0xe]
add r0, r0, #1
strh r0, [r4, #0xe]
b _0221DB1A
nop
_0221D8A4: .word 0x00013056
_0221D8A8: .word 0x0000328C
_0221D8AC: .word 0x00000113
_0221D8B0: .word 0x00013060
_0221D8B4: .word 0x0000FF9E
_0221D8B8:
ldrh r0, [r4, #0xc]
cmp r0, #0xf0
bne _0221D93A
ldr r0, [r4, #0x10]
mov r1, #2
mov r2, #0
mov r3, #0x48
bl ScheduleSetBgPosText
ldr r0, [r4, #0x10]
mov r1, #2
mov r2, #3
mov r3, #0
bl ScheduleSetBgPosText
add r0, r4, #0
add r0, #0xa4
ldr r0, [r0]
mov r1, #3
bl sub_0200DD54
add r0, r4, #0
add r0, #0xa8
ldr r0, [r0]
mov r1, #3
bl sub_0200DD54
add r0, r4, #0
add r0, #0xac
ldr r0, [r0]
mov r1, #3
bl sub_0200DD54
add r0, r4, #0
add r0, #0xb0
ldr r0, [r0]
mov r1, #3
bl sub_0200DD54
add r0, r4, #0
add r0, #0xb4
ldr r0, [r0]
mov r1, #3
bl sub_0200DD54
add r0, r4, #0
add r0, #0xb8
ldr r0, [r0]
mov r1, #3
bl sub_0200DD54
mov r1, #0xfe
ldr r0, _0221DB20 ; =0x00013058
lsl r1, r1, #0x16
str r1, [r4, r0]
mov r1, #0xff
lsl r1, r1, #0x16
add r0, r0, #4
str r1, [r4, r0]
mov r0, #0
strh r0, [r4, #0xc]
ldrh r0, [r4, #0xe]
add r0, r0, #1
strh r0, [r4, #0xe]
b _0221DB1A
_0221D93A:
add r0, r0, #1
strh r0, [r4, #0xc]
b _0221DB1A
_0221D940:
ldrh r0, [r4, #0xc]
cmp r0, #0xa
ldr r0, [r4, #0x10]
bne _0221DA14
mov r1, #0
add r3, r1, #0
add r2, r1, #0
sub r3, #0x50
bl ScheduleSetBgPosText
mov r2, #3
add r3, r2, #0
ldr r0, [r4, #0x10]
mov r1, #0
sub r3, #0xcb
bl ScheduleSetBgPosText
mov r2, #0
ldr r0, [r4, #0x10]
mov r1, #1
add r3, r2, #0
bl ScheduleSetBgPosText
mov r2, #0
ldr r0, [r4, #0x10]
mov r1, #2
add r3, r2, #0
bl ScheduleSetBgPosText
ldr r0, [r4, #0x10]
mov r1, #3
mov r2, #0
mov r3, #0x3c
bl ScheduleSetBgPosText
mov r1, #3
ldr r0, [r4, #0x10]
add r2, r1, #0
mov r3, #0xe2
bl ScheduleSetBgPosText
add r0, r4, #0
add r0, #0xac
ldr r0, [r0]
mov r1, #0x94
mov r2, #0xfc
bl sub_0200DDB8
add r0, r4, #0
add r0, #0xb0
ldr r0, [r0]
mov r1, #0x40
mov r2, #0xc0
bl sub_0200DDB8
add r0, r4, #0
add r0, #0xb4
mov r1, #0x1b
mvn r1, r1
ldr r0, [r0]
sub r2, r1, #2
bl sub_0200DDB8
add r0, r4, #0
add r0, #0xb8
mov r1, #0x1c
mvn r1, r1
ldr r0, [r0]
sub r2, r1, #2
bl sub_0200DDB8
add r0, r4, #0
add r0, #0xa4
ldr r0, [r0]
mov r1, #0x30
mov r2, #0x80
bl sub_0200DDB8
add r0, r4, #0
add r0, #0xa8
ldr r0, [r0]
mov r1, #0x40
mov r2, #0x70
bl sub_0200DDB8
add r0, r4, #0
add r0, #0xa4
ldr r1, _0221DB24 ; =0x3FE66666
ldr r0, [r0]
add r2, r1, #0
bl sub_0200E024
add r0, r4, #0
add r0, #0xa8
mov r1, #1
lsl r1, r1, #0x1e
ldr r0, [r0]
add r2, r1, #0
bl sub_0200E024
mov r0, #0
strh r0, [r4, #0xc]
ldrh r0, [r4, #0xe]
add r0, r0, #1
strh r0, [r4, #0xe]
b _0221DB1A
_0221DA14:
mov r1, #0
mov r2, #2
mov r3, #8
bl ScheduleSetBgPosText
ldr r0, [r4, #0x10]
mov r1, #0
mov r2, #4
mov r3, #0x14
bl ScheduleSetBgPosText
mov r1, #1
ldr r0, [r4, #0x10]
add r2, r1, #0
mov r3, #7
bl ScheduleSetBgPosText
mov r1, #2
ldr r0, [r4, #0x10]
add r2, r1, #0
mov r3, #7
bl ScheduleSetBgPosText
ldr r0, [r4, #0x10]
mov r1, #3
mov r2, #1
mov r3, #6
bl ScheduleSetBgPosText
mov r1, #3
ldr r0, [r4, #0x10]
mov r2, #5
add r3, r1, #0
bl ScheduleSetBgPosText
add r0, r4, #0
add r0, #0xac
mov r1, #0xa
ldr r0, [r0]
add r2, r1, #0
bl sub_0200DED0
add r0, r4, #0
add r0, #0xb0
mov r1, #0xa
ldr r0, [r0]
add r2, r1, #0
bl sub_0200DED0
add r0, r4, #0
add r0, #0xb4
mov r1, #5
mvn r1, r1
ldr r0, [r0]
sub r2, r1, #1
bl sub_0200DED0
add r0, r4, #0
add r0, #0xb8
mov r1, #5
mvn r1, r1
ldr r0, [r0]
sub r2, r1, #1
bl sub_0200DED0
add r0, r4, #0
add r0, #0xa4
mov r1, #3
ldr r0, [r0]
mvn r1, r1
mov r2, #4
bl sub_0200DED0
add r0, r4, #0
add r0, #0xa8
mov r1, #3
ldr r0, [r0]
mvn r1, r1
mov r2, #4
bl sub_0200DED0
ldr r5, _0221DB20 ; =0x00013058
ldr r0, [r4, r5]
bl _f2d
ldr r2, _0221DB28 ; =0x47AE147B
ldr r3, _0221DB2C ; =0x3FB47AE1
bl _dadd
bl _d2f
str r0, [r4, r5]
add r0, r5, #4
ldr r0, [r4, r0]
bl _f2d
ldr r2, _0221DB30 ; =0x9999999A
ldr r3, _0221DB34 ; =0x3FA99999
bl _dadd
bl _d2f
add r1, r5, #4
str r0, [r4, r1]
add r0, r4, #0
sub r1, r1, #4
add r0, #0xa4
ldr r1, [r4, r1]
ldr r0, [r0]
add r2, r1, #0
bl sub_0200E024
add r0, r4, #0
add r1, r5, #4
add r0, #0xa8
ldr r1, [r4, r1]
ldr r0, [r0]
add r2, r1, #0
bl sub_0200E024
ldrh r0, [r4, #0xc]
add r0, r0, #1
strh r0, [r4, #0xc]
b _0221DB1A
_0221DB0C:
ldrh r0, [r4, #0xc]
cmp r0, #0x3c
bne _0221DB16
mov r0, #0
pop {r3, r4, r5, pc}
_0221DB16:
add r0, r0, #1
strh r0, [r4, #0xc]
_0221DB1A:
mov r0, #1
pop {r3, r4, r5, pc}
nop
_0221DB20: .word 0x00013058
_0221DB24: .word 0x3FE66666
_0221DB28: .word 0x47AE147B
_0221DB2C: .word 0x3FB47AE1
_0221DB30: .word 0x9999999A
_0221DB34: .word 0x3FA99999
thumb_func_end ov63_0221D55C
thumb_func_start ov63_0221DB38
ov63_0221DB38: ; 0x0221DB38
push {r3, r4, r5, lr}
add r4, r0, #0
ldrh r1, [r4, #0xe]
cmp r1, #0x10
bls _0221DB44
b _0221E0F6
_0221DB44:
add r1, r1, r1
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_0221DB50: ; jump table
.short _0221DB72 - _0221DB50 - 2 ; case 0
.short _0221DC0A - _0221DB50 - 2 ; case 1
.short _0221DC1C - _0221DB50 - 2 ; case 2
.short _0221DC34 - _0221DB50 - 2 ; case 3
.short _0221DCA0 - _0221DB50 - 2 ; case 4
.short _0221DCEA - _0221DB50 - 2 ; case 5
.short _0221DD02 - _0221DB50 - 2 ; case 6
.short _0221DD10 - _0221DB50 - 2 ; case 7
.short _0221DD5C - _0221DB50 - 2 ; case 8
.short _0221DDEA - _0221DB50 - 2 ; case 9
.short _0221DE20 - _0221DB50 - 2 ; case 10
.short _0221DE38 - _0221DB50 - 2 ; case 11
.short _0221DE54 - _0221DB50 - 2 ; case 12
.short _0221DE6C - _0221DB50 - 2 ; case 13
.short _0221DE90 - _0221DB50 - 2 ; case 14
.short _0221DF1A - _0221DB50 - 2 ; case 15
.short _0221E0E8 - _0221DB50 - 2 ; case 16
_0221DB72:
ldrh r0, [r4, #0xc]
cmp r0, #0xa
bne _0221DBCE
ldr r0, _0221DE7C ; =0x00013056
mov r2, #0
ldrh r1, [r4, r0]
ldr r0, _0221DE80 ; =0x0000328C
mov r3, #0x48
mul r0, r1
add r1, r4, r0
ldr r0, _0221DE84 ; =0x00000113
ldrb r5, [r1, r0]
ldr r0, [r4, #0x10]
mov r1, #1
bl ScheduleSetBgPosText
mov r3, #0xff
ldr r0, [r4, #0x10]
mov r1, #2
mov r2, #0
mvn r3, r3
bl ScheduleSetBgPosText
add r0, r4, #0
add r5, #0x98
add r0, #0xac
lsl r2, r5, #0x10
ldr r0, [r0]
mov r1, #0xa0
asr r2, r2, #0x10
bl sub_0200DDB8
add r0, r4, #0
add r0, #0xb0
lsl r2, r5, #0x10
ldr r0, [r0]
mov r1, #0x9e
asr r2, r2, #0x10
bl sub_0200DDB8
mov r0, #0
strh r0, [r4, #0xc]
ldrh r0, [r4, #0xe]
add r0, r0, #1
strh r0, [r4, #0xe]
b _0221E0F6
_0221DBCE:
mov r1, #1
ldr r0, [r4, #0x10]
add r2, r1, #0
mov r3, #7
bl ScheduleSetBgPosText
mov r1, #2
ldr r0, [r4, #0x10]
add r2, r1, #0
mov r3, #7
bl ScheduleSetBgPosText
add r0, r4, #0
add r0, #0xac
ldr r0, [r0]
mov r1, #0x18
mov r2, #0
bl sub_0200DED0
add r0, r4, #0
add r0, #0xb0
ldr r0, [r0]
mov r1, #0x19
mov r2, #0
bl sub_0200DED0
ldrh r0, [r4, #0xc]
add r0, r0, #1
strh r0, [r4, #0xc]
b _0221E0F6
_0221DC0A:
ldr r1, _0221DE88 ; =0x00013060
mov r0, #2
ldr r2, [r4, r1]
orr r0, r2
str r0, [r4, r1]
ldrh r0, [r4, #0xe]
add r0, r0, #1
strh r0, [r4, #0xe]
b _0221E0F6
_0221DC1C:
ldrh r0, [r4, #0xc]
cmp r0, #0x32
bne _0221DC2E
mov r0, #0
strh r0, [r4, #0xc]
ldrh r0, [r4, #0xe]
add r0, r0, #1
strh r0, [r4, #0xe]
b _0221E0F6
_0221DC2E:
add r0, r0, #1
strh r0, [r4, #0xc]
b _0221E0F6
_0221DC34:
ldrh r0, [r4, #0xc]
cmp r0, #6
bne _0221DC78
add r0, r4, #0
add r0, #0xb4
ldr r0, [r0]
mov r1, #0xe0
mov r2, #0x28
bl sub_0200DDB8
add r0, r4, #0
add r0, #0xb8
ldr r0, [r0]
mov r1, #0xe1
mov r2, #0x27
bl sub_0200DDB8
mov r1, #1
lsl r1, r1, #8
add r3, r4, r1
ldr r1, _0221DE7C ; =0x00013056
add r0, r4, #0
ldrh r2, [r4, r1]
ldr r1, _0221DE80 ; =0x0000328C
mul r1, r2
add r1, r3, r1
bl ov63_0221D2F8
mov r0, #0
strh r0, [r4, #0xc]
ldrh r0, [r4, #0xe]
add r0, r0, #1
strh r0, [r4, #0xe]
b _0221E0F6
_0221DC78:
add r0, r4, #0
add r0, #0xb4
mov r1, #0x12
ldr r0, [r0]
mvn r1, r1
mov r2, #7
bl sub_0200DED0
add r0, r4, #0
add r0, #0xb8
mov r1, #0x13
ldr r0, [r0]
mvn r1, r1
mov r2, #7
bl sub_0200DED0
ldrh r0, [r4, #0xc]
add r0, r0, #1
strh r0, [r4, #0xc]
b _0221E0F6
_0221DCA0:
ldr r1, _0221DE7C ; =0x00013056
ldrh r2, [r4, r1]
ldr r1, _0221DE80 ; =0x0000328C
mul r1, r2
add r2, r4, r1
mov r1, #0x43
lsl r1, r1, #2
ldrh r2, [r2, r1]
ldr r1, _0221DE8C ; =0x0000FF9E
add r1, r2, r1
lsl r1, r1, #0x10
lsr r1, r1, #0x10
cmp r1, #1
bhi _0221DCD0
mov r1, #4
mov r2, #3
bl ov63_0221C16C
add r0, r4, #0
mov r1, #5
mov r2, #3
bl ov63_0221C16C
b _0221DCE2
_0221DCD0:
mov r1, #4
mov r2, #1
bl ov63_0221C16C
add r0, r4, #0
mov r1, #5
mov r2, #1
bl ov63_0221C16C
_0221DCE2:
ldrh r0, [r4, #0xe]
add r0, r0, #1
strh r0, [r4, #0xe]
b _0221E0F6
_0221DCEA:
ldrh r0, [r4, #0xc]
cmp r0, #0x14
bne _0221DCFC
mov r0, #0
strh r0, [r4, #0xc]
ldrh r0, [r4, #0xe]
add r0, r0, #1
strh r0, [r4, #0xe]
b _0221E0F6
_0221DCFC:
add r0, r0, #1
strh r0, [r4, #0xc]
b _0221E0F6
_0221DD02:
add r0, #0x14
bl ScheduleWindowCopyToVram
ldrh r0, [r4, #0xe]
add r0, r0, #1
strh r0, [r4, #0xe]
b _0221E0F6
_0221DD10:
ldrh r0, [r4, #0xc]
cmp r0, #0x3c
bne _0221DD56
mov r3, #0x11
ldr r0, [r4, #0x10]
mov r1, #2
mov r2, #0
lsl r3, r3, #4
bl ScheduleSetBgPosText
mov r2, #3
add r3, r2, #0
ldr r0, [r4, #0x10]
mov r1, #2
add r3, #0xfd
bl ScheduleSetBgPosText
add r0, r4, #0
add r0, #0xac
ldr r0, [r0]
mov r1, #2
bl sub_0200DD54
add r0, r4, #0
add r0, #0xb0
ldr r0, [r0]
mov r1, #2
bl sub_0200DD54
mov r0, #0
strh r0, [r4, #0xc]
ldrh r0, [r4, #0xe]
add r0, r0, #1
strh r0, [r4, #0xe]
b _0221E0F6
_0221DD56:
add r0, r0, #1
strh r0, [r4, #0xc]
b _0221E0F6
_0221DD5C:
ldrh r0, [r4, #0xc]
cmp r0, #8
ldr r0, [r4, #0x10]
bne _0221DDB0
mov r1, #2
mov r2, #0
mov r3, #0x90
bl ScheduleSetBgPosText
ldr r0, [r4, #0x10]
mov r1, #2
mov r2, #3
mov r3, #0xc0
bl ScheduleSetBgPosText
mov r1, #3
add r3, r1, #0
ldr r0, [r4, #0x10]
add r2, r1, #0
add r3, #0xfd
bl ScheduleSetBgPosText
add r0, r4, #0
add r0, #0xa4
ldr r0, [r0]
mov r1, #0xa8
mov r2, #0x58
bl sub_0200DDB8
add r0, r4, #0
add r0, #0xa8
ldr r0, [r0]
mov r1, #0x98
mov r2, #0x48
bl sub_0200DDB8
mov r0, #0
strh r0, [r4, #0xc]
ldrh r0, [r4, #0xe]
add r0, r0, #1
strh r0, [r4, #0xe]
b _0221E0F6
_0221DDB0:
mov r1, #2
add r2, r1, #0
mov r3, #0x10
bl ScheduleSetBgPosText
ldr r0, [r4, #0x10]
mov r1, #2
mov r2, #5
mov r3, #8
bl ScheduleSetBgPosText
add r0, r4, #0
add r0, #0xa4
ldr r0, [r0]
mov r1, #0x15
mov r2, #0x10
bl sub_0200DED0
add r0, r4, #0
add r0, #0xa8
ldr r0, [r0]
mov r1, #0x18
mov r2, #0x13
bl sub_0200DED0
ldrh r0, [r4, #0xc]
add r0, r0, #1
strh r0, [r4, #0xc]
b _0221E0F6
_0221DDEA:
add r0, #0x54
bl ScheduleWindowCopyToVram
add r0, r4, #0
mov r1, #2
mov r2, #0
bl ov63_0221C954
add r0, r4, #0
mov r1, #4
mov r2, #0
bl ov63_0221C954
add r0, r4, #0
mov r1, #3
mov r2, #2
bl ov63_0221C954
add r0, r4, #0
mov r1, #5
mov r2, #2
bl ov63_0221C954
ldrh r0, [r4, #0xe]
add r0, r0, #1
strh r0, [r4, #0xe]
b _0221E0F6
_0221DE20:
ldrh r0, [r4, #0xc]
cmp r0, #0x28
bne _0221DE32
mov r0, #0
strh r0, [r4, #0xc]
ldrh r0, [r4, #0xe]
add r0, r0, #1
strh r0, [r4, #0xe]
b _0221E0F6
_0221DE32:
add r0, r0, #1
strh r0, [r4, #0xc]
b _0221E0F6
_0221DE38:
add r0, #0x64
bl ScheduleWindowCopyToVram
ldr r1, _0221DE88 ; =0x00013060
mov r0, #1
ldr r2, [r4, r1]
bic r2, r0
mov r0, #1
orr r0, r2
str r0, [r4, r1]
ldrh r0, [r4, #0xe]
add r0, r0, #1
strh r0, [r4, #0xe]
b _0221E0F6
_0221DE54:
ldrh r0, [r4, #0xc]
cmp r0, #0x14
bne _0221DE66
mov r0, #0
strh r0, [r4, #0xc]
ldrh r0, [r4, #0xe]
add r0, r0, #1
strh r0, [r4, #0xe]
b _0221E0F6
_0221DE66:
add r0, r0, #1
strh r0, [r4, #0xc]
b _0221E0F6
_0221DE6C:
add r0, #0x74
bl ScheduleWindowCopyToVram
ldrh r0, [r4, #0xe]
add r0, r0, #1
strh r0, [r4, #0xe]
b _0221E0F6
nop
_0221DE7C: .word 0x00013056
_0221DE80: .word 0x0000328C
_0221DE84: .word 0x00000113
_0221DE88: .word 0x00013060
_0221DE8C: .word 0x0000FF9E
_0221DE90:
ldrh r0, [r4, #0xc]
cmp r0, #0xf0
bne _0221DF14
mov r3, #0xff
ldr r0, [r4, #0x10]
mov r1, #2
mov r2, #0
mvn r3, r3
bl ScheduleSetBgPosText
ldr r0, [r4, #0x10]
mov r1, #2
mov r2, #3
mov r3, #0
bl ScheduleSetBgPosText
add r0, r4, #0
add r0, #0xa4
ldr r0, [r0]
mov r1, #3
bl sub_0200DD54
add r0, r4, #0
add r0, #0xa8
ldr r0, [r0]
mov r1, #3
bl sub_0200DD54
add r0, r4, #0
add r0, #0xac
ldr r0, [r0]
mov r1, #3
bl sub_0200DD54
add r0, r4, #0
add r0, #0xb0
ldr r0, [r0]
mov r1, #3
bl sub_0200DD54
add r0, r4, #0
add r0, #0xb4
ldr r0, [r0]
mov r1, #3
bl sub_0200DD54
add r0, r4, #0
add r0, #0xb8
ldr r0, [r0]
mov r1, #3
bl sub_0200DD54
mov r1, #0xfe
ldr r0, _0221E0FC ; =0x00013058
lsl r1, r1, #0x16
str r1, [r4, r0]
mov r1, #0xff
lsl r1, r1, #0x16
add r0, r0, #4
str r1, [r4, r0]
mov r0, #0
strh r0, [r4, #0xc]
ldrh r0, [r4, #0xe]
add r0, r0, #1
strh r0, [r4, #0xe]
b _0221E0F6
_0221DF14:
add r0, r0, #1
strh r0, [r4, #0xc]
b _0221E0F6
_0221DF1A:
ldrh r0, [r4, #0xc]
cmp r0, #0xa
ldr r0, [r4, #0x10]
bne _0221DFF0
mov r1, #0
add r2, r1, #0
mov r3, #0x50
bl ScheduleSetBgPosText
mov r2, #3
add r3, r2, #0
ldr r0, [r4, #0x10]
mov r1, #0
sub r3, #0xcb
bl ScheduleSetBgPosText
mov r2, #0
ldr r0, [r4, #0x10]
mov r1, #1
add r3, r2, #0
bl ScheduleSetBgPosText
mov r2, #0
add r3, r2, #0
ldr r0, [r4, #0x10]
mov r1, #2
sub r3, #0xb8
bl ScheduleSetBgPosText
ldr r0, [r4, #0x10]
mov r1, #3
mov r2, #0
mov r3, #0xc4
bl ScheduleSetBgPosText
mov r1, #3
ldr r0, [r4, #0x10]
add r2, r1, #0
mov r3, #0xe2
bl ScheduleSetBgPosText
add r0, r4, #0
add r0, #0xac
mov r1, #0x41
ldr r0, [r0]
lsl r1, r1, #2
mov r2, #0xfc
bl sub_0200DDB8
add r0, r4, #0
add r0, #0xb0
mov r1, #0xc0
ldr r0, [r0]
add r2, r1, #0
bl sub_0200DDB8
add r0, r4, #0
add r0, #0xb4
mov r1, #0xa4
add r2, r1, #0
ldr r0, [r0]
sub r2, #0xc2
bl sub_0200DDB8
add r0, r4, #0
add r0, #0xb8
mov r1, #0xa5
add r2, r1, #0
ldr r0, [r0]
sub r2, #0xc4
bl sub_0200DDB8
add r0, r4, #0
add r0, #0xa4
ldr r0, [r0]
mov r1, #0xd0
mov r2, #0x80
bl sub_0200DDB8
add r0, r4, #0
add r0, #0xa8
ldr r0, [r0]
mov r1, #0xc0
mov r2, #0x70
bl sub_0200DDB8
add r0, r4, #0
add r0, #0xa4
ldr r1, _0221E100 ; =0x3FE66666
ldr r0, [r0]
add r2, r1, #0
bl sub_0200E024
add r0, r4, #0
add r0, #0xa8
mov r1, #1
lsl r1, r1, #0x1e
ldr r0, [r0]
add r2, r1, #0
bl sub_0200E024
mov r0, #0
strh r0, [r4, #0xc]
ldrh r0, [r4, #0xe]
add r0, r0, #1
strh r0, [r4, #0xe]
b _0221E0F6
_0221DFF0:
mov r1, #0
mov r2, #1
mov r3, #8
bl ScheduleSetBgPosText
ldr r0, [r4, #0x10]
mov r1, #0
mov r2, #4
mov r3, #0x14
bl ScheduleSetBgPosText
ldr r0, [r4, #0x10]
mov r1, #1
mov r2, #2
mov r3, #7
bl ScheduleSetBgPosText
ldr r0, [r4, #0x10]
mov r1, #2
mov r2, #1
mov r3, #7
bl ScheduleSetBgPosText
ldr r0, [r4, #0x10]
mov r1, #3
mov r2, #2
mov r3, #6
bl ScheduleSetBgPosText
mov r1, #3
ldr r0, [r4, #0x10]
mov r2, #5
add r3, r1, #0
bl ScheduleSetBgPosText
add r0, r4, #0
add r0, #0xac
mov r1, #9
ldr r0, [r0]
mvn r1, r1
mov r2, #0xa
bl sub_0200DED0
add r0, r4, #0
add r0, #0xb0
mov r1, #9
ldr r0, [r0]
mvn r1, r1
mov r2, #0xa
bl sub_0200DED0
add r0, r4, #0
add r0, #0xb4
mov r1, #6
add r2, r1, #0
ldr r0, [r0]
sub r2, #0xd
bl sub_0200DED0
add r0, r4, #0
add r0, #0xb8
mov r1, #6
add r2, r1, #0
ldr r0, [r0]
sub r2, #0xd
bl sub_0200DED0
add r0, r4, #0
add r0, #0xa4
mov r1, #4
ldr r0, [r0]
add r2, r1, #0
bl sub_0200DED0
add r0, r4, #0
add r0, #0xa8
mov r1, #4
ldr r0, [r0]
add r2, r1, #0
bl sub_0200DED0
ldr r5, _0221E0FC ; =0x00013058
ldr r0, [r4, r5]
bl _f2d
ldr r2, _0221E104 ; =0x47AE147B
ldr r3, _0221E108 ; =0x3FB47AE1
bl _dadd
bl _d2f
str r0, [r4, r5]
add r0, r5, #4
ldr r0, [r4, r0]
bl _f2d
ldr r2, _0221E10C ; =0x9999999A
ldr r3, _0221E110 ; =0x3FA99999
bl _dadd
bl _d2f
add r1, r5, #4
str r0, [r4, r1]
add r0, r4, #0
sub r1, r1, #4
add r0, #0xa4
ldr r1, [r4, r1]
ldr r0, [r0]
add r2, r1, #0
bl sub_0200E024
add r0, r4, #0
add r1, r5, #4
add r0, #0xa8
ldr r1, [r4, r1]
ldr r0, [r0]
add r2, r1, #0
bl sub_0200E024
ldrh r0, [r4, #0xc]
add r0, r0, #1
strh r0, [r4, #0xc]
b _0221E0F6
_0221E0E8:
ldrh r0, [r4, #0xc]
cmp r0, #0x3c
bne _0221E0F2
mov r0, #0
pop {r3, r4, r5, pc}
_0221E0F2:
add r0, r0, #1
strh r0, [r4, #0xc]
_0221E0F6:
mov r0, #1
pop {r3, r4, r5, pc}
nop
_0221E0FC: .word 0x00013058
_0221E100: .word 0x3FE66666
_0221E104: .word 0x47AE147B
_0221E108: .word 0x3FB47AE1
_0221E10C: .word 0x9999999A
_0221E110: .word 0x3FA99999
thumb_func_end ov63_0221DB38
thumb_func_start ov63_0221E114
ov63_0221E114: ; 0x0221E114
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x50
ldr r3, _0221E2F8 ; =ov63_0221FC38
add r2, sp, #0x20
add r6, r0, #0
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
mov r0, #0xb4
mov r1, #0x3e
bl NARC_ctor
str r0, [sp, #0x18]
ldr r0, [r6]
mov r7, #0
ldr r0, [r0, #4]
bl GetPartyCount
cmp r0, #0
bhi _0221E148
b _0221E2EC
_0221E148:
mov r0, #1
lsl r0, r0, #8
add r0, r6, r0
str r0, [sp, #0x1c]
_0221E150:
ldr r0, [r6]
add r1, r7, #0
ldr r0, [r0, #4]
bl GetPartyMonByIndex
add r4, r0, #0
bl AcquireMonLock
str r0, [sp, #0x14]
add r0, r4, #0
mov r1, #0x4c
mov r2, #0
bl GetMonData
cmp r0, #0
beq _0221E172
b _0221E2D4
_0221E172:
ldr r0, _0221E2FC ; =0x00013048
mov r2, #0
ldr r1, [r6, r0]
ldr r0, _0221E300 ; =0x0000328C
mul r0, r1
ldr r1, [sp, #0x1c]
add r5, r1, r0
str r4, [r1, r0]
add r0, r4, #0
mov r1, #5
bl GetMonData
mov r1, #0
strh r0, [r5, #0xc]
add r0, r4, #0
add r2, r1, #0
bl GetMonData
str r0, [r5, #8]
add r0, r4, #0
mov r1, #0x70
mov r2, #0
bl GetMonData
strb r0, [r5, #0x10]
add r0, r4, #0
mov r1, #0x6f
mov r2, #0
bl GetMonData
strb r0, [r5, #0x11]
ldr r0, [r5, #8]
mov r2, #0
str r0, [sp]
ldrh r0, [r5, #0xc]
ldrb r1, [r5, #0x11]
ldrb r3, [r5, #0x10]
bl sub_020708D8
add r0, #8
strb r0, [r5, #0x13]
add r0, r4, #0
mov r1, #0x99
mov r2, #0
bl GetMonData
str r0, [r5, #0x14]
add r0, r4, #0
mov r1, #0xa1
mov r2, #0
bl GetMonData
strh r0, [r5, #0xe]
str r7, [r5, #0x18]
ldrh r0, [r5, #0xc]
cmp r0, #0x1d
beq _0221E1E8
cmp r0, #0x20
bne _0221E1EE
_0221E1E8:
mov r0, #0
strb r0, [r5, #0x12]
b _0221E1F2
_0221E1EE:
mov r0, #1
strb r0, [r5, #0x12]
_0221E1F2:
ldrh r0, [r5, #0xc]
bl SpeciesToOverworldModelIndexOffset
add r2, r0, #0
add r0, r5, #4
mov r1, #0x8d
bl ReadWholeNarcMemberByIdPair
add r0, sp, #0x40
add r1, r4, #0
mov r2, #2
bl GetPokemonSpriteCharAndPlttNarcIds
add r0, r5, #0
add r0, #0x6c
str r0, [sp]
ldr r0, [r5, #8]
add r1, sp, #0x20
str r0, [sp, #4]
mov r0, #1
str r0, [sp, #8]
mov r0, #2
str r0, [sp, #0xc]
ldrh r0, [r5, #0xc]
mov r2, #0x3e
add r3, sp, #0x20
str r0, [sp, #0x10]
add r0, sp, #0x20
ldrh r0, [r0, #0x20]
ldrh r1, [r1, #0x22]
bl sub_02014510
ldr r0, _0221E304 ; =0x00000CEC
add r1, sp, #0x20
add r0, r5, r0
str r0, [sp]
ldr r0, [r5, #8]
mov r2, #0x3e
str r0, [sp, #4]
mov r0, #1
str r0, [sp, #8]
mov r0, #2
str r0, [sp, #0xc]
ldrh r0, [r5, #0xc]
add r3, sp, #0x30
str r0, [sp, #0x10]
add r0, sp, #0x20
ldrh r0, [r0, #0x20]
ldrh r1, [r1, #0x22]
bl sub_02014510
add r0, sp, #0x40
add r1, r4, #0
mov r2, #0
bl GetPokemonSpriteCharAndPlttNarcIds
ldr r0, _0221E308 ; =0x0000196C
add r1, sp, #0x20
add r0, r5, r0
str r0, [sp]
ldr r0, [r5, #8]
mov r2, #0x3e
str r0, [sp, #4]
mov r0, #1
str r0, [sp, #8]
mov r0, #0
str r0, [sp, #0xc]
ldrh r0, [r5, #0xc]
add r3, sp, #0x20
str r0, [sp, #0x10]
add r0, sp, #0x20
ldrh r0, [r0, #0x20]
ldrh r1, [r1, #0x22]
bl sub_02014510
ldr r0, _0221E30C ; =0x000025EC
add r1, sp, #0x20
add r0, r5, r0
str r0, [sp]
ldr r0, [r5, #8]
mov r2, #0x3e
str r0, [sp, #4]
mov r0, #1
str r0, [sp, #8]
mov r0, #0
str r0, [sp, #0xc]
ldrh r0, [r5, #0xc]
add r3, sp, #0x30
str r0, [sp, #0x10]
add r0, sp, #0x20
ldrh r0, [r0, #0x20]
ldrh r1, [r1, #0x22]
bl sub_02014510
add r1, r5, #0
ldrh r2, [r5, #0xc]
ldr r0, [sp, #0x18]
add r1, #0x1c
mov r3, #1
bl sub_02072914
ldrh r2, [r5, #0xc]
add r1, r5, #0
ldr r0, [sp, #0x18]
add r1, #0x44
mov r3, #0
bl sub_02072914
ldr r0, _0221E2FC ; =0x00013048
ldr r0, [r6, r0]
add r1, r0, #1
ldr r0, _0221E2FC ; =0x00013048
str r1, [r6, r0]
_0221E2D4:
ldr r1, [sp, #0x14]
add r0, r4, #0
bl ReleaseMonLock
ldr r0, [r6]
add r7, r7, #1
ldr r0, [r0, #4]
bl GetPartyCount
cmp r7, r0
bhs _0221E2EC
b _0221E150
_0221E2EC:
ldr r0, [sp, #0x18]
bl NARC_dtor
add sp, #0x50
pop {r3, r4, r5, r6, r7, pc}
nop
_0221E2F8: .word ov63_0221FC38
_0221E2FC: .word 0x00013048
_0221E300: .word 0x0000328C
_0221E304: .word 0x00000CEC
_0221E308: .word 0x0000196C
_0221E30C: .word 0x000025EC
thumb_func_end ov63_0221E114
thumb_func_start ov63_0221E310
ov63_0221E310: ; 0x0221E310
push {r3, r4, r5, r6, r7, lr}
add r4, r1, #0
add r5, r0, #0
add r0, r4, #0
add r6, r2, #0
bl AcquireMonLock
str r0, [sp]
add r0, r4, #0
mov r1, #0x7a
mov r2, #0
bl GetMonData
sub r1, r0, #1
cmp r1, #2
bhi _0221E334
mov r5, #4
b _0221E3F6
_0221E334:
sub r1, r0, #4
cmp r1, #1
bhi _0221E33E
mov r5, #3
b _0221E3F6
_0221E33E:
cmp r0, #0xf
bne _0221E346
mov r5, #6
b _0221E3F6
_0221E346:
sub r0, #0xa
cmp r0, #2
bhi _0221E350
mov r5, #5
b _0221E3F6
_0221E350:
add r0, r4, #0
mov r1, #0x6e
mov r2, #0
bl GetMonData
cmp r0, #0
beq _0221E362
mov r5, #7
b _0221E3F6
_0221E362:
add r0, r4, #0
mov r1, #6
bl MonIsInGameTradePoke
cmp r0, #1
bne _0221E372
mov r5, #8
b _0221E3F6
_0221E372:
add r0, r4, #0
mov r1, #7
bl MonIsInGameTradePoke
cmp r0, #1
bne _0221E382
mov r5, #9
b _0221E3F6
_0221E382:
add r0, r6, #0
bl PlayerProfile_GetTrainerID
add r7, r0, #0
add r0, r4, #0
mov r1, #7
mov r2, #0
bl GetMonData
cmp r7, r0
beq _0221E39C
mov r5, #2
b _0221E3F6
_0221E39C:
add r1, r5, #0
add r1, #0x8c
ldr r1, [r1]
add r0, r6, #0
bl PlayerName_FlatToString
add r2, r5, #0
add r2, #0x90
ldr r2, [r2]
add r0, r4, #0
mov r1, #0x91
bl GetMonData
add r0, r5, #0
add r0, #0x8c
add r5, #0x90
ldr r0, [r0]
ldr r1, [r5]
bl StringCompare
cmp r0, #0
beq _0221E3CC
mov r5, #2
b _0221E3F6
_0221E3CC:
add r0, r4, #0
mov r1, #0x99
mov r2, #0
bl GetMonData
mov r1, #0x7d
lsl r1, r1, #4
cmp r0, r1
blo _0221E3E2
mov r5, #7
b _0221E3F6
_0221E3E2:
add r0, r4, #0
mov r1, #0x93
mov r2, #0
bl GetMonData
cmp r0, #0
bne _0221E3F4
mov r5, #0
b _0221E3F6
_0221E3F4:
mov r5, #1
_0221E3F6:
ldr r1, [sp]
add r0, r4, #0
bl ReleaseMonLock
add r0, r5, #0
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_end ov63_0221E310
thumb_func_start ov63_0221E404
ov63_0221E404: ; 0x0221E404
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r6, r1, #0
add r7, r2, #0
cmp r5, #0
ble _0221E416
ldr r1, _0221E448 ; =0x000001ED
cmp r5, r1
ble _0221E41A
_0221E416:
mov r4, #1
b _0221E442
_0221E41A:
bl SpeciesToOverworldModelIndexOffset
ldr r1, _0221E44C ; =0x00000129
add r4, r0, r1
add r0, r5, #0
bl OverworldModelLookupHasFemaleForme
cmp r0, #0
beq _0221E434
cmp r7, #1
bne _0221E442
add r4, r4, #1
b _0221E442
_0221E434:
add r0, r5, #0
bl OverworldModelLookupFormeCount
cmp r6, r0
ble _0221E440
mov r6, #0
_0221E440:
add r4, r4, r6
_0221E442:
add r0, r4, #0
pop {r3, r4, r5, r6, r7, pc}
nop
_0221E448: .word 0x000001ED
_0221E44C: .word 0x00000129
thumb_func_end ov63_0221E404
thumb_func_start ov63_0221E450
ov63_0221E450: ; 0x0221E450
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r6, r1, #0
mov r0, #0x3e
mov r1, #0x2c
add r7, r2, #0
str r3, [sp]
bl AllocFromHeap
add r4, r0, #0
mov r0, #1
lsl r0, r0, #8
add r1, r5, r0
ldr r0, _0221E4D4 ; =0x0000328C
mul r0, r6
add r0, r1, r0
str r0, [r4]
ldr r0, [sp]
str r0, [r4, #0x28]
add r0, r5, #0
add r0, #0x98
ldr r0, [r0]
str r0, [r4, #0x18]
lsl r0, r7, #2
add r0, r5, r0
add r0, #0xa4
ldr r0, [r0]
ldr r0, [r0]
bl sub_02024B1C
mov r1, #1
bl NNS_G2dGetImageLocation
str r0, [r4, #0x20]
ldr r0, [sp, #0x18]
cmp r0, #2
bne _0221E4B0
ldr r0, [r4]
add r0, #0x6c
str r0, [r4, #0x1c]
mov r0, #1
strh r0, [r4, #0x24]
ldr r1, [r4]
add r0, r4, #4
add r1, #0x1c
bl sub_02009264
b _0221E4C6
_0221E4B0:
ldr r1, [r4]
ldr r0, _0221E4D8 ; =0x0000196C
add r0, r1, r0
str r0, [r4, #0x1c]
mov r0, #0
strh r0, [r4, #0x24]
ldr r1, [r4]
add r0, r4, #4
add r1, #0x44
bl sub_02009264
_0221E4C6:
ldr r0, _0221E4DC ; =ov63_0221E4E0
add r1, r4, #0
mov r2, #0
bl CreateSysTask
pop {r3, r4, r5, r6, r7, pc}
nop
_0221E4D4: .word 0x0000328C
_0221E4D8: .word 0x0000196C
_0221E4DC: .word ov63_0221E4E0
thumb_func_end ov63_0221E450
thumb_func_start ov63_0221E4E0
ov63_0221E4E0: ; 0x0221E4E0
push {r3, r4, r5, lr}
sub sp, #8
add r4, r1, #0
add r5, r0, #0
ldr r0, [r4, #0x28]
cmp r0, #1
bne _0221E528
ldr r2, [r4]
ldrh r3, [r4, #0x24]
ldrh r2, [r2, #0xc]
ldr r0, [r4, #0x18]
add r1, sp, #4
bl sub_020729A4
ldr r2, [r4]
ldr r1, _0221E558 ; =0x000001B9
ldrh r0, [r2, #0xc]
cmp r0, r1
bne _0221E51A
add r0, sp, #4
ldrb r0, [r0]
mov r2, #0x64
str r0, [sp]
mov r0, #0
add r1, r0, #0
add r3, r0, #0
bl sub_02006EA0
b _0221E524
_0221E51A:
add r1, sp, #4
ldrb r1, [r1]
ldrb r2, [r2, #0x10]
bl sub_020062E0
_0221E524:
mov r0, #0
str r0, [r4, #0x28]
_0221E528:
add r0, r4, #4
bl sub_02009284
cmp r0, #0
blt _0221E548
mov r2, #0x32
ldr r3, [r4, #0x1c]
lsl r2, r2, #6
add r1, r0, #0
mul r1, r2
add r0, r3, r1
ldr r1, [r4, #0x20]
bl ov63_0221C00C
add sp, #8
pop {r3, r4, r5, pc}
_0221E548:
add r0, r4, #0
bl FreeToHeap
add r0, r5, #0
bl DestroySysTask
add sp, #8
pop {r3, r4, r5, pc}
.balign 4, 0
_0221E558: .word 0x000001B9
thumb_func_end ov63_0221E4E0
thumb_func_start ov63_0221E55C
ov63_0221E55C: ; 0x0221E55C
push {r3, r4, lr}
sub sp, #4
add r4, r2, #0
cmp r1, r4
bne _0221E578
mov r1, #0
ldr r0, _0221E59C ; =0x04000050
mov r2, #0x1c
add r3, r1, #0
str r1, [sp]
bl G2x_SetBlendAlpha_
add sp, #4
pop {r3, r4, pc}
_0221E578:
mov r0, #1
lsl r0, r0, #0x14
bl _u32_div_f
add r1, r0, #0
mul r1, r4
lsr r3, r1, #0x10
mov r0, #0x10
sub r0, r0, r3
str r0, [sp]
ldr r0, _0221E59C ; =0x04000050
mov r1, #4
mov r2, #0x1c
bl G2x_SetBlendAlpha_
add sp, #4
pop {r3, r4, pc}
nop
_0221E59C: .word 0x04000050
thumb_func_end ov63_0221E55C
thumb_func_start ov63_0221E5A0
ov63_0221E5A0: ; 0x0221E5A0
push {r3, r4, r5, r6, r7, lr}
add r4, r0, #0
ldr r0, _0221E878 ; =0x00013060
ldr r0, [r4, r0]
lsl r0, r0, #0x1a
lsr r0, r0, #0x1f
cmp r0, #1
bne _0221E5BC
mov r1, #2
ldr r0, [r4, #0x10]
add r2, r1, #0
add r3, r1, #0
bl ScheduleSetBgPosText
_0221E5BC:
ldr r1, _0221E878 ; =0x00013060
ldr r0, [r4, r1]
lsl r0, r0, #0x19
lsr r0, r0, #0x1f
cmp r0, #1
bne _0221E638
add r0, r1, #0
add r0, #0xa
ldrh r2, [r4, r0]
add r0, r1, #0
add r0, #8
ldrh r0, [r4, r0]
cmp r2, r0
bne _0221E62C
bl LCRandom
mov r1, #0xe0
bl _s32_div_f
add r1, #0x10
lsl r0, r1, #0x10
asr r5, r0, #0x10
bl LCRandom
lsr r2, r0, #0x1f
lsl r1, r0, #0x1a
sub r1, r1, r2
mov r0, #0x1a
ror r1, r0
add r0, r2, r1
add r0, #0x10
lsl r0, r0, #0x10
asr r2, r0, #0x10
add r0, r4, #0
add r0, #0xdc
ldr r0, [r0]
add r1, r5, #0
bl sub_0200DDB8
add r0, r4, #0
mov r1, #0xe
mov r2, #0
bl ov63_0221C16C
bl LCRandom
mov r1, #0xff
bl _s32_div_f
ldr r0, _0221E87C ; =0x00013068
add r1, #0x1c
strh r1, [r4, r0]
mov r1, #0
add r0, r0, #2
strh r1, [r4, r0]
b _0221E638
_0221E62C:
add r0, r1, #0
add r0, #0xa
ldrh r0, [r4, r0]
add r1, #0xa
add r0, r0, #1
strh r0, [r4, r1]
_0221E638:
ldrh r0, [r4, #0xe]
cmp r0, #7
bhi _0221E6B6
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_0221E64A: ; jump table
.short _0221E65A - _0221E64A - 2 ; case 0
.short _0221E672 - _0221E64A - 2 ; case 1
.short _0221E6C8 - _0221E64A - 2 ; case 2
.short _0221E6E0 - _0221E64A - 2 ; case 3
.short _0221E724 - _0221E64A - 2 ; case 4
.short _0221E782 - _0221E64A - 2 ; case 5
.short _0221E7B6 - _0221E64A - 2 ; case 6
.short _0221E7EC - _0221E64A - 2 ; case 7
_0221E65A:
ldrh r0, [r4, #0xc]
cmp r0, #0x14
bne _0221E66C
mov r0, #0
strh r0, [r4, #0xc]
ldrh r0, [r4, #0xe]
add r0, r0, #1
strh r0, [r4, #0xe]
b _0221E874
_0221E66C:
add r0, r0, #1
strh r0, [r4, #0xc]
b _0221E874
_0221E672:
ldr r0, _0221E880 ; =0x00013056
ldr r2, _0221E884 ; =ov63_0221FDB8
ldrh r1, [r4, r0]
ldrh r3, [r4, #0xc]
lsl r0, r1, #2
add r0, r4, r0
add r0, #0xa4
lsl r1, r1, #4
add r1, r2, r1
ldr r0, [r0]
mov r2, #6
bl ov63_0221C610
ldrh r0, [r4, #0xc]
cmp r0, #6
bne _0221E6C2
ldr r0, _0221E880 ; =0x00013056
mov r1, #1
ldrh r0, [r4, r0]
lsl r0, r0, #2
add r0, r4, r0
add r0, #0xa4
ldr r0, [r0]
bl sub_0200DF98
ldr r0, _0221E880 ; =0x00013056
mov r2, #0
ldrh r1, [r4, r0]
add r1, r1, #1
strh r1, [r4, r0]
strh r2, [r4, #0xc]
ldrh r1, [r4, r0]
cmp r1, #6
beq _0221E6B8
_0221E6B6:
b _0221E874
_0221E6B8:
strh r2, [r4, r0]
ldrh r0, [r4, #0xe]
add r0, r0, #1
strh r0, [r4, #0xe]
b _0221E874
_0221E6C2:
add r0, r0, #1
strh r0, [r4, #0xc]
b _0221E874
_0221E6C8:
ldrh r0, [r4, #0xc]
cmp r0, #0x20
bne _0221E6DA
mov r0, #0
strh r0, [r4, #0xc]
ldrh r0, [r4, #0xe]
add r0, r0, #1
strh r0, [r4, #0xe]
b _0221E874
_0221E6DA:
add r0, r0, #1
strh r0, [r4, #0xc]
b _0221E874
_0221E6E0:
ldr r0, _0221E888 ; =0x00013064
mov r1, #0x28
str r1, [r4, r0]
sub r1, r0, #4
ldr r2, [r4, r1]
mov r1, #8
orr r2, r1
sub r1, r0, #4
str r2, [r4, r1]
ldr r2, [r4, r1]
mov r1, #4
orr r2, r1
sub r1, r0, #4
str r2, [r4, r1]
ldr r2, [r4, r1]
mov r1, #0x20
orr r2, r1
sub r1, r0, #4
str r2, [r4, r1]
ldr r2, [r4, r1]
mov r1, #0x40
orr r1, r2
sub r0, r0, #4
str r1, [r4, r0]
add r0, r4, #0
add r0, #0xdc
ldr r0, [r0]
mov r1, #1
bl sub_0200DCE8
ldrh r0, [r4, #0xe]
add r0, r0, #1
strh r0, [r4, #0xe]
b _0221E874
_0221E724:
ldrh r2, [r4, #0xc]
add r0, r4, #0
mov r1, #0x50
bl ov63_0221E55C
ldr r0, _0221E88C ; =0x00013048
mov r5, #0
ldr r0, [r4, r0]
cmp r0, #0
bls _0221E75A
ldr r6, _0221E890 ; =ov63_0221FE18
add r7, r4, #0
_0221E73C:
add r0, r7, #0
add r0, #0xbc
ldrh r3, [r4, #0xc]
ldr r0, [r0]
add r1, r6, #0
mov r2, #0x50
bl ov63_0221C610
ldr r0, _0221E88C ; =0x00013048
add r5, r5, #1
ldr r0, [r4, r0]
add r6, #0x10
add r7, r7, #4
cmp r5, r0
blo _0221E73C
_0221E75A:
add r0, r4, #0
add r0, #0xd8
ldrh r3, [r4, #0xc]
ldr r0, [r0]
ldr r1, _0221E894 ; =ov63_0221FE78
mov r2, #0x50
bl ov63_0221C610
ldrh r0, [r4, #0xc]
cmp r0, #0x50
bne _0221E77C
mov r0, #0
strh r0, [r4, #0xc]
ldrh r0, [r4, #0xe]
add r0, r0, #1
strh r0, [r4, #0xe]
b _0221E874
_0221E77C:
add r0, r0, #1
strh r0, [r4, #0xc]
b _0221E874
_0221E782:
bl IsPaletteFadeFinished
cmp r0, #1
bne _0221E874
ldr r0, _0221E898 ; =gSystem
ldr r1, [r0, #0x48]
mov r0, #3
tst r0, r1
bne _0221E79C
bl System_GetTouchNew
cmp r0, #1
bne _0221E874
_0221E79C:
ldr r0, _0221E888 ; =0x00013064
mov r1, #0xf
str r1, [r4, r0]
sub r1, r0, #4
ldr r2, [r4, r1]
mov r1, #8
orr r1, r2
sub r0, r0, #4
str r1, [r4, r0]
ldrh r0, [r4, #0xe]
add r0, r0, #1
strh r0, [r4, #0xe]
b _0221E874
_0221E7B6:
ldrh r2, [r4, #0xc]
add r0, r4, #0
mov r1, #0x3c
bl ov63_0221E55C
ldrh r0, [r4, #0xc]
cmp r0, #0x1e
bne _0221E7E8
bl IsPaletteFadeFinished
cmp r0, #1
bne _0221E7EC
ldr r0, _0221E888 ; =0x00013064
mov r1, #0xf
str r1, [r4, r0]
sub r1, r0, #4
ldr r2, [r4, r1]
mov r1, #0x10
orr r1, r2
sub r0, r0, #4
str r1, [r4, r0]
ldrh r0, [r4, #0xe]
add r0, r0, #1
strh r0, [r4, #0xe]
b _0221E7EC
_0221E7E8:
add r0, r0, #1
strh r0, [r4, #0xc]
_0221E7EC:
mov r0, #0
str r0, [sp]
ldr r0, _0221E88C ; =0x00013048
ldr r0, [r4, r0]
cmp r0, #0
bls _0221E834
ldr r7, _0221E89C ; =ov63_0221FE88
ldr r6, _0221E8A0 ; =ov63_0221FEF8
add r5, r4, #0
_0221E7FE:
add r0, r5, #0
add r0, #0xa4
ldrh r3, [r4, #0xc]
ldr r0, [r0]
add r1, r7, #0
mov r2, #0x3c
bl ov63_0221C610
add r0, r5, #0
add r0, #0xbc
ldrh r3, [r4, #0xc]
ldr r0, [r0]
add r1, r6, #0
mov r2, #0x3c
bl ov63_0221C610
ldr r0, [sp]
add r7, #0x10
add r0, r0, #1
str r0, [sp]
ldr r0, _0221E88C ; =0x00013048
add r5, r5, #4
ldr r1, [r4, r0]
ldr r0, [sp]
add r6, #0x10
cmp r0, r1
blo _0221E7FE
_0221E834:
add r0, r4, #0
add r0, #0xd4
ldrh r3, [r4, #0xc]
ldr r0, [r0]
ldr r1, _0221E8A4 ; =ov63_0221FEE8
mov r2, #0x3c
bl ov63_0221C610
add r0, r4, #0
add r0, #0xd8
ldrh r3, [r4, #0xc]
ldr r0, [r0]
ldr r1, _0221E8A8 ; =ov63_0221FF58
mov r2, #0x3c
bl ov63_0221C610
ldrh r0, [r4, #0xe]
cmp r0, #7
bne _0221E874
ldrh r0, [r4, #0xc]
cmp r0, #0x3c
bne _0221E870
bl IsPaletteFadeFinished
cmp r0, #1
bne _0221E874
mov r0, #0
strh r0, [r4, #0xc]
strh r0, [r4, #0xe]
pop {r3, r4, r5, r6, r7, pc}
_0221E870:
add r0, r0, #1
strh r0, [r4, #0xc]
_0221E874:
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_0221E878: .word 0x00013060
_0221E87C: .word 0x00013068
_0221E880: .word 0x00013056
_0221E884: .word ov63_0221FDB8
_0221E888: .word 0x00013064
_0221E88C: .word 0x00013048
_0221E890: .word ov63_0221FE18
_0221E894: .word ov63_0221FE78
_0221E898: .word gSystem
_0221E89C: .word ov63_0221FE88
_0221E8A0: .word ov63_0221FEF8
_0221E8A4: .word ov63_0221FEE8
_0221E8A8: .word ov63_0221FF58
thumb_func_end ov63_0221E5A0
thumb_func_start ov63_0221E8AC
ov63_0221E8AC: ; 0x0221E8AC
push {lr}
sub sp, #0xc
ldr r1, _0221E8CC ; =0x00013064
ldr r3, _0221E8D0 ; =0x00007FFF
ldr r0, [r0, r1]
mov r1, #1
str r0, [sp]
str r1, [sp, #4]
mov r0, #0x3e
str r0, [sp, #8]
mov r0, #3
add r2, r1, #0
bl BeginNormalPaletteFade
add sp, #0xc
pop {pc}
.balign 4, 0
_0221E8CC: .word 0x00013064
_0221E8D0: .word 0x00007FFF
thumb_func_end ov63_0221E8AC
thumb_func_start ov63_0221E8D4
ov63_0221E8D4: ; 0x0221E8D4
push {lr}
sub sp, #0xc
ldr r1, _0221E8F8 ; =0x00013064
ldr r0, [r0, r1]
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
mov r0, #0x3e
str r0, [sp, #8]
mov r0, #0
add r1, r0, #0
add r2, r0, #0
add r3, r0, #0
bl BeginNormalPaletteFade
add sp, #0xc
pop {pc}
nop
_0221E8F8: .word 0x00013064
thumb_func_end ov63_0221E8D4
thumb_func_start ov63_0221E8FC
ov63_0221E8FC: ; 0x0221E8FC
push {r4, lr}
add r4, r1, #0
ldr r1, [r4, #8]
cmp r1, #0
beq _0221E912
add r0, r4, #0
blx r1
cmp r0, #0
bne _0221E912
mov r0, #0
str r0, [r4, #8]
_0221E912:
add r0, r4, #0
bl ov63_0221F1D0
ldr r0, [r4, #0x10]
bl BgConfig_HandleScheduledScrollAndTransferOps
add r4, #0xa0
ldr r0, [r4]
bl sub_0200D020
bl sub_0200D034
ldr r3, _0221E938 ; =0x027E0000
ldr r1, _0221E93C ; =0x00003FF8
mov r0, #1
ldr r2, [r3, r1]
orr r0, r2
str r0, [r3, r1]
pop {r4, pc}
.balign 4, 0
_0221E938: .word 0x027E0000
_0221E93C: .word 0x00003FF8
thumb_func_end ov63_0221E8FC
thumb_func_start ov63_0221E940
ov63_0221E940: ; 0x0221E940
push {r4, r5, lr}
sub sp, #0x64
ldr r5, _0221E9EC ; =ov63_0221FB00
add r3, sp, #0x54
add r4, r0, #0
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, _0221E9F0 ; =ov63_0221FBE4
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, #0x10]
mov r3, #0
bl InitBgFromTemplate
ldr r0, [r4, #0x10]
mov r1, #1
bl BgClearTilemapBufferAndCommit
mov r0, #1
mov r1, #0x20
mov r2, #0
mov r3, #0x3e
bl BG_ClearCharDataRange
ldr r5, _0221E9F4 ; =ov63_0221FC00
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, #0x10]
mov r3, #0
bl InitBgFromTemplate
ldr r5, _0221E9F8 ; =ov63_0221FB90
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, #3
str r0, [r3]
ldr r0, [r4, #0x10]
mov r3, #0
bl InitBgFromTemplate
mov r0, #2
mov r1, #0
bl GX_EngineAToggleLayers
mov r0, #4
mov r1, #0
bl GX_EngineAToggleLayers
mov r0, #8
mov r1, #0
bl GX_EngineAToggleLayers
add sp, #0x64
pop {r4, r5, pc}
nop
_0221E9EC: .word ov63_0221FB00
_0221E9F0: .word ov63_0221FBE4
_0221E9F4: .word ov63_0221FC00
_0221E9F8: .word ov63_0221FB90
thumb_func_end ov63_0221E940
thumb_func_start ov63_0221E9FC
ov63_0221E9FC: ; 0x0221E9FC
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #0x10]
mov r1, #3
bl FreeBgTilemapBuffer
ldr r0, [r4, #0x10]
mov r1, #2
bl FreeBgTilemapBuffer
ldr r0, [r4, #0x10]
mov r1, #1
bl FreeBgTilemapBuffer
ldr r0, [r4, #0x10]
mov r1, #0
bl FreeBgTilemapBuffer
pop {r4, pc}
.balign 4, 0
thumb_func_end ov63_0221E9FC
thumb_func_start ov63_0221EA24
ov63_0221EA24: ; 0x0221EA24
push {r4, lr}
sub sp, #0x10
add r4, r0, #0
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
mov r0, #1
str r0, [sp, #8]
mov r0, #0x3e
str r0, [sp, #0xc]
add r0, r4, #0
add r0, #0x94
ldr r0, [r0]
ldr r2, [r4, #0x10]
mov r1, #5
mov r3, #2
bl GfGfxLoader_LoadScrnDataFromOpenNarc
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
mov r0, #1
str r0, [sp, #8]
mov r0, #0x3e
str r0, [sp, #0xc]
add r0, r4, #0
add r0, #0x94
ldr r0, [r0]
ldr r2, [r4, #0x10]
mov r1, #6
mov r3, #3
bl GfGfxLoader_LoadScrnDataFromOpenNarc
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
mov r0, #1
str r0, [sp, #8]
mov r0, #0x3e
str r0, [sp, #0xc]
add r0, r4, #0
add r0, #0x94
ldr r0, [r0]
ldr r2, [r4, #0x10]
mov r1, #7
mov r3, #2
bl GfGfxLoader_LoadCharDataFromOpenNarc
mov r0, #0x20
str r0, [sp]
mov r0, #0x3e
mov r2, #0
add r4, #0x94
str r0, [sp, #4]
ldr r0, [r4]
mov r1, #8
add r3, r2, #0
bl GfGfxLoader_GXLoadPalFromOpenNarc
mov r0, #1
mov r1, #0
bl BG_SetMaskColor
add sp, #0x10
pop {r4, pc}
.balign 4, 0
thumb_func_end ov63_0221EA24
thumb_func_start ov63_0221EAA8
ov63_0221EAA8: ; 0x0221EAA8
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x10
add r5, r0, #0
add r4, r5, #0
ldr r6, _0221EBFC ; =ov63_0221FB20
mov r7, #0
add r4, #0x14
_0221EAB6:
ldr r0, [r5, #0x10]
add r1, r4, #0
add r2, r6, #0
bl AddWindow
add r7, r7, #1
add r6, #8
add r4, #0x10
cmp r7, #2
blo _0221EAB6
add r0, r5, #0
add r0, #0x14
mov r1, #1
bl FillWindowPixelBuffer
add r0, r5, #0
add r2, r5, #0
add r0, #0x84
add r2, #0x8c
ldr r0, [r0]
ldr r2, [r2]
mov r1, #0x10
bl ReadMsgDataIntoString
add r1, r5, #0
add r1, #0x8c
mov r0, #0
ldr r1, [r1]
add r2, r0, #0
bl FontID_String_GetWidth
add r3, r0, #0
mov r1, #0
add r2, r5, #0
lsr r4, r3, #1
mov r3, #0x80
str r1, [sp]
mov r0, #0xff
str r0, [sp, #4]
ldr r0, _0221EC00 ; =0x000F0200
add r2, #0x8c
str r0, [sp, #8]
str r1, [sp, #0xc]
add r0, r5, #0
ldr r2, [r2]
add r0, #0x14
sub r3, r3, r4
bl AddTextPrinterParameterized2
add r0, r5, #0
add r0, #0x14
bl CopyWindowToVram
add r0, r5, #0
add r0, #0x24
mov r1, #1
bl FillWindowPixelBuffer
add r0, r5, #0
add r2, r5, #0
add r0, #0x84
add r2, #0x90
ldr r0, [r0]
ldr r2, [r2]
mov r1, #0x11
bl ReadMsgDataIntoString
add r0, r5, #0
ldr r2, [r5]
add r0, #0x88
ldr r0, [r0]
ldr r2, [r2]
mov r1, #0
bl BufferPlayersName
ldr r0, [r5]
ldr r0, [r0]
bl PlayerProfile_GetTrainerID_VisibleHalf
add r2, r0, #0
mov r0, #2
str r0, [sp]
mov r1, #1
add r0, r5, #0
str r1, [sp, #4]
add r0, #0x88
ldr r0, [r0]
mov r3, #5
bl BufferIntegerAsString
ldr r0, [r5]
ldr r0, [r0, #8]
bl GetIGTHours
add r2, r0, #0
mov r0, #0
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
add r0, r5, #0
add r0, #0x88
ldr r0, [r0]
mov r1, #2
mov r3, #3
bl BufferIntegerAsString
ldr r0, [r5]
ldr r0, [r0, #8]
bl GetIGTMinutes
add r2, r0, #0
mov r3, #2
str r3, [sp]
mov r0, #1
str r0, [sp, #4]
add r0, r5, #0
add r0, #0x88
ldr r0, [r0]
mov r1, #3
bl BufferIntegerAsString
add r0, r5, #0
add r1, r5, #0
add r2, r5, #0
add r0, #0x88
add r1, #0x8c
add r2, #0x90
ldr r0, [r0]
ldr r1, [r1]
ldr r2, [r2]
bl StringExpandPlaceholders
add r1, r5, #0
add r1, #0x8c
mov r0, #0
ldr r1, [r1]
add r2, r0, #0
bl FontID_String_GetWidth
add r3, r0, #0
mov r1, #0
add r2, r5, #0
lsr r4, r3, #1
mov r3, #0x80
str r1, [sp]
mov r0, #0xff
str r0, [sp, #4]
ldr r0, _0221EC00 ; =0x000F0200
add r2, #0x8c
str r0, [sp, #8]
str r1, [sp, #0xc]
add r0, r5, #0
ldr r2, [r2]
add r0, #0x24
sub r3, r3, r4
bl AddTextPrinterParameterized2
add r5, #0x24
add r0, r5, #0
bl CopyWindowToVram
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_0221EBFC: .word ov63_0221FB20
_0221EC00: .word 0x000F0200
thumb_func_end ov63_0221EAA8
thumb_func_start ov63_0221EC04
ov63_0221EC04: ; 0x0221EC04
push {r3, r4, r5, lr}
add r5, r0, #0
mov r4, #0
add r5, #0x14
_0221EC0C:
add r0, r5, #0
bl RemoveWindow
add r4, r4, #1
add r5, #0x10
cmp r4, #2
blo _0221EC0C
pop {r3, r4, r5, pc}
thumb_func_end ov63_0221EC04
thumb_func_start ov63_0221EC1C
ov63_0221EC1C: ; 0x0221EC1C
push {r4, r5, r6, r7, lr}
sub sp, #0x44
ldr r3, _0221EFA4 ; =ov63_0221FAF0
add r2, sp, #0x1c
add r5, r0, #0
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
mov r0, #8
mov r1, #0x3e
bl NARC_ctor
add r7, r0, #0
mov r0, #0
str r0, [sp]
ldr r0, _0221EFA8 ; =0x0000D8D8
add r1, r5, #0
str r0, [sp, #4]
add r0, r5, #0
add r0, #0x9c
add r1, #0xa0
ldr r0, [r0]
ldr r1, [r1]
add r2, r7, #0
mov r3, #0x4d
bl sub_0200D6EC
mov r0, #0
str r0, [sp]
ldr r0, _0221EFA8 ; =0x0000D8D8
add r1, r5, #0
str r0, [sp, #4]
add r0, r5, #0
add r0, #0x9c
add r1, #0xa0
ldr r0, [r0]
ldr r1, [r1]
add r2, r7, #0
mov r3, #0x4e
bl sub_0200D71C
mov r4, #0
_0221EC72:
ldr r0, _0221EFA8 ; =0x0000D8D8
add r1, r5, #0
add r6, r4, r0
mov r0, #0
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
add r0, r5, #0
str r6, [sp, #8]
add r0, #0x9c
add r1, #0xa0
ldr r0, [r0]
ldr r1, [r1]
add r2, r7, #0
mov r3, #0x4c
bl sub_0200D504
mov r0, #0
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
str r0, [sp, #8]
add r0, r5, #0
add r1, r5, #0
str r6, [sp, #0xc]
add r0, #0x9c
add r1, #0xa0
ldr r0, [r0]
ldr r1, [r1]
add r2, r7, #0
mov r3, #0x4b
bl sub_0200D5D4
add r4, r4, #1
cmp r4, #6
blo _0221EC72
mov r0, #0
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
ldr r0, _0221EFAC ; =0x0000D8DF
add r1, r5, #0
str r0, [sp, #8]
add r0, r5, #0
add r0, #0x9c
add r1, #0xa0
ldr r0, [r0]
ldr r1, [r1]
add r2, r7, #0
mov r3, #0x4c
bl sub_0200D504
mov r0, #0
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
str r0, [sp, #8]
ldr r0, _0221EFB0 ; =0x0000D8E0
add r1, r5, #0
str r0, [sp, #0xc]
add r0, r5, #0
add r0, #0x9c
add r1, #0xa0
ldr r0, [r0]
ldr r1, [r1]
add r2, r7, #0
mov r3, #0x4b
bl sub_0200D5D4
mov r0, #0
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
str r0, [sp, #8]
ldr r0, _0221EFB4 ; =0x0000D8E1
add r1, r5, #0
str r0, [sp, #0xc]
add r0, r5, #0
add r0, #0x9c
add r1, #0xa0
ldr r0, [r0]
ldr r1, [r1]
add r2, r7, #0
mov r3, #0x4b
bl sub_0200D5D4
add r0, r7, #0
bl NARC_dtor
mov r0, #1
str r0, [sp]
ldr r0, _0221EFB8 ; =0x0000D8DB
add r1, r5, #0
str r0, [sp, #4]
add r0, r5, #0
add r2, r5, #0
add r0, #0x9c
add r1, #0xa0
add r2, #0x94
ldr r0, [r0]
ldr r1, [r1]
ldr r2, [r2]
mov r3, #0x11
bl sub_0200D6EC
mov r0, #1
str r0, [sp]
ldr r0, _0221EFB8 ; =0x0000D8DB
add r1, r5, #0
str r0, [sp, #4]
add r0, r5, #0
add r2, r5, #0
add r0, #0x9c
add r1, #0xa0
add r2, #0x94
ldr r0, [r0]
ldr r1, [r1]
ldr r2, [r2]
mov r3, #0x12
bl sub_0200D71C
mov r0, #1
str r0, [sp]
str r0, [sp, #4]
ldr r0, _0221EFB0 ; =0x0000D8E0
add r1, r5, #0
str r0, [sp, #8]
add r0, r5, #0
add r2, r5, #0
add r0, #0x9c
add r1, #0xa0
add r2, #0x94
ldr r0, [r0]
ldr r1, [r1]
ldr r2, [r2]
mov r3, #0x10
bl sub_0200D504
mov r0, #0
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
str r0, [sp, #8]
ldr r0, _0221EFBC ; =0x0000D8E2
add r1, r5, #0
str r0, [sp, #0xc]
add r0, r5, #0
add r2, r5, #0
add r0, #0x9c
add r1, #0xa0
add r2, #0x94
ldr r0, [r0]
ldr r1, [r1]
ldr r2, [r2]
mov r3, #0x13
bl sub_0200D5D4
mov r0, #1
ldr r7, _0221EFC0 ; =ov63_022200A0
lsl r0, r0, #8
mov r6, #0
add r0, r5, r0
add r4, r5, #0
str r6, [sp, #0x14]
str r0, [sp, #0x10]
str r7, [sp, #0x18]
_0221EDBE:
add r0, r5, #0
add r1, r5, #0
add r0, #0x9c
add r1, #0xa0
ldr r0, [r0]
ldr r1, [r1]
add r2, r7, #0
bl sub_0200D734
add r1, r4, #0
add r1, #0xa4
str r0, [r1]
mov r2, #0x4e
add r0, r5, #0
add r1, r5, #0
add r0, #0x9c
add r1, #0xa0
ldr r3, [sp, #0x14]
lsl r2, r2, #2
add r3, r3, r2
ldr r2, [sp, #0x18]
ldr r0, [r0]
ldr r1, [r1]
add r2, r2, r3
bl sub_0200D734
add r1, r4, #0
add r1, #0xbc
str r0, [r1]
ldr r0, _0221EFC4 ; =0x00013048
ldr r0, [r5, r0]
cmp r6, r0
bhs _0221EE0E
ldr r1, [sp, #0x10]
add r0, r5, #0
mov r2, #2
add r3, r6, #0
bl ov63_0221C8E8
b _0221EE1A
_0221EE0E:
add r0, r4, #0
add r0, #0xa4
ldr r0, [r0]
mov r1, #0
bl sub_0200DCE8
_0221EE1A:
add r0, r5, #0
add r1, r6, #0
add r2, r6, #0
bl ov63_0221C99C
add r0, r5, #0
add r1, r6, #0
mov r2, #1
bl ov63_0221C954
add r0, r4, #0
add r0, #0xa4
ldr r0, [r0]
mov r1, #1
bl sub_0200DF98
add r0, r4, #0
add r0, #0xa4
mov r1, #0xfe
lsl r1, r1, #0x16
ldr r0, [r0]
add r2, r1, #0
bl sub_0200E024
add r0, r4, #0
add r0, #0xa4
ldr r0, [r0]
mov r1, #0
bl sub_0200E0FC
add r0, r4, #0
add r0, #0xbc
ldr r0, [r0]
mov r1, #1
bl sub_0200E0FC
add r0, r4, #0
add r0, #0xbc
ldr r0, [r0]
mov r1, #0
bl sub_0200DCE8
ldr r0, [sp, #0x14]
ldr r1, [sp, #0x10]
add r0, #0x34
str r0, [sp, #0x14]
ldr r0, _0221EFC8 ; =0x0000328C
add r6, r6, #1
add r0, r1, r0
add r7, #0x34
add r4, r4, #4
str r0, [sp, #0x10]
cmp r6, #6
blo _0221EDBE
add r0, r5, #0
add r1, r5, #0
add r0, #0x9c
add r1, #0xa0
ldr r0, [r0]
ldr r1, [r1]
ldr r2, _0221EFCC ; =ov63_02220310
bl sub_0200D734
add r1, r5, #0
add r1, #0xd4
str r0, [r1]
add r0, r5, #0
add r1, r5, #0
add r0, #0x9c
add r1, #0xa0
ldr r0, [r0]
ldr r1, [r1]
ldr r2, _0221EFD0 ; =ov63_02220344
bl sub_0200D734
add r1, r5, #0
add r1, #0xd8
str r0, [r1]
add r0, r5, #0
add r0, #0xd4
ldr r0, [r0]
mov r1, #1
bl sub_0200DF98
add r0, r5, #0
add r0, #0xd8
ldr r0, [r0]
mov r1, #1
bl sub_0200DF98
add r0, r5, #0
add r0, #0xd4
ldr r0, [r0]
mov r1, #0
bl sub_0200DCE8
add r0, r5, #0
add r0, #0xd8
ldr r0, [r0]
mov r1, #0
bl sub_0200DCE8
ldr r0, [r5]
ldr r0, [r0]
bl PlayerProfile_GetTrainerGender
cmp r0, #1
add r2, sp, #0x2c
bne _0221EEFE
mov r0, #1
mov r1, #2
bl sub_02070D84
b _0221EF06
_0221EEFE:
mov r0, #0
mov r1, #2
bl sub_02070D84
_0221EF06:
mov r1, #0x19
mov r0, #0x3e
lsl r1, r1, #8
bl AllocFromHeap
add r4, r0, #0
str r4, [sp]
ldr r0, [sp, #0x2c]
ldr r1, [sp, #0x40]
mov r2, #0x3e
add r3, sp, #0x1c
bl sub_020143E0
add r0, r5, #0
add r0, #0xd4
ldr r0, [r0]
ldr r0, [r0]
bl sub_02024B1C
mov r1, #1
bl NNS_G2dGetImageLocation
mov r2, #0x32
add r1, r0, #0
add r0, r4, #0
lsl r2, r2, #6
bl ov63_0221C00C
add r0, r4, #0
bl FreeToHeap
add r0, r5, #0
add r0, #0xd4
ldr r0, [r0]
ldr r0, [r0]
bl sub_02024B34
mov r1, #1
bl NNS_G2dGetImagePaletteLocation
add r3, r0, #0
mov r0, #0x20
str r0, [sp]
mov r0, #0x3e
str r0, [sp, #4]
ldr r0, [sp, #0x2c]
ldr r1, [sp, #0x34]
mov r2, #1
bl GfGfxLoader_GXLoadPal
add r0, r5, #0
add r1, r5, #0
add r0, #0x9c
add r1, #0xa0
ldr r0, [r0]
ldr r1, [r1]
ldr r2, _0221EFD4 ; =ov63_02220378
bl sub_0200D734
add r1, r5, #0
add r1, #0xdc
str r0, [r1]
add r0, r5, #0
add r0, #0xdc
ldr r0, [r0]
mov r1, #0
bl sub_0200DCE8
add r0, r5, #0
mov r1, #0xd
mov r2, #0
bl ov63_0221C954
mov r0, #0x10
mov r1, #1
bl GX_EngineAToggleLayers
add sp, #0x44
pop {r4, r5, r6, r7, pc}
.balign 4, 0
_0221EFA4: .word ov63_0221FAF0
_0221EFA8: .word 0x0000D8D8
_0221EFAC: .word 0x0000D8DF
_0221EFB0: .word 0x0000D8E0
_0221EFB4: .word 0x0000D8E1
_0221EFB8: .word 0x0000D8DB
_0221EFBC: .word 0x0000D8E2
_0221EFC0: .word ov63_022200A0
_0221EFC4: .word 0x00013048
_0221EFC8: .word 0x0000328C
_0221EFCC: .word ov63_02220310
_0221EFD0: .word ov63_02220344
_0221EFD4: .word ov63_02220378
thumb_func_end ov63_0221EC1C
thumb_func_start ov63_0221EFD8
ov63_0221EFD8: ; 0x0221EFD8
push {r4, r5, r6, lr}
add r5, r0, #0
mov r4, #0
_0221EFDE:
add r0, r5, #0
add r1, r4, #0
bl ov63_0221C134
add r4, r4, #1
cmp r4, #0xf
blo _0221EFDE
add r0, r5, #0
add r0, #0xa0
ldr r0, [r0]
ldr r1, _0221F070 ; =0x0000D8E2
bl sub_0200D968
add r0, r5, #0
add r0, #0xa0
ldr r0, [r0]
ldr r1, _0221F074 ; =0x0000D8E0
bl sub_0200D958
add r0, r5, #0
add r0, #0xa0
ldr r0, [r0]
ldr r1, _0221F078 ; =0x0000D8DB
bl sub_0200D978
add r0, r5, #0
add r0, #0xa0
ldr r0, [r0]
ldr r1, _0221F078 ; =0x0000D8DB
bl sub_0200D988
add r0, r5, #0
add r0, #0xa0
ldr r0, [r0]
ldr r1, _0221F074 ; =0x0000D8E0
bl sub_0200D968
add r0, r5, #0
add r0, #0xa0
ldr r0, [r0]
ldr r1, _0221F07C ; =0x0000D8DF
bl sub_0200D958
ldr r6, _0221F080 ; =0x0000D8D8
mov r4, #0
_0221F038:
add r0, r5, #0
add r0, #0xa0
ldr r0, [r0]
add r1, r4, r6
bl sub_0200D968
add r0, r5, #0
add r0, #0xa0
ldr r0, [r0]
add r1, r4, r6
bl sub_0200D958
add r4, r4, #1
cmp r4, #6
blo _0221F038
add r0, r5, #0
add r0, #0xa0
ldr r0, [r0]
ldr r1, _0221F084 ; =0x0000D8DA
bl sub_0200D978
add r5, #0xa0
ldr r0, [r5]
ldr r1, _0221F084 ; =0x0000D8DA
bl sub_0200D988
pop {r4, r5, r6, pc}
nop
_0221F070: .word 0x0000D8E2
_0221F074: .word 0x0000D8E0
_0221F078: .word 0x0000D8DB
_0221F07C: .word 0x0000D8DF
_0221F080: .word 0x0000D8D8
_0221F084: .word 0x0000D8DA
thumb_func_end ov63_0221EFD8
thumb_func_start ov63_0221F088
ov63_0221F088: ; 0x0221F088
push {r3, r4, lr}
sub sp, #4
add r4, r0, #0
bl NNS_G3dInit
bl G3X_InitMtxStack
ldr r0, _0221F118 ; =0x04000060
ldr r2, _0221F11C ; =0xFFFFCFFD
ldrh r1, [r0]
and r1, r2
strh r1, [r0]
ldrh r3, [r0]
add r1, r2, #2
and r3, r1
mov r1, #0x10
orr r1, r3
strh r1, [r0]
ldrh r3, [r0]
ldr r1, _0221F120 ; =0x0000CFFB
and r1, r3
strh r1, [r0]
add r1, r2, #2
ldrh r3, [r0]
lsr r2, r2, #0x11
and r3, r1
mov r1, #8
orr r1, r3
strh r1, [r0]
mov r0, #0
add r1, r0, #0
mov r3, #0x3f
str r0, [sp]
bl G3X_SetClearColor
ldr r1, _0221F124 ; =0x04000540
mov r0, #2
str r0, [r1]
ldr r0, _0221F128 ; =0xBFFF0000
str r0, [r1, #0x40]
mov r0, #1
add r1, r0, #0
bl GF_3DVramMan_InitFrameTexVramManager
mov r0, #1
lsl r0, r0, #0xe
mov r1, #1
bl GF_3DVramMan_InitFramePlttVramManager
mov r0, #1
add r1, r0, #0
bl GX_EngineAToggleLayers
ldr r0, _0221F12C ; =0x04000008
mov r1, #3
ldrh r2, [r0]
bic r2, r1
mov r1, #1
orr r1, r2
strh r1, [r0]
mov r1, #0
add r0, #0x48
mov r2, #0x1c
add r3, r1, #0
str r1, [sp]
bl G2x_SetBlendAlpha_
add r0, r4, #0
bl ov63_0221F130
add sp, #4
pop {r3, r4, pc}
.balign 4, 0
_0221F118: .word 0x04000060
_0221F11C: .word 0xFFFFCFFD
_0221F120: .word 0x0000CFFB
_0221F124: .word 0x04000540
_0221F128: .word 0xBFFF0000
_0221F12C: .word 0x04000008
thumb_func_end ov63_0221F088
thumb_func_start ov63_0221F130
ov63_0221F130: ; 0x0221F130
push {r4, lr}
sub sp, #0x18
add r4, r0, #0
mov r0, #0x3e
bl Camera_Create
add r1, r4, #0
add r1, #0xe0
str r0, [r1]
add r1, r4, #0
mov r0, #0
add r1, #0xe4
str r0, [r1]
add r1, r4, #0
add r1, #0xe8
str r0, [r1]
add r1, r4, #0
add r1, #0xec
str r0, [r1]
add r1, r4, #0
add r1, #0xf0
strh r0, [r1]
add r1, r4, #0
add r1, #0xf2
strh r0, [r1]
add r1, r4, #0
add r1, #0xf4
strh r0, [r1]
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
add r0, r4, #0
add r0, #0xe0
ldr r0, [r0]
mov r1, #5
str r0, [sp, #8]
add r0, r4, #0
add r2, r4, #0
ldr r3, _0221F1C0 ; =0x00000FA4
add r0, #0xe4
lsl r1, r1, #0xc
add r2, #0xf0
bl Camera_InitFromTargetDistanceAndAngle
mov r1, #0
mov r0, #1
lsl r0, r0, #0xc
str r0, [sp, #0x10]
str r1, [sp, #0xc]
str r1, [sp, #0x14]
add r1, r4, #0
add r1, #0xe0
ldr r1, [r1]
add r0, sp, #0xc
bl Camera_SetBindTarget
add r0, r4, #0
add r0, #0xe0
ldr r0, [r0]
bl Camera_RegisterToStaticPtr
add r4, #0xe0
mov r0, #1
mov r1, #0x7d
ldr r2, [r4]
lsl r0, r0, #0xc
lsl r1, r1, #0xe
bl Camera_SetClipBounds
add sp, #0x18
pop {r4, pc}
nop
_0221F1C0: .word 0x00000FA4
thumb_func_end ov63_0221F130
thumb_func_start ov63_0221F1C4
ov63_0221F1C4: ; 0x0221F1C4
ldr r3, _0221F1CC ; =sub_02023120
add r0, #0xe0
ldr r0, [r0]
bx r3
.balign 4, 0
_0221F1CC: .word sub_02023120
thumb_func_end ov63_0221F1C4
thumb_func_start ov63_0221F1D0
ov63_0221F1D0: ; 0x0221F1D0
push {r4, lr}
sub sp, #8
add r4, r0, #0
ldr r0, _0221F230 ; =0x04000600
ldr r1, [r0]
mov r0, #2
lsl r0, r0, #0x1a
tst r0, r1
bne _0221F22A
bl G3X_Reset
mov r1, #0
mov r0, #0x11
add r2, r1, #0
bl NNS_G3dGeBufferOP_N
add r0, r4, #0
add r0, #0xf8
ldr r0, [r0]
bl ov63_0221F580
mov r2, #1
mov r0, #0x12
add r1, sp, #4
str r2, [sp, #4]
bl NNS_G3dGeBufferOP_N
mov r1, #0
mov r0, #0x11
add r2, r1, #0
bl NNS_G3dGeBufferOP_N
add r4, #0xfc
ldr r0, [r4]
bl ov63_0221FAA0
mov r2, #1
mov r0, #0x12
add r1, sp, #0
str r2, [sp]
bl NNS_G3dGeBufferOP_N
ldr r0, _0221F234 ; =0x04000540
mov r1, #1
str r1, [r0]
_0221F22A:
add sp, #8
pop {r4, pc}
nop
_0221F230: .word 0x04000600
_0221F234: .word 0x04000540
thumb_func_end ov63_0221F1D0
thumb_func_start ov63_0221F238
ov63_0221F238: ; 0x0221F238
push {r3, r4, r5, lr}
ldr r1, _0221F278 ; =0x00000844
add r5, r0, #0
mov r0, #0x3e
bl AllocFromHeap
add r4, r0, #0
ldr r0, _0221F27C ; =_022203C0
mov r1, #1
str r1, [r0]
ldr r0, _0221F280 ; =_022203E0
mov r1, #2
str r1, [r0]
ldr r0, _0221F284 ; =0x0000083C
mov r1, #0
str r1, [r4, r0]
ldr r0, _0221F288 ; =ov63_0221F2E8
add r1, r4, #0
mov r2, #3
bl sub_0200E33C
ldr r1, _0221F28C ; =0x00000838
mov r2, #1
str r0, [r4, r1]
add r1, #8
str r5, [r4, r1]
ldr r0, _0221F290 ; =ov63_0221F294
add r1, r4, #0
bl sub_0200E33C
pop {r3, r4, r5, pc}
nop
_0221F278: .word 0x00000844
_0221F27C: .word _022203C0
_0221F280: .word _022203E0
_0221F284: .word 0x0000083C
_0221F288: .word ov63_0221F2E8
_0221F28C: .word 0x00000838
_0221F290: .word ov63_0221F294
thumb_func_end ov63_0221F238
thumb_func_start ov63_0221F294
ov63_0221F294: ; 0x0221F294
push {r4, lr}
add r4, r1, #0
ldr r1, _0221F2D8 ; =_022203C0
ldr r1, [r1]
cmp r1, #0
beq _0221F2C8
add r1, r4, #0
mov r2, #2
add r0, r4, #0
add r1, #0x14
lsl r2, r2, #0xa
bl G3_BeginMakeDL
ldr r1, _0221F2DC ; =0x00007FFF
ldr r2, _0221F2E0 ; =0x00004210
add r0, r4, #0
mov r3, #0
bl G3B_MaterialColorDiffAmb
mov r2, #0
ldr r1, _0221F2E0 ; =0x00004210
add r0, r4, #0
add r3, r2, #0
bl G3B_MaterialColorSpecEmi
pop {r4, pc}
_0221F2C8:
ldr r1, _0221F2E4 ; =_022203E0
ldr r2, [r1]
sub r2, r2, #1
str r2, [r1]
bl DestroySysTask
pop {r4, pc}
nop
_0221F2D8: .word _022203C0
_0221F2DC: .word 0x00007FFF
_0221F2E0: .word 0x00004210
_0221F2E4: .word _022203E0
thumb_func_end ov63_0221F294
thumb_func_start ov63_0221F2E8
ov63_0221F2E8: ; 0x0221F2E8
push {r4, lr}
add r4, r1, #0
ldr r1, _0221F318 ; =_022203C0
ldr r1, [r1]
cmp r1, #0
beq _0221F30A
add r0, r4, #0
bl G3_EndMakeDL
ldr r1, _0221F31C ; =0x00000814
str r0, [r4, r1]
add r0, r4, #0
ldr r1, [r4, r1]
add r0, #0x14
bl DC_FlushRange
pop {r4, pc}
_0221F30A:
ldr r1, _0221F320 ; =_022203E0
ldr r2, [r1]
sub r2, r2, #1
str r2, [r1]
bl DestroySysTask
pop {r4, pc}
.balign 4, 0
_0221F318: .word _022203C0
_0221F31C: .word 0x00000814
_0221F320: .word _022203E0
thumb_func_end ov63_0221F2E8
thumb_func_start ov63_0221F324
ov63_0221F324: ; 0x0221F324
push {r4, r5, r6, lr}
add r5, r1, #0
add r6, r2, #0
bl sub_0201F988
ldr r1, _0221F360 ; =0x0000083C
add r4, r0, #0
ldr r3, [r4, r1]
cmp r3, #8
bge _0221F35C
add r1, r5, #0
add r2, r6, #0
bl ov63_0221F368
ldr r2, _0221F360 ; =0x0000083C
ldr r1, [r4, r2]
lsl r1, r1, #2
add r3, r4, r1
add r1, r2, #0
sub r1, #0x24
str r0, [r3, r1]
ldr r0, _0221F364 ; =_022203E0
ldr r1, [r0]
add r1, r1, #1
str r1, [r0]
ldr r0, [r4, r2]
add r0, r0, #1
str r0, [r4, r2]
_0221F35C:
pop {r4, r5, r6, pc}
nop
_0221F360: .word 0x0000083C
_0221F364: .word _022203E0
thumb_func_end ov63_0221F324
thumb_func_start ov63_0221F368
ov63_0221F368: ; 0x0221F368
push {r3, r4, r5, r6, r7, lr}
add r5, r1, #0
add r6, r0, #0
ldr r1, _0221F3DC ; =0x00000838
mov r0, #0x3e
add r7, r2, #0
add r4, r3, #0
bl AllocFromHeap
add r1, r0, #0
str r6, [r1]
ldr r0, _0221F3E0 ; =0x00000818
ldr r2, _0221F3E4 ; =ov63_0221FCF8
lsl r3, r4, #2
ldr r3, [r2, r3]
add r2, r0, #0
strh r5, [r1, r0]
sub r2, #8
str r3, [r1, r2]
add r2, r0, #0
mov r3, #0
sub r2, #0x14
str r3, [r1, r2]
add r2, r0, #0
sub r2, #0x10
str r7, [r1, r2]
ldr r2, _0221F3E8 ; =_0221FAE4
lsl r6, r4, #1
ldrsh r2, [r2, r6]
lsl r6, r2, #1
add r2, r0, #0
sub r2, #0xc
str r6, [r1, r2]
sub r2, r0, #4
str r4, [r1, r2]
add r4, r5, #0
sub r4, #0x50
add r2, r0, #2
strh r4, [r1, r2]
ldr r2, _0221F3EC ; =0xFFFFF000
add r4, r0, #4
strh r2, [r1, r4]
add r4, r0, #6
strh r3, [r1, r4]
add r4, r0, #0
add r5, #0x50
add r4, #8
strh r5, [r1, r4]
add r4, r0, #0
add r4, #0xa
strh r2, [r1, r4]
add r0, #0xc
strh r3, [r1, r0]
ldr r0, _0221F3F0 ; =ov63_0221F3F4
mov r2, #2
bl sub_0200E33C
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_0221F3DC: .word 0x00000838
_0221F3E0: .word 0x00000818
_0221F3E4: .word ov63_0221FCF8
_0221F3E8: .word _0221FAE4
_0221F3EC: .word 0xFFFFF000
_0221F3F0: .word ov63_0221F3F4
thumb_func_end ov63_0221F368
thumb_func_start ov63_0221F3F4
ov63_0221F3F4: ; 0x0221F3F4
push {r4, r5, r6, r7, lr}
sub sp, #0xc
add r5, r1, #0
ldr r1, _0221F564 ; =_022203C0
ldr r1, [r1]
cmp r1, #0
bne _0221F404
b _0221F552
_0221F404:
ldr r0, _0221F568 ; =0x00000808
add r1, r0, #4
ldr r2, [r5, r0]
ldr r1, [r5, r1]
add r1, r2, r1
str r1, [r5, r0]
add r1, r0, #4
ldr r1, [r5, r1]
ldr r2, [r5, r0]
cmp r1, #0
ble _0221F432
mov r1, #0xaa
lsl r1, r1, #0xc
cmp r2, r1
blt _0221F448
add r1, r0, #4
ldr r2, [r5, r1]
mov r1, #0
mvn r1, r1
mul r1, r2
add r0, r0, #4
str r1, [r5, r0]
b _0221F448
_0221F432:
mov r1, #0xa
lsl r1, r1, #0xc
cmp r2, r1
bgt _0221F448
add r1, r0, #4
ldr r2, [r5, r1]
mov r1, #0
mvn r1, r1
mul r1, r2
add r0, r0, #4
str r1, [r5, r0]
_0221F448:
ldr r0, _0221F568 ; =0x00000808
ldr r0, [r5, r0]
asr r6, r0, #0xc
lsl r0, r6, #0x10
lsr r0, r0, #0x10
bl GF_CosDegNoWrap
mov r2, #0xa
asr r1, r0, #0x1f
lsl r2, r2, #0xa
mov r3, #0
bl _ll_mul
ldr r3, _0221F56C ; =0x00000818
mov r4, #0
ldrsh r2, [r5, r3]
sub r3, #0x18
add r3, r0, r3
adc r1, r4
lsl r0, r1, #0x14
lsr r1, r3, #0xc
orr r1, r0
lsl r0, r6, #0x10
lsr r0, r0, #0x10
add r4, r2, r1
bl GF_SinDegNoWrap
mov r2, #0xa
asr r1, r0, #0x1f
lsl r2, r2, #0xa
mov r3, #0
bl _ll_mul
mov r2, #2
mov r3, #0
lsl r2, r2, #0xa
add r6, r0, r2
adc r1, r3
lsl r0, r1, #0x14
lsr r1, r6, #0xc
orr r1, r0
lsl r0, r2, #1
mov r7, #9
sub r6, r1, r0
lsl r7, r7, #6
add r0, r2, #0
sub r1, r4, r7
add r0, #0x26
strh r1, [r5, r0]
lsl r0, r6, #0x10
add r1, r2, #0
asr r0, r0, #0x10
add r1, #0x28
strh r0, [r5, r1]
add r1, r2, #0
add r1, #0x2a
strh r3, [r5, r1]
add r1, r2, #0
add r4, r4, r7
add r1, #0x2c
strh r4, [r5, r1]
add r1, r2, #0
add r1, #0x2e
strh r0, [r5, r1]
add r0, r2, #0
add r0, #0x30
add r2, #0x14
strh r3, [r5, r0]
ldr r0, [r5, r2]
add r1, r3, #0
str r0, [sp]
mov r0, #0x10
str r0, [sp, #4]
str r3, [sp, #8]
add r2, r3, #0
ldr r0, [r5]
mov r3, #2
bl G3B_PolygonAttr
ldr r0, [r5]
mov r1, #1
bl G3B_Begin
mov r1, #0x81
lsl r1, r1, #4
ldr r1, [r5, r1]
ldr r0, [r5]
lsl r1, r1, #0x10
lsr r1, r1, #0x10
bl G3B_Color
ldr r3, _0221F570 ; =0x0000081A
ldr r0, [r5]
add r2, r3, #2
ldrsh r1, [r5, r3]
add r3, r3, #4
ldrsh r2, [r5, r2]
ldrsh r3, [r5, r3]
bl G3B_Vtx
mov r3, #0x82
lsl r3, r3, #4
add r2, r3, #2
ldrsh r1, [r5, r3]
add r3, r3, #4
ldrsh r2, [r5, r2]
ldrsh r3, [r5, r3]
ldr r0, [r5]
bl G3B_Vtx
ldr r3, _0221F574 ; =0x0000082C
ldr r0, [r5]
add r2, r3, #2
ldrsh r1, [r5, r3]
add r3, r3, #4
ldrsh r2, [r5, r2]
ldrsh r3, [r5, r3]
bl G3B_Vtx
ldr r3, _0221F578 ; =0x00000826
ldr r0, [r5]
add r2, r3, #2
ldrsh r1, [r5, r3]
add r3, r3, #4
ldrsh r2, [r5, r2]
ldrsh r3, [r5, r3]
bl G3B_Vtx
ldr r0, [r5]
bl G3B_End
add sp, #0xc
pop {r4, r5, r6, r7, pc}
_0221F552:
ldr r1, _0221F57C ; =_022203E0
ldr r2, [r1]
sub r2, r2, #1
str r2, [r1]
bl DestroySysTask
add sp, #0xc
pop {r4, r5, r6, r7, pc}
nop
_0221F564: .word _022203C0
_0221F568: .word 0x00000808
_0221F56C: .word 0x00000818
_0221F570: .word 0x0000081A
_0221F574: .word 0x0000082C
_0221F578: .word 0x00000826
_0221F57C: .word _022203E0
thumb_func_end ov63_0221F3F4
thumb_func_start ov63_0221F580
ov63_0221F580: ; 0x0221F580
push {r3, lr}
cmp r0, #0
beq _0221F5A6
bl sub_0201F988
add r3, r0, #0
ldr r0, _0221F5A8 ; =0x04000444
mov r1, #0
str r1, [r0]
ldr r2, _0221F5AC ; =0x00000814
add r1, r3, #0
ldr r2, [r3, r2]
mov r0, #3
add r1, #0x14
bl MI_SendGXCommand
ldr r0, _0221F5B0 ; =0x04000448
mov r1, #1
str r1, [r0]
_0221F5A6:
pop {r3, pc}
.balign 4, 0
_0221F5A8: .word 0x04000444
_0221F5AC: .word 0x00000814
_0221F5B0: .word 0x04000448
thumb_func_end ov63_0221F580
thumb_func_start ov63_0221F5B4
ov63_0221F5B4: ; 0x0221F5B4
push {r3, r4, r5, r6, r7, lr}
ldr r1, _0221F5F4 ; =_022203C0
mov r2, #0
str r2, [r1]
cmp r0, #0
beq _0221F5F0
bl sub_0201F988
add r6, r0, #0
ldr r0, _0221F5F8 ; =0x0000083C
mov r4, #0
ldr r0, [r6, r0]
cmp r0, #0
ble _0221F5EA
ldr r7, _0221F5F8 ; =0x0000083C
add r5, r6, #0
_0221F5D4:
ldr r0, _0221F5FC ; =0x00000818
ldr r0, [r5, r0]
bl sub_0201F988
bl FreeToHeap
ldr r0, [r6, r7]
add r4, r4, #1
add r5, r5, #4
cmp r4, r0
blt _0221F5D4
_0221F5EA:
add r0, r6, #0
bl FreeToHeap
_0221F5F0:
pop {r3, r4, r5, r6, r7, pc}
nop
_0221F5F4: .word _022203C0
_0221F5F8: .word 0x0000083C
_0221F5FC: .word 0x00000818
thumb_func_end ov63_0221F5B4
thumb_func_start ov63_0221F600
ov63_0221F600: ; 0x0221F600
ldr r0, _0221F610 ; =_022203E0
ldr r0, [r0]
cmp r0, #0
bne _0221F60C
mov r0, #1
bx lr
_0221F60C:
mov r0, #0
bx lr
.balign 4, 0
_0221F610: .word _022203E0
thumb_func_end ov63_0221F600
thumb_func_start ov63_0221F614
ov63_0221F614: ; 0x0221F614
push {r4, r5, r6, r7, lr}
sub sp, #0x2c
ldr r1, _0221F7A8 ; =0x00008D64
mov r0, #0x3e
bl AllocFromHeap
str r0, [sp, #0x28]
bl LCRandom
str r0, [sp, #0x20]
ldr r0, _0221F7AC ; =0x00003594
bl SetLCRNGSeed
mov r0, #0
ldr r4, [sp, #0x28]
str r0, [sp, #0x24]
str r0, [sp, #0x1c]
add r0, r4, #0
str r0, [sp, #0x18]
add r0, #0x34
str r0, [sp, #0x18]
add r0, r4, #0
str r0, [sp, #0x14]
add r0, #0x28
str r0, [sp, #0x14]
add r0, r4, #0
str r0, [sp, #0x10]
add r0, #0x2e
str r0, [sp, #0x10]
ldr r0, [sp, #0x14]
str r0, [sp, #0xc]
_0221F652:
ldr r0, [sp, #0x1c]
lsl r1, r0, #2
ldr r0, _0221F7B0 ; =ov63_0221FD38
ldr r0, [r0, r1]
str r0, [r4, #8]
ldr r0, [sp, #0x1c]
add r0, r0, #1
str r0, [sp, #0x1c]
cmp r0, #8
blo _0221F66A
mov r0, #0
str r0, [sp, #0x1c]
_0221F66A:
bl LCRandom
lsr r2, r0, #0x1f
lsl r1, r0, #0x13
sub r1, r1, r2
mov r0, #0x13
ror r1, r0
mov r0, #1
add r1, r2, r1
lsl r0, r0, #0xc
sub r0, r1, r0
lsl r0, r0, #0x10
asr r0, r0, #0x10
str r0, [sp, #8]
bl LCRandom
lsr r2, r0, #0x1f
lsl r1, r0, #0x13
sub r1, r1, r2
mov r0, #0x13
ror r1, r0
mov r0, #1
add r1, r2, r1
lsl r0, r0, #0xc
add r0, r1, r0
lsl r0, r0, #0x10
asr r0, r0, #0x10
str r0, [sp, #4]
bl LCRandom
mov r1, #0x29
lsl r1, r1, #4
bl _s32_div_f
mov r0, #0x52
lsl r0, r0, #2
sub r0, r1, r0
lsl r0, r0, #0x10
asr r0, r0, #0x10
ldr r5, _0221F7B4 ; =ov63_0221FB44
str r0, [sp]
mov r7, #0
add r6, r4, #0
_0221F6C0:
mov r0, #0
ldrsh r1, [r5, r0]
ldr r0, [sp, #8]
add r0, r0, r1
strh r0, [r6, #0x10]
mov r0, #2
ldrsh r1, [r5, r0]
ldr r0, [sp, #4]
add r0, r0, r1
strh r0, [r6, #0x12]
mov r0, #4
ldrsh r1, [r5, r0]
ldr r0, [sp]
add r0, r0, r1
strh r0, [r6, #0x14]
mov r0, #0
strh r0, [r4, #0x28]
strh r0, [r4, #0x2a]
strh r0, [r4, #0x2c]
bl LCRandom
lsr r1, r0, #0x1f
lsl r2, r0, #0x17
sub r2, r2, r1
mov r0, #0x17
ror r2, r0
mov r0, #2
add r1, r1, r2
lsl r0, r0, #8
add r0, r1, r0
strh r0, [r4, #0x2e]
bl LCRandom
lsr r1, r0, #0x1f
lsl r2, r0, #0x17
sub r2, r2, r1
mov r0, #0x17
ror r2, r0
mov r0, #2
add r1, r1, r2
lsl r0, r0, #8
add r0, r1, r0
strh r0, [r4, #0x30]
bl LCRandom
lsr r1, r0, #0x1f
lsl r2, r0, #0x17
sub r2, r2, r1
mov r0, #0x17
ror r2, r0
mov r0, #2
add r1, r1, r2
lsl r0, r0, #8
add r0, r1, r0
strh r0, [r4, #0x32]
ldr r0, [sp, #0x18]
bl MTX_Identity44_
add r7, r7, #1
add r5, r5, #6
add r6, r6, #6
cmp r7, #4
blt _0221F6C0
bl LCRandom
mov r1, #7
and r0, r1
sub r5, r0, #1
cmp r0, #0
beq _0221F75E
_0221F74C:
ldr r0, [sp, #0xc]
ldr r1, [sp, #0x10]
ldr r2, [sp, #0x14]
bl VEC_Fx16Add
add r0, r5, #0
sub r5, r5, #1
cmp r0, #0
bne _0221F74C
_0221F75E:
ldr r0, [sp, #0x18]
add r4, #0x70
add r0, #0x70
str r0, [sp, #0x18]
ldr r0, [sp, #0x14]
add r0, #0x70
str r0, [sp, #0x14]
ldr r0, [sp, #0x10]
add r0, #0x70
str r0, [sp, #0x10]
ldr r0, [sp, #0xc]
add r0, #0x70
str r0, [sp, #0xc]
ldr r0, [sp, #0x24]
add r0, r0, #1
str r0, [sp, #0x24]
cmp r0, #0x30
bge _0221F784
b _0221F652
_0221F784:
ldr r0, [sp, #0x20]
bl SetLCRNGSeed
ldr r0, [sp, #0x28]
mov r2, #0
str r2, [r0]
ldr r1, _0221F7B8 ; =0x00008D20
str r2, [r0, #4]
str r2, [r0, r1]
ldr r0, _0221F7BC ; =0x04000440
mov r1, #2
str r1, [r0]
ldr r0, _0221F7C0 ; =ov63_0221F7EC
ldr r1, [sp, #0x28]
bl CreateSysTask
add sp, #0x2c
pop {r4, r5, r6, r7, pc}
.balign 4, 0
_0221F7A8: .word 0x00008D64
_0221F7AC: .word 0x00003594
_0221F7B0: .word ov63_0221FD38
_0221F7B4: .word ov63_0221FB44
_0221F7B8: .word 0x00008D20
_0221F7BC: .word 0x04000440
_0221F7C0: .word ov63_0221F7EC
thumb_func_end ov63_0221F614
thumb_func_start ov63_0221F7C4
ov63_0221F7C4: ; 0x0221F7C4
push {r4, lr}
add r4, r0, #0
beq _0221F7D8
bl sub_0201F988
bl FreeToHeap
add r0, r4, #0
bl DestroySysTask
_0221F7D8:
pop {r4, pc}
.balign 4, 0
thumb_func_end ov63_0221F7C4
thumb_func_start ov63_0221F7DC
ov63_0221F7DC: ; 0x0221F7DC
push {r3, lr}
cmp r0, #0
beq _0221F7EA
bl sub_0201F988
mov r1, #1
str r1, [r0]
_0221F7EA:
pop {r3, pc}
thumb_func_end ov63_0221F7DC
thumb_func_start ov63_0221F7EC
ov63_0221F7EC: ; 0x0221F7EC
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x68
add r7, r1, #0
ldr r0, [r7]
cmp r0, #0
bne _0221F7FA
b _0221FA70
_0221F7FA:
ldr r1, _0221FA74 ; =0x00001508
mov r2, #0x1e
add r0, r7, r1
add r1, #0x14
add r1, r7, r1
lsl r2, r2, #0xa
bl G3_BeginMakeDL
mov r0, #0x3f
str r0, [sp]
mov r0, #0x1f
str r0, [sp, #4]
ldr r0, _0221FA74 ; =0x00001508
mov r1, #3
mov r2, #0
add r0, r7, r0
add r3, r1, #0
str r2, [sp, #8]
bl G3B_PolygonAttr
ldr r0, _0221FA74 ; =0x00001508
mov r2, #0
ldr r1, _0221FA78 ; =0x00005294
add r0, r7, r0
add r3, r2, #0
bl G3B_MaterialColorDiffAmb
mov r0, #0
str r0, [sp, #0x1c]
add r0, r7, #0
str r0, [sp, #0x18]
add r0, #0x28
str r0, [sp, #0x18]
add r0, r7, #0
str r0, [sp, #0x14]
add r0, #0x2e
str r0, [sp, #0x14]
ldr r0, [sp, #0x18]
add r5, r7, #0
str r5, [sp, #0xc]
add r5, #0x34
add r4, r7, #0
str r0, [sp, #0x10]
str r5, [sp, #0xc]
_0221F852:
mov r0, #0x24
ldrsh r0, [r4, r0]
sub r0, #0x55
strh r0, [r4, #0x24]
mov r0, #0x24
ldrsh r1, [r4, r0]
ldr r0, _0221FA7C ; =0xFFFFF000
cmp r1, r0
bgt _0221F86C
mov r0, #2
lsl r0, r0, #0xc
add r0, r1, r0
strh r0, [r4, #0x24]
_0221F86C:
mov r0, #0x24
ldrsh r1, [r4, r0]
ldr r0, _0221FA80 ; =0x0000019A
ldr r2, [sp, #0x18]
sub r0, r1, r0
strh r0, [r4, #0x12]
mov r0, #0x12
ldrsh r0, [r4, r0]
ldr r1, [sp, #0x14]
strh r0, [r4, #0x18]
mov r0, #0x24
ldrsh r0, [r4, r0]
strh r0, [r4, #0x1e]
ldr r0, [sp, #0x10]
bl VEC_Fx16Add
ldr r0, [sp, #0xc]
bl MTX_Identity44_
mov r0, #0x14
ldrsh r0, [r4, r0]
mov r2, #0x10
mov r3, #0x12
str r0, [sp]
ldrsh r2, [r4, r2]
ldrsh r3, [r4, r3]
ldr r1, [sp, #0xc]
add r0, r5, #0
bl MTX_TransApply44
ldr r0, _0221FA74 ; =0x00001508
ldr r2, _0221FA84 ; =0x00002D6B
add r0, r7, r0
mov r1, #0
bl G3B_LightColor
ldr r2, [r4, #8]
ldr r0, _0221FA74 ; =0x00001508
lsl r2, r2, #0x10
add r0, r7, r0
mov r1, #1
lsr r2, r2, #0x10
bl G3B_LightColor
mov r1, #0
add r0, sp, #0x20
strh r1, [r0]
ldr r1, _0221FA88 ; =0x00000FFF
strh r1, [r0, #2]
ldr r1, _0221FA8C ; =0xFFFFF001
strh r1, [r0, #4]
add r0, sp, #0x20
add r1, r0, #0
bl VEC_Fx16Normalize
add r3, sp, #0x20
add r1, sp, #0x20
mov r0, #4
ldrsh r0, [r1, r0]
mov r1, #0
add r2, r1, #0
str r0, [sp]
ldr r0, _0221FA74 ; =0x00001508
ldrsh r2, [r3, r2]
add r6, r3, #0
mov r3, #2
ldrsh r3, [r6, r3]
add r0, r7, r0
bl G3B_LightVector
mov r1, #0
add r0, r6, #0
strh r1, [r0]
ldr r1, _0221FA8C ; =0xFFFFF001
strh r1, [r0, #2]
lsr r1, r1, #0x14
strh r1, [r0, #4]
add r0, sp, #0x20
add r1, r0, #0
bl VEC_Fx16Normalize
add r1, r6, #0
mov r0, #4
ldrsh r0, [r1, r0]
add r3, r6, #0
mov r2, #0
str r0, [sp]
ldrsh r2, [r3, r2]
mov r3, #2
ldr r0, _0221FA74 ; =0x00001508
ldrsh r3, [r6, r3]
add r0, r7, r0
mov r1, #1
bl G3B_LightVector
ldrh r0, [r4, #0x28]
ldr r3, _0221FA90 ; =FX_SinCosTable_
asr r0, r0, #4
lsl r1, r0, #2
ldr r0, _0221FA90 ; =FX_SinCosTable_
add r2, r0, r1
ldrsh r1, [r3, r1]
mov r3, #2
ldrsh r2, [r2, r3]
add r0, sp, #0x28
bl MTX_RotX44_
ldr r2, [sp, #0xc]
add r0, sp, #0x28
add r1, r5, #0
bl MTX_Concat44
ldrh r0, [r4, #0x2a]
ldr r3, _0221FA90 ; =FX_SinCosTable_
asr r0, r0, #4
lsl r1, r0, #2
ldr r0, _0221FA90 ; =FX_SinCosTable_
add r2, r0, r1
ldrsh r1, [r3, r1]
mov r3, #2
ldrsh r2, [r2, r3]
add r0, sp, #0x28
bl MTX_RotY44_
ldr r2, [sp, #0xc]
add r0, sp, #0x28
add r1, r5, #0
bl MTX_Concat44
ldrh r0, [r4, #0x2c]
ldr r3, _0221FA90 ; =FX_SinCosTable_
asr r0, r0, #4
lsl r1, r0, #2
ldr r0, _0221FA90 ; =FX_SinCosTable_
add r2, r0, r1
ldrsh r1, [r3, r1]
mov r3, #2
ldrsh r2, [r2, r3]
add r0, sp, #0x28
bl MTX_RotZ44_
ldr r2, [sp, #0xc]
add r0, sp, #0x28
add r1, r5, #0
bl MTX_Concat44
ldr r2, [r4, #8]
ldr r0, _0221FA74 ; =0x00001508
lsl r2, r2, #0x10
ldr r1, _0221FA94 ; =0x00007FFF
add r0, r7, r0
lsr r2, r2, #0x10
mov r3, #0
bl G3B_MaterialColorSpecEmi
ldr r0, _0221FA74 ; =0x00001508
add r0, r7, r0
bl G3B_PushMtx
ldr r0, _0221FA74 ; =0x00001508
add r1, r5, #0
add r0, r7, r0
bl G3B_LoadMtx44
ldr r0, _0221FA74 ; =0x00001508
mov r1, #1
add r0, r7, r0
bl G3B_Begin
ldr r0, _0221FA74 ; =0x00001508
mov r1, #0
ldr r3, _0221FA8C ; =0xFFFFF001
add r0, r7, r0
add r2, r1, #0
bl G3B_Normal
mov r1, #0x9b
ldr r0, _0221FA74 ; =0x00001508
mvn r1, r1
add r2, r1, #0
add r0, r7, r0
sub r2, #0x31
mov r3, #0
bl G3B_Vtx
ldr r0, _0221FA74 ; =0x00001508
mov r2, #0xcc
add r0, r7, r0
mov r1, #0x9c
mvn r2, r2
mov r3, #0
bl G3B_Vtx
ldr r0, _0221FA74 ; =0x00001508
mov r1, #0x9c
add r0, r7, r0
mov r2, #0xcd
mov r3, #0
bl G3B_Vtx
ldr r0, _0221FA74 ; =0x00001508
mov r1, #0x9b
add r0, r7, r0
mvn r1, r1
mov r2, #0xcd
mov r3, #0
bl G3B_Vtx
ldr r0, _0221FA74 ; =0x00001508
add r0, r7, r0
bl G3B_End
ldr r0, _0221FA74 ; =0x00001508
mov r1, #1
add r0, r7, r0
bl G3B_PopMtx
ldr r0, [sp, #0x18]
add r4, #0x70
add r0, #0x70
str r0, [sp, #0x18]
ldr r0, [sp, #0x14]
add r5, #0x70
add r0, #0x70
str r0, [sp, #0x14]
ldr r0, [sp, #0x10]
add r0, #0x70
str r0, [sp, #0x10]
ldr r0, [sp, #0xc]
add r0, #0x70
str r0, [sp, #0xc]
ldr r0, [sp, #0x1c]
add r0, r0, #1
str r0, [sp, #0x1c]
cmp r0, #0x30
bge _0221FA46
b _0221F852
_0221FA46:
ldr r0, _0221FA74 ; =0x00001508
add r0, r7, r0
bl G3_EndMakeDL
ldr r1, _0221FA98 ; =0x00008D1C
str r0, [r7, r1]
ldr r0, _0221FA9C ; =0x0000151C
ldr r1, [r7, r1]
add r0, r7, r0
bl DC_FlushRange
ldr r0, _0221FA98 ; =0x00008D1C
ldr r1, [r7, r0]
mov r0, #0x1e
lsl r0, r0, #0xa
cmp r1, r0
blo _0221FA6C
bl GF_AssertFail
_0221FA6C:
mov r0, #1
str r0, [r7, #4]
_0221FA70:
add sp, #0x68
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_0221FA74: .word 0x00001508
_0221FA78: .word 0x00005294
_0221FA7C: .word 0xFFFFF000
_0221FA80: .word 0x0000019A
_0221FA84: .word 0x00002D6B
_0221FA88: .word 0x00000FFF
_0221FA8C: .word 0xFFFFF001
_0221FA90: .word FX_SinCosTable_
_0221FA94: .word 0x00007FFF
_0221FA98: .word 0x00008D1C
_0221FA9C: .word 0x0000151C
thumb_func_end ov63_0221F7EC
thumb_func_start ov63_0221FAA0
ov63_0221FAA0: ; 0x0221FAA0
push {r4, lr}
cmp r0, #0
beq _0221FAD0
bl sub_0201F988
add r4, r0, #0
ldr r0, [r4, #4]
cmp r0, #0
beq _0221FAD0
ldr r0, _0221FAD4 ; =0x04000444
mov r1, #0
str r1, [r0]
ldr r2, _0221FAD8 ; =0x00008D1C
ldr r1, _0221FADC ; =0x0000151C
ldr r2, [r4, r2]
mov r0, #3
add r1, r4, r1
bl MI_SendGXCommand
ldr r0, _0221FAE0 ; =0x04000448
mov r1, #1
str r1, [r0]
mov r0, #0
str r0, [r4, #4]
_0221FAD0:
pop {r4, pc}
nop
_0221FAD4: .word 0x04000444
_0221FAD8: .word 0x00008D1C
_0221FADC: .word 0x0000151C
_0221FAE0: .word 0x04000448
thumb_func_end ov63_0221FAA0
.rodata
_0221FAE4:
.byte 0x00, 0x0C, 0x00, 0x0B, 0x00, 0x0A, 0x00, 0x0C, 0x00, 0x0B, 0x00, 0x0A
ov63_0221FAF0: ; 0x0221FAF0
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
ov63_0221FB00: ; 0x0221FB00
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
ov63_0221FB10: ; 0x0221FB10
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
ov63_0221FB20: ; 0x0221FB20
.byte 0x01, 0x00, 0x00, 0x20, 0x02, 0x0F, 0x01, 0x00, 0x01, 0x00, 0x16, 0x20, 0x02, 0x0F, 0x41, 0x00
ov63_0221FB30: ; 0x0221FB30
.byte 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x40, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00
.byte 0x10, 0x00, 0x10, 0x00
ov63_0221FB44: ; 0x0221FB44
.byte 0x64, 0xFF, 0x33, 0xFF, 0x00, 0x00, 0x9C, 0x00, 0x33, 0xFF, 0x00, 0x00
.byte 0x9C, 0x00, 0xCD, 0x00, 0x00, 0x00, 0x64, 0xFF, 0xCD, 0x00, 0x00, 0x00
ov63_0221FB5C: ; 0x0221FB5C
.byte 0x09, 0x00, 0x00, 0x00
.byte 0x0B, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
ov63_0221FB74: ; 0x0221FB74
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x14, 0x04, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
ov63_0221FB90: ; 0x0221FB90
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x1D, 0x04, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
ov63_0221FBAC: ; 0x0221FBAC
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x1C, 0x06
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
ov63_0221FBC8: ; 0x0221FBC8
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x18, 0x04, 0x00, 0x01, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
ov63_0221FBE4: ; 0x0221FBE4
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
ov63_0221FC00: ; 0x0221FC00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x1E, 0x04, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
ov63_0221FC1C: ; 0x0221FC1C
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x10, 0x04
.byte 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
ov63_0221FC38: ; 0x0221FC38
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
ov63_0221FC58: ; 0x0221FC58
.byte 0x00, 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
ov63_0221FC78: ; 0x0221FC78
.byte 0xFF, 0x7F, 0xFF, 0x7F, 0xFF, 0x7F, 0xFF, 0x7F
.byte 0xFF, 0x7F, 0xFF, 0x7F, 0xFF, 0x7F, 0xFF, 0x7F, 0xFF, 0x7F, 0xFF, 0x7F, 0xFF, 0x7F, 0xFF, 0x7F
.byte 0xFF, 0x7F, 0xFF, 0x7F, 0xFF, 0x7F, 0xFF, 0x7F
ov63_0221FC98: ; 0x0221FC98
.byte 0x1F, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x1F, 0x00
.byte 0x1F, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x1F, 0x00
.byte 0x1F, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x1F, 0x00
ov63_0221FCB8: ; 0x0221FCB8
.byte 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
ov63_0221FCF8: ; 0x0221FCF8
.byte 0xFF, 0x33, 0x00, 0x00, 0xFF, 0x43, 0x00, 0x00
.byte 0x9F, 0x23, 0x00, 0x00, 0xFF, 0x33, 0x00, 0x00, 0xFF, 0x43, 0x00, 0x00, 0x9F, 0x23, 0x00, 0x00
.byte 0xFF, 0x33, 0x00, 0x00, 0xFF, 0x33, 0x00, 0x00
ov63_0221FD18: ; 0x0221FD18
.word ov63_0221C1F8
.word ov63_0221C214
.word ov63_0221C228
.word ov63_0221C264
.word ov63_0221C368
.word ov63_0221C384
.word ov63_0221C3CC
.word ov63_0221C5A0
ov63_0221FD38: ; 0x0221FD38
.byte 0x90, 0x57, 0x00, 0x00, 0x1F, 0x76, 0x00, 0x00
.byte 0x08, 0x7D, 0x00, 0x00, 0xE6, 0x7F, 0x00, 0x00, 0xFF, 0x03, 0x00, 0x00, 0xE9, 0x03, 0x00, 0x00
.byte 0x5F, 0x02, 0x00, 0x00, 0x16, 0x7C, 0x00, 0x00
ov63_0221FD58: ; 0x0221FD58
.byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00
ov63_0221FD80: ; 0x0221FD80
.byte 0x00, 0x00, 0x00, 0x20, 0x02, 0x0F, 0x01, 0x00, 0x00, 0x12, 0x03, 0x0E, 0x02, 0x0F, 0x41, 0x00
.byte 0x00, 0x12, 0x06, 0x0E, 0x04, 0x0F, 0x5D, 0x00, 0x00, 0x12, 0x0C, 0x0E, 0x09, 0x0F, 0x95, 0x00
.byte 0x00, 0x00, 0x03, 0x0E, 0x02, 0x0F, 0x41, 0x00, 0x00, 0x00, 0x06, 0x0E, 0x04, 0x0F, 0x5D, 0x00
.byte 0x00, 0x00, 0x0C, 0x0E, 0x09, 0x0F, 0x95, 0x00
ov63_0221FDB8: ; 0x0221FDB8
.byte 0xA8, 0x00, 0xD8, 0xFF, 0x60, 0x00, 0x78, 0x00
.byte 0x00, 0x00, 0x80, 0x3F, 0x00, 0x00, 0x80, 0x3F, 0xA4, 0xFF, 0x58, 0x00, 0xA0, 0x00, 0x78, 0x00
.byte 0x00, 0x00, 0x80, 0x3F, 0x00, 0x00, 0x80, 0x3F, 0x5C, 0x01, 0x58, 0x00, 0x38, 0x00, 0x68, 0x00
.byte 0x00, 0x00, 0x80, 0x3F, 0x00, 0x00, 0x80, 0x3F, 0x58, 0x00, 0xD8, 0xFF, 0xC8, 0x00, 0x68, 0x00
.byte 0x00, 0x00, 0x80, 0x3F, 0x00, 0x00, 0x80, 0x3F, 0x50, 0x01, 0x00, 0x00, 0x28, 0x00, 0x50, 0x00
.byte 0x00, 0x00, 0x80, 0x3F, 0x00, 0x00, 0x80, 0x3F, 0xB0, 0xFF, 0x00, 0x00, 0xD8, 0x00, 0x50, 0x00
.byte 0x00, 0x00, 0x80, 0x3F, 0x00, 0x00, 0x80, 0x3F
ov63_0221FE18: ; 0x0221FE18
.byte 0x5D, 0x00, 0x6E, 0x00, 0x63, 0x00, 0x6E, 0x00
.byte 0x00, 0x00, 0x80, 0x3F, 0x00, 0x00, 0x80, 0x3F, 0x9D, 0x00, 0x6E, 0x00, 0xA3, 0x00, 0x6E, 0x00
.byte 0x00, 0x00, 0x80, 0x3F, 0x00, 0x00, 0x80, 0x3F, 0x35, 0x00, 0x60, 0x00, 0x3B, 0x00, 0x60, 0x00
.byte 0x00, 0x00, 0x80, 0x3F, 0x00, 0x00, 0x80, 0x3F, 0xC5, 0x00, 0x60, 0x00, 0xCB, 0x00, 0x60, 0x00
.byte 0x00, 0x00, 0x80, 0x3F, 0x00, 0x00, 0x80, 0x3F, 0x25, 0x00, 0x48, 0x00, 0x2B, 0x00, 0x48, 0x00
.byte 0x00, 0x00, 0x80, 0x3F, 0x00, 0x00, 0x80, 0x3F, 0xD5, 0x00, 0x48, 0x00, 0xDB, 0x00, 0x48, 0x00
.byte 0x00, 0x00, 0x80, 0x3F, 0x00, 0x00, 0x80, 0x3F
ov63_0221FE78: ; 0x0221FE78
.byte 0x7D, 0x00, 0x78, 0x00, 0x83, 0x00, 0x78, 0x00
.byte 0x00, 0x00, 0x80, 0x3F, 0x00, 0x00, 0x80, 0x3F
ov63_0221FE88: ; 0x0221FE88
.byte 0x60, 0x00, 0x78, 0x00, 0x6C, 0x00, 0x64, 0x00
.byte 0x00, 0x00, 0x80, 0x3F, 0xCD, 0xCC, 0x4C, 0x3F, 0xA0, 0x00, 0x78, 0x00, 0x94, 0x00, 0x64, 0x00
.byte 0x00, 0x00, 0x80, 0x3F, 0xCD, 0xCC, 0x4C, 0x3F, 0x38, 0x00, 0x68, 0x00, 0x54, 0x00, 0x5A, 0x00
.byte 0x00, 0x00, 0x80, 0x3F, 0x00, 0x00, 0x40, 0x3F, 0xC8, 0x00, 0x68, 0x00, 0xAA, 0x00, 0x5A, 0x00
.byte 0x00, 0x00, 0x80, 0x3F, 0x00, 0x00, 0x40, 0x3F, 0x28, 0x00, 0x50, 0x00, 0x40, 0x00, 0x4B, 0x00
.byte 0x00, 0x00, 0x80, 0x3F, 0x33, 0x33, 0x33, 0x3F, 0xD8, 0x00, 0x50, 0x00, 0xBE, 0x00, 0x4B, 0x00
.byte 0x00, 0x00, 0x80, 0x3F, 0x33, 0x33, 0x33, 0x3F
ov63_0221FEE8: ; 0x0221FEE8
.byte 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x78, 0x00
.byte 0x00, 0x00, 0x80, 0x3F, 0x33, 0x33, 0x33, 0x3F
ov63_0221FEF8: ; 0x0221FEF8
.byte 0x60, 0x00, 0x5A, 0x00, 0x6C, 0x00, 0x64, 0x00
.byte 0x00, 0x00, 0x80, 0x3F, 0x66, 0x66, 0x66, 0x3F, 0xA0, 0x00, 0x5A, 0x00, 0x94, 0x00, 0x64, 0x00
.byte 0x00, 0x00, 0x80, 0x3F, 0x66, 0x66, 0x66, 0x3F, 0x38, 0x00, 0x50, 0x00, 0x54, 0x00, 0x5A, 0x00
.byte 0x00, 0x00, 0x80, 0x3F, 0xCD, 0xCC, 0x4C, 0x3F, 0xC8, 0x00, 0x50, 0x00, 0xAA, 0x00, 0x5A, 0x00
.byte 0x00, 0x00, 0x80, 0x3F, 0xCD, 0xCC, 0x4C, 0x3F, 0x28, 0x00, 0x3C, 0x00, 0x40, 0x00, 0x4B, 0x00
.byte 0x00, 0x00, 0x80, 0x3F, 0x00, 0x00, 0x40, 0x3F, 0xD8, 0x00, 0x3C, 0x00, 0xBE, 0x00, 0x4B, 0x00
.byte 0x00, 0x00, 0x80, 0x3F, 0x00, 0x00, 0x40, 0x3F
ov63_0221FF58: ; 0x0221FF58
.byte 0x80, 0x00, 0x64, 0x00, 0x80, 0x00, 0x78, 0x00
.byte 0x00, 0x00, 0x80, 0x3F, 0xCD, 0xCC, 0x4C, 0x3F
ov63_0221FF68: ; 0x0221FF68
.byte 0x00, 0x02, 0xE0, 0x01, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xD8, 0xD8, 0x00, 0x00
.byte 0xD8, 0xD8, 0x00, 0x00, 0xD8, 0xD8, 0x00, 0x00, 0xD8, 0xD8, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF
.byte 0xFF, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xE0, 0x01
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0xD8, 0xD8, 0x00, 0x00, 0xD9, 0xD8, 0x00, 0x00, 0xD8, 0xD8, 0x00, 0x00, 0xD8, 0xD8, 0x00, 0x00
.byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x02, 0xE0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x00, 0x00, 0xD9, 0xD8, 0x00, 0x00, 0xDA, 0xD8, 0x00, 0x00, 0xD9, 0xD8, 0x00, 0x00
.byte 0xD9, 0xD8, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xE0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xD9, 0xD8, 0x00, 0x00, 0xDB, 0xD8, 0x00, 0x00
.byte 0xD9, 0xD8, 0x00, 0x00, 0xD9, 0xD8, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
.byte 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xE0, 0x01, 0x00, 0x00, 0x00, 0x00
.byte 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xDE, 0xD8, 0x00, 0x00
.byte 0xDE, 0xD8, 0x00, 0x00, 0xDA, 0xD8, 0x00, 0x00, 0xDA, 0xD8, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF
.byte 0xFF, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xE0, 0x01
.byte 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0xDE, 0xD8, 0x00, 0x00, 0xDF, 0xD8, 0x00, 0x00, 0xDA, 0xD8, 0x00, 0x00, 0xDA, 0xD8, 0x00, 0x00
.byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
ov63_022200A0: ; 0x022200A0
.byte 0xA8, 0x00, 0xD8, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x00, 0x00, 0xD8, 0xD8, 0x00, 0x00, 0xD8, 0xD8, 0x00, 0x00, 0xD8, 0xD8, 0x00, 0x00
.byte 0xD8, 0xD8, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0xA4, 0xFF, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xD9, 0xD8, 0x00, 0x00, 0xD9, 0xD8, 0x00, 0x00
.byte 0xD8, 0xD8, 0x00, 0x00, 0xD8, 0xD8, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
.byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x01, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xDA, 0xD8, 0x00, 0x00
.byte 0xDA, 0xD8, 0x00, 0x00, 0xD8, 0xD8, 0x00, 0x00, 0xD8, 0xD8, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF
.byte 0xFF, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x00, 0xD8, 0xFF
.byte 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0xDB, 0xD8, 0x00, 0x00, 0xDB, 0xD8, 0x00, 0x00, 0xD8, 0xD8, 0x00, 0x00, 0xD8, 0xD8, 0x00, 0x00
.byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x50, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x00, 0x00, 0xDC, 0xD8, 0x00, 0x00, 0xDC, 0xD8, 0x00, 0x00, 0xD8, 0xD8, 0x00, 0x00
.byte 0xD8, 0xD8, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0xB0, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xDD, 0xD8, 0x00, 0x00, 0xDD, 0xD8, 0x00, 0x00
.byte 0xD8, 0xD8, 0x00, 0x00, 0xD8, 0xD8, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
.byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5D, 0x00, 0x6E, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xD8, 0xD8, 0x00, 0x00
.byte 0xE1, 0xD8, 0x00, 0x00, 0xD8, 0xD8, 0x00, 0x00, 0xD8, 0xD8, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF
.byte 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9D, 0x00, 0x6E, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0xD9, 0xD8, 0x00, 0x00, 0xE1, 0xD8, 0x00, 0x00, 0xD8, 0xD8, 0x00, 0x00, 0xD8, 0xD8, 0x00, 0x00
.byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x35, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x00, 0x00, 0xDA, 0xD8, 0x00, 0x00, 0xE1, 0xD8, 0x00, 0x00, 0xD8, 0xD8, 0x00, 0x00
.byte 0xD8, 0xD8, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0xC5, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xDB, 0xD8, 0x00, 0x00, 0xE1, 0xD8, 0x00, 0x00
.byte 0xD8, 0xD8, 0x00, 0x00, 0xD8, 0xD8, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
.byte 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x25, 0x00, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xDC, 0xD8, 0x00, 0x00
.byte 0xE1, 0xD8, 0x00, 0x00, 0xD8, 0xD8, 0x00, 0x00, 0xD8, 0xD8, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF
.byte 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD5, 0x00, 0x48, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0xDD, 0xD8, 0x00, 0x00, 0xE1, 0xD8, 0x00, 0x00, 0xD8, 0xD8, 0x00, 0x00, 0xD8, 0xD8, 0x00, 0x00
.byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
ov63_02220310: ; 0x02220310
.byte 0x80, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x00, 0x00, 0xDF, 0xD8, 0x00, 0x00, 0xE0, 0xD8, 0x00, 0x00, 0xD8, 0xD8, 0x00, 0x00
.byte 0xD8, 0xD8, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
ov63_02220344: ; 0x02220344
.byte 0x7D, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xDF, 0xD8, 0x00, 0x00, 0xE1, 0xD8, 0x00, 0x00
.byte 0xD8, 0xD8, 0x00, 0x00, 0xD8, 0xD8, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
.byte 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
ov63_02220378: ; 0x02220378
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xE0, 0xD8, 0x00, 0x00
.byte 0xE2, 0xD8, 0x00, 0x00, 0xDB, 0xD8, 0x00, 0x00, 0xDB, 0xD8, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF
.byte 0xFF, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.data
_022203C0:
.byte 0x01, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.bss
_022203E0:
.space 0x20