pokediamond/arm9/asm/unk_0204CB20.s

6333 lines
114 KiB
ArmAsm

.include "asm/macros.inc"
.include "global.inc"
.extern gSystem
.section .rodata
.global UNK_020F5800
UNK_020F5800: ; 0x020F5800
.byte 0x04, 0x00, 0x07, 0x00, 0x0B, 0x00, 0x07, 0x00
.global UNK_020F5808
UNK_020F5808: ; 0x020F5808
.byte 0x14, 0x15, 0x16, 0x17, 0x10, 0x11, 0x12, 0x13, 0x0C, 0x0D, 0x0E, 0x0F
.global UNK_020F5814
UNK_020F5814: ; 0x020F5814
.byte 0x04, 0x00, 0x06, 0x00, 0x0B, 0x00, 0x06, 0x00, 0x04, 0x00, 0x08, 0x00, 0x0B, 0x00, 0x08, 0x00
.global UNK_020F5824
UNK_020F5824: ; 0x020F5824
.byte 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00
.byte 0x02, 0x00, 0x00, 0x00
.section .data
.global UNK_02105E5C
UNK_02105E5C: ; 0x02105E5C
.byte 0x04, 0x00, 0x07, 0x00, 0x0B, 0x00, 0x07, 0x00
.global UNK_02105E64
UNK_02105E64: ; 0x02105E64
.byte 0x04, 0x00, 0x06, 0x00, 0x0B, 0x00, 0x06, 0x00, 0x04, 0x00, 0x08, 0x00, 0x0B, 0x00, 0x08, 0x00
.section .bss
.global UNK_021C5A68
UNK_021C5A68: ; 0x021C5A68
.space 0x4
.text
thumb_func_start sub_0204CB20
sub_0204CB20: ; 0x0204CB20
push {r3-r7, lr}
add r4, r1, #0x0
ldr r1, _0204CC34 ; =UNK_021C5A68
add r5, r2, #0x0
ldr r2, [r1, #0x0]
cmp r2, #0x0
beq _0204CB32
mov r0, #0x0
pop {r3-r7, pc}
_0204CB32:
bne _0204CB40
mov r2, #0xb1
str r0, [r1, #0x0]
mov r1, #0x0
lsl r2, r2, #0x2
bl MI_CpuFill8
_0204CB40:
ldr r1, _0204CC34 ; =UNK_021C5A68
ldr r0, _0204CC38 ; =0x000002BE
ldr r2, [r1, #0x0]
strb r5, [r2, r0]
mov r2, #0x0
ldr r0, [r1, #0x0]
cmp r5, #0x0
str r2, [r0, #0x4]
beq _0204CB6C
bl ov18_02244D1C
add r1, r0, #0x0
mov r0, #0xf
bl Heap_Alloc
ldr r1, _0204CC34 ; =UNK_021C5A68
ldr r2, [r1, #0x0]
str r0, [r2, #0x4]
ldr r0, [r1, #0x0]
ldr r0, [r0, #0x4]
bl ov18_02244D20
_0204CB6C:
ldr r0, _0204CC34 ; =UNK_021C5A68
ldr r7, _0204CC3C ; =0x0000FFFF
ldr r1, [r0, #0x0]
str r4, [r1, #0x54]
mov r1, #0x0
add r2, r1, #0x0
add r3, r1, #0x0
_0204CB7A:
ldr r4, [r0, #0x0]
add r5, r4, r2
mov r4, #0x0
add r5, #0xa6
mvn r4, r4
strb r4, [r5, #0x0]
ldr r4, [r0, #0x0]
add r4, r4, r2
add r4, #0xa2
strh r7, [r4, #0x0]
ldr r4, [r0, #0x0]
add r4, r4, r2
add r4, #0xa4
strh r7, [r4, #0x0]
ldr r4, [r0, #0x0]
add r5, r4, r2
add r5, #0xa7
mov r4, #0x2
strb r4, [r5, #0x0]
ldr r4, [r0, #0x0]
add r5, r4, r2
mov r4, #0x0
add r5, #0x66
mvn r4, r4
strb r4, [r5, #0x0]
ldr r4, [r0, #0x0]
add r4, r4, r2
add r4, #0x62
strh r7, [r4, #0x0]
ldr r4, [r0, #0x0]
add r4, r4, r2
add r4, #0x64
strh r7, [r4, #0x0]
ldr r4, [r0, #0x0]
add r5, r4, r2
add r5, #0x67
mov r4, #0x2
strb r4, [r5, #0x0]
ldr r4, [r0, #0x0]
ldr r5, _0204CC40 ; =0x00000102
add r6, r4, r1
mov r4, #0x0
mvn r4, r4
strb r4, [r6, r5]
ldr r4, [r0, #0x0]
add r2, #0x8
add r5, r4, r1
add r5, #0xe2
mov r4, #0x0
strb r4, [r5, #0x0]
ldr r4, [r0, #0x0]
add r5, r4, r1
add r5, #0xea
mov r4, #0x1
strb r4, [r5, #0x0]
ldr r4, [r0, #0x0]
add r5, r4, r1
add r5, #0xf2
mov r4, #0x0
strb r4, [r5, #0x0]
ldr r4, [r0, #0x0]
mov r5, #0xff
add r6, r4, r3
add r4, r5, #0x0
add r4, #0x6b
add r1, r1, #0x1
add r3, #0x22
strh r5, [r6, r4]
cmp r1, #0x8
blt _0204CB7A
ldr r2, _0204CC34 ; =UNK_021C5A68
mov r1, #0xaf
ldr r3, [r2, #0x0]
lsl r1, r1, #0x2
mov r0, #0x0
strb r0, [r3, r1]
ldr r2, [r2, #0x0]
add r1, r1, #0x3
strb r0, [r2, r1]
ldr r0, _0204CC44 ; =sub_0204D4F0
mov r1, #0x0
mov r2, #0xc8
bl SysTask_CreateOnMainQueue
ldr r1, _0204CC34 ; =UNK_021C5A68
ldr r1, [r1, #0x0]
str r0, [r1, #0x50]
bl sub_02030FA8
bl sub_0204CF60
mov r0, #0x1
pop {r3-r7, pc}
.balign 4
_0204CC34: .word UNK_021C5A68
_0204CC38: .word 0x000002BE
_0204CC3C: .word 0x0000FFFF
_0204CC40: .word 0x00000102
_0204CC44: .word sub_0204D4F0
thumb_func_start sub_0204CC48
sub_0204CC48: ; 0x0204CC48
push {r3-r7, lr}
ldr r4, _0204CC94 ; =UNK_021C5A68
ldr r0, [r4, #0x0]
cmp r0, #0x0
beq _0204CC92
ldr r6, _0204CC98 ; =0x000002BE
mov r5, #0x0
mov r7, #0x1
_0204CC58:
ldr r0, [r4, #0x0]
ldrb r0, [r0, r6]
cmp r0, #0x0
beq _0204CC6E
lsl r0, r5, #0x18
lsr r0, r0, #0x18
add r1, r7, #0x0
mov r2, #0x0
bl sub_0204D43C
b _0204CC7A
_0204CC6E:
lsl r0, r5, #0x18
mov r1, #0x1
lsr r0, r0, #0x18
add r2, r1, #0x0
bl sub_0204D43C
_0204CC7A:
add r5, r5, #0x1
cmp r5, #0x8
blt _0204CC58
ldr r0, _0204CC94 ; =UNK_021C5A68
ldr r2, [r0, #0x0]
ldr r0, _0204CC98 ; =0x000002BE
ldrb r1, [r2, r0]
cmp r1, #0x0
beq _0204CC92
mov r1, #0x1
sub r0, r0, #0x1
strb r1, [r2, r0]
_0204CC92:
pop {r3-r7, pc}
.balign 4
_0204CC94: .word UNK_021C5A68
_0204CC98: .word 0x000002BE
thumb_func_start sub_0204CC9C
sub_0204CC9C: ; 0x0204CC9C
push {r3, lr}
ldr r1, _0204CCD8 ; =UNK_021C5A68
ldr r3, [r1, #0x0]
cmp r3, #0x0
beq _0204CCD6
ldr r0, _0204CCDC ; =0x000002BB
mov r2, #0x1
strb r2, [r3, r0]
ldr r1, [r1, #0x0]
mov r2, #0x0
add r0, r0, #0x2
strb r2, [r1, r0]
bl sub_0204CF60
mov r0, #0x1
bl sub_0204D168
ldr r0, _0204CCD8 ; =UNK_021C5A68
ldr r0, [r0, #0x0]
ldr r0, [r0, #0x54]
ldr r0, [r0, #0x38]
bl PlayerAvatar_GetXCoord
ldr r0, _0204CCD8 ; =UNK_021C5A68
ldr r0, [r0, #0x0]
ldr r0, [r0, #0x54]
ldr r0, [r0, #0x38]
bl PlayerAvatar_GetZCoord
_0204CCD6:
pop {r3, pc}
.balign 4
_0204CCD8: .word UNK_021C5A68
_0204CCDC: .word 0x000002BB
thumb_func_start sub_0204CCE0
sub_0204CCE0: ; 0x0204CCE0
push {r3-r7, lr}
ldr r7, _0204CD70 ; =UNK_021C5A68
add r6, r0, #0x0
ldr r0, [r7, #0x0]
cmp r0, #0x0
beq _0204CD6E
mov r4, #0x0
add r5, r4, #0x0
_0204CCF0:
ldr r0, [r7, #0x0]
add r1, r0, r5
mov r0, #0x9f
lsl r0, r0, #0x2
ldr r0, [r1, r0]
cmp r0, #0x0
beq _0204CD0E
bl Heap_Free
ldr r0, [r7, #0x0]
mov r1, #0x0
add r2, r0, r5
mov r0, #0x9f
lsl r0, r0, #0x2
str r1, [r2, r0]
_0204CD0E:
add r4, r4, #0x1
add r5, r5, #0x4
cmp r4, #0x5
blt _0204CCF0
ldr r0, _0204CD70 ; =UNK_021C5A68
ldr r2, [r0, #0x0]
ldr r0, _0204CD74 ; =0x000002B2
ldrh r1, [r2, r0]
cmp r1, #0x5
blo _0204CD28
ldr r0, [r2, #0x54]
bl sub_02061B64
_0204CD28:
mov r4, #0x0
add r5, r4, #0x0
_0204CD2C:
lsl r0, r4, #0x18
lsr r0, r0, #0x18
add r1, r5, #0x0
add r2, r6, #0x0
bl sub_0204D43C
add r4, r4, #0x1
cmp r4, #0x8
blt _0204CD2C
ldr r0, _0204CD70 ; =UNK_021C5A68
ldr r0, [r0, #0x0]
ldr r0, [r0, #0x50]
bl SysTask_Destroy
ldr r0, _0204CD70 ; =UNK_021C5A68
ldr r0, [r0, #0x0]
ldr r0, [r0, #0x4]
cmp r0, #0x0
beq _0204CD60
bl ov18_02244D3C
ldr r0, _0204CD70 ; =UNK_021C5A68
ldr r0, [r0, #0x0]
ldr r0, [r0, #0x4]
bl Heap_Free
_0204CD60:
ldr r0, _0204CD70 ; =UNK_021C5A68
ldr r0, [r0, #0x0]
bl Heap_Free
ldr r0, _0204CD70 ; =UNK_021C5A68
mov r1, #0x0
str r1, [r0, #0x0]
_0204CD6E:
pop {r3-r7, pc}
.balign 4
_0204CD70: .word UNK_021C5A68
_0204CD74: .word 0x000002B2
thumb_func_start sub_0204CD78
sub_0204CD78: ; 0x0204CD78
push {r4, lr}
lsl r4, r0, #0x2
ldr r0, _0204CDB0 ; =UNK_021C5A68
ldr r0, [r0, #0x0]
add r0, r0, r4
ldr r0, [r0, #0x28]
cmp r0, #0x0
beq _0204CDAC
bl sub_020646A0
cmp r0, #0x0
beq _0204CD9E
ldr r0, _0204CDB0 ; =UNK_021C5A68
ldr r0, [r0, #0x0]
add r0, r0, r4
ldr r0, [r0, #0x28]
bl sub_02064520
b _0204CDA2
_0204CD9E:
bl GF_AssertFail
_0204CDA2:
ldr r0, _0204CDB0 ; =UNK_021C5A68
mov r1, #0x0
ldr r0, [r0, #0x0]
add r0, r0, r4
str r1, [r0, #0x28]
_0204CDAC:
pop {r4, pc}
nop
_0204CDB0: .word UNK_021C5A68
thumb_func_start sub_0204CDB4
sub_0204CDB4: ; 0x0204CDB4
push {r3-r7, lr}
mov r4, #0x0
ldr r6, _0204CED4 ; =UNK_021C5A68
add r7, r4, #0x0
add r5, r4, #0x0
_0204CDBE:
add r0, r4, #0x0
bl sub_0204E778
add r0, r4, #0x0
bl sub_0204CD78
cmp r4, #0x0
beq _0204CDD4
add r0, r4, #0x0
bl sub_0204ED9C
_0204CDD4:
ldr r1, [r6, #0x0]
add r0, r1, r7
ldr r0, [r0, #0x8]
cmp r0, #0x0
beq _0204CDFA
ldr r2, [r1, #0x54]
ldr r2, [r2, #0x38]
cmp r2, r0
beq _0204CDF2
ldr r2, _0204CED8 ; =0x000002BE
ldrb r1, [r1, r2]
cmp r1, #0x0
beq _0204CDF2
bl PlayerAvatar_DeleteFromMap
_0204CDF2:
ldr r0, [r6, #0x0]
add r1, r0, r7
mov r0, #0x0
str r0, [r1, #0x8]
_0204CDFA:
ldr r0, [r6, #0x0]
add r7, r7, #0x4
add r1, r0, r4
add r1, #0x48
mov r0, #0x0
strb r0, [r1, #0x0]
ldr r0, [r6, #0x0]
add r1, r0, r5
mov r0, #0x0
add r1, #0xa6
mvn r0, r0
strb r0, [r1, #0x0]
ldr r0, [r6, #0x0]
add r1, r0, r5
ldr r0, _0204CEDC ; =0x0000FFFF
add r1, #0xa2
strh r0, [r1, #0x0]
ldr r0, [r6, #0x0]
add r1, r0, r5
ldr r0, _0204CEDC ; =0x0000FFFF
add r1, #0xa4
strh r0, [r1, #0x0]
ldr r0, [r6, #0x0]
add r1, r0, r5
add r1, #0xa7
mov r0, #0x2
strb r0, [r1, #0x0]
ldr r0, [r6, #0x0]
add r1, r0, r5
mov r0, #0x0
add r1, #0x66
mvn r0, r0
strb r0, [r1, #0x0]
ldr r0, [r6, #0x0]
add r1, r0, r5
ldr r0, _0204CEDC ; =0x0000FFFF
add r1, #0x62
strh r0, [r1, #0x0]
ldr r0, [r6, #0x0]
add r1, r0, r5
ldr r0, _0204CEDC ; =0x0000FFFF
add r1, #0x64
strh r0, [r1, #0x0]
ldr r0, [r6, #0x0]
add r1, r0, r5
add r1, #0x67
mov r0, #0x2
strb r0, [r1, #0x0]
ldr r0, [r6, #0x0]
mov r1, #0x0
add r2, r0, r4
ldr r0, _0204CEE0 ; =0x00000102
mvn r1, r1
strb r1, [r2, r0]
ldr r0, [r6, #0x0]
mov r1, #0x0
add r2, r0, r4
ldr r0, _0204CEE4 ; =0x0000010A
add r5, #0x8
strb r1, [r2, r0]
ldr r0, [r6, #0x0]
add r1, r0, r4
add r1, #0xe2
mov r0, #0x0
strb r0, [r1, #0x0]
ldr r0, [r6, #0x0]
add r1, r0, r4
add r1, #0xea
mov r0, #0x1
strb r0, [r1, #0x0]
ldr r0, [r6, #0x0]
add r1, r0, r4
add r1, #0xf2
mov r0, #0x0
strb r0, [r1, #0x0]
ldr r0, [r6, #0x0]
mov r1, #0x0
add r2, r0, r4
ldr r0, _0204CEE8 ; =0x0000013A
strb r1, [r2, r0]
ldr r0, [r6, #0x0]
add r2, r0, r4
ldr r0, _0204CEEC ; =0x00000142
add r4, r4, #0x1
strb r1, [r2, r0]
cmp r4, #0x8
blt _0204CDBE
ldr r0, _0204CED4 ; =UNK_021C5A68
ldr r1, _0204CEF0 ; =0x000002BF
ldr r2, [r0, #0x0]
mov r0, #0x0
strb r0, [r2, r1]
bl sub_0204CF60
ldr r0, _0204CED4 ; =UNK_021C5A68
ldr r0, [r0, #0x0]
ldr r0, [r0, #0x50]
cmp r0, #0x0
bne _0204CED0
ldr r0, _0204CEF4 ; =sub_0204D4F0
mov r1, #0x0
mov r2, #0xc8
bl SysTask_CreateOnMainQueue
ldr r1, _0204CED4 ; =UNK_021C5A68
ldr r1, [r1, #0x0]
str r0, [r1, #0x50]
_0204CED0:
pop {r3-r7, pc}
nop
_0204CED4: .word UNK_021C5A68
_0204CED8: .word 0x000002BE
_0204CEDC: .word 0x0000FFFF
_0204CEE0: .word 0x00000102
_0204CEE4: .word 0x0000010A
_0204CEE8: .word 0x0000013A
_0204CEEC: .word 0x00000142
_0204CEF0: .word 0x000002BF
_0204CEF4: .word sub_0204D4F0
thumb_func_start sub_0204CEF8
sub_0204CEF8: ; 0x0204CEF8
push {r3, lr}
ldr r0, _0204CF20 ; =UNK_021C5A68
ldr r0, [r0, #0x0]
ldr r0, [r0, #0x50]
cmp r0, #0x0
beq _0204CF16
mov r0, #0x0
add r1, r0, #0x0
bl sub_0204D4F0
ldr r0, _0204CF20 ; =UNK_021C5A68
ldr r0, [r0, #0x0]
ldr r0, [r0, #0x50]
bl SysTask_Destroy
_0204CF16:
ldr r0, _0204CF20 ; =UNK_021C5A68
mov r1, #0x0
ldr r0, [r0, #0x0]
str r1, [r0, #0x50]
pop {r3, pc}
.balign 4
_0204CF20: .word UNK_021C5A68
thumb_func_start sub_0204CF24
sub_0204CF24: ; 0x0204CF24
push {r3-r5, lr}
ldr r0, _0204CF58 ; =UNK_021C5A68
ldr r0, [r0, #0x0]
cmp r0, #0x0
beq _0204CF54
mov r5, #0x0
add r4, r5, #0x0
_0204CF32:
lsl r0, r5, #0x18
lsr r0, r0, #0x18
add r1, r4, #0x0
add r2, r4, #0x0
bl sub_0204D43C
add r0, r5, #0x0
bl sub_0204F69C
add r5, r5, #0x1
cmp r5, #0x8
blt _0204CF32
ldr r0, _0204CF58 ; =UNK_021C5A68
mov r2, #0x1
ldr r1, [r0, #0x0]
ldr r0, _0204CF5C ; =0x000002BD
strb r2, [r1, r0]
_0204CF54:
pop {r3-r5, pc}
nop
_0204CF58: .word UNK_021C5A68
_0204CF5C: .word 0x000002BD
thumb_func_start sub_0204CF60
sub_0204CF60: ; 0x0204CF60
push {r4, lr}
bl sub_02031190
ldr r1, _0204D03C ; =UNK_021C5A68
lsl r0, r0, #0x2
ldr r2, [r1, #0x0]
ldr r1, [r2, #0x54]
add r0, r2, r0
ldr r1, [r1, #0x38]
str r1, [r0, #0x8]
bl sub_02031190
ldr r1, _0204D03C ; =UNK_021C5A68
mov r2, #0x1
ldr r1, [r1, #0x0]
add r0, r1, r0
add r0, #0x48
strb r2, [r0, #0x0]
bl sub_02031190
add r4, r0, #0x0
ldr r0, _0204D03C ; =UNK_021C5A68
ldr r0, [r0, #0x0]
ldr r0, [r0, #0x54]
ldr r0, [r0, #0x38]
bl PlayerAvatar_GetXCoord
ldr r1, _0204D03C ; =UNK_021C5A68
ldr r2, [r1, #0x0]
lsl r1, r4, #0x3
add r1, r2, r1
add r1, #0xa2
strh r0, [r1, #0x0]
bl sub_02031190
add r4, r0, #0x0
ldr r0, _0204D03C ; =UNK_021C5A68
ldr r0, [r0, #0x0]
ldr r0, [r0, #0x54]
ldr r0, [r0, #0x38]
bl PlayerAvatar_GetZCoord
ldr r1, _0204D03C ; =UNK_021C5A68
ldr r2, [r1, #0x0]
lsl r1, r4, #0x3
add r1, r2, r1
add r1, #0xa4
strh r0, [r1, #0x0]
bl sub_02031190
add r4, r0, #0x0
ldr r0, _0204D03C ; =UNK_021C5A68
ldr r0, [r0, #0x0]
ldr r0, [r0, #0x54]
ldr r0, [r0, #0x38]
bl PlayerAvatar_GetFacingDirection
ldr r1, _0204D03C ; =UNK_021C5A68
ldr r2, [r1, #0x0]
lsl r1, r4, #0x3
add r1, r2, r1
add r1, #0xa6
strb r0, [r1, #0x0]
bl sub_02031190
add r4, r0, #0x0
ldr r0, _0204D03C ; =UNK_021C5A68
ldr r0, [r0, #0x0]
ldr r0, [r0, #0x54]
ldr r0, [r0, #0x38]
bl PlayerAvatar_GetXCoord
ldr r1, _0204D03C ; =UNK_021C5A68
ldr r2, [r1, #0x0]
lsl r1, r4, #0x3
add r1, r2, r1
add r1, #0x62
strh r0, [r1, #0x0]
bl sub_02031190
add r4, r0, #0x0
ldr r0, _0204D03C ; =UNK_021C5A68
ldr r0, [r0, #0x0]
ldr r0, [r0, #0x54]
ldr r0, [r0, #0x38]
bl PlayerAvatar_GetZCoord
ldr r1, _0204D03C ; =UNK_021C5A68
ldr r2, [r1, #0x0]
lsl r1, r4, #0x3
add r1, r2, r1
add r1, #0x64
strh r0, [r1, #0x0]
bl sub_02031190
add r4, r0, #0x0
ldr r0, _0204D03C ; =UNK_021C5A68
ldr r0, [r0, #0x0]
ldr r0, [r0, #0x54]
ldr r0, [r0, #0x38]
bl PlayerAvatar_GetFacingDirection
ldr r1, _0204D03C ; =UNK_021C5A68
ldr r2, [r1, #0x0]
lsl r1, r4, #0x3
add r1, r2, r1
add r1, #0x66
strb r0, [r1, #0x0]
pop {r4, pc}
nop
_0204D03C: .word UNK_021C5A68
thumb_func_start sub_0204D040
sub_0204D040: ; 0x0204D040
push {r3-r7, lr}
str r0, [sp, #0x0]
ldr r0, _0204D110 ; =UNK_021C5A68
mov r2, #0x0
ldr r1, [r0, #0x0]
ldr r0, _0204D114 ; =0x000002BF
strb r2, [r1, r0]
bl sub_02031190
ldr r2, _0204D110 ; =UNK_021C5A68
add r1, r0, #0x0
ldr r4, [r2, #0x0]
lsl r6, r1, #0x2
ldr r0, [r4, #0x54]
ldr r3, [r0, #0x38]
add r0, r4, r6
str r3, [r0, #0x8]
ldr r0, [r2, #0x0]
mov r3, #0x1
add r0, r0, r1
add r0, #0x48
strb r3, [r0, #0x0]
ldr r0, [sp, #0x0]
ldr r3, [r2, #0x0]
lsl r5, r0, #0x3
add r0, r3, r5
add r0, #0xa2
lsl r4, r1, #0x3
add r3, r3, r4
ldrh r0, [r0, #0x0]
add r3, #0xa2
strh r0, [r3, #0x0]
ldr r3, [r2, #0x0]
add r0, r3, r5
add r0, #0xa4
add r3, r3, r4
ldrh r0, [r0, #0x0]
add r3, #0xa4
strh r0, [r3, #0x0]
ldr r7, [r2, #0x0]
mov r0, #0xa6
add r3, r7, r5
ldrsb r0, [r3, r0]
add r3, r7, r4
add r3, #0xa6
strb r0, [r3, #0x0]
ldr r3, [r2, #0x0]
mov r7, #0x29
add r0, r3, r5
add r0, #0x62
add r3, r3, r4
ldrh r0, [r0, #0x0]
add r3, #0x62
lsl r7, r7, #0x4
strh r0, [r3, #0x0]
ldr r3, [r2, #0x0]
add r0, r3, r5
add r0, #0x64
add r3, r3, r4
ldrh r0, [r0, #0x0]
add r3, #0x64
strh r0, [r3, #0x0]
ldr r0, [r2, #0x0]
mov r3, #0x66
add r5, r0, r5
add r0, r0, r4
ldrsb r5, [r5, r3]
add r0, #0x66
strb r5, [r0, #0x0]
ldr r0, [sp, #0x0]
ldr r4, [r2, #0x0]
lsl r5, r0, #0x2
add r0, r4, r5
ldr r0, [r0, r7]
add r4, r4, r6
str r0, [r4, r7]
ldr r0, [r2, #0x0]
mov r4, #0x0
add r0, r0, r5
str r4, [r0, r7]
ldr r2, [r2, #0x0]
add r0, r2, r6
ldr r0, [r0, r7]
cmp r0, #0x0
beq _0204D0F8
add r3, #0xe4
add r3, r2, r3
mov r2, #0x22
mul r2, r1
add r1, r3, r2
bl PlayerProfile_Copy
_0204D0F8:
ldr r1, _0204D110 ; =UNK_021C5A68
mov r0, #0xff
ldr r3, [r1, #0x0]
ldr r1, [sp, #0x0]
mov r2, #0x22
mul r2, r1
add r1, r0, #0x0
add r2, r3, r2
add r1, #0x6b
strh r0, [r2, r1]
pop {r3-r7, pc}
nop
_0204D110: .word UNK_021C5A68
_0204D114: .word 0x000002BF
thumb_func_start sub_0204D118
sub_0204D118: ; 0x0204D118
push {r4-r6, lr}
sub sp, #0x8
add r5, r0, #0x0
ldr r0, _0204D160 ; =UNK_021C5A68
add r4, r1, #0x0
ldr r0, [r0, #0x0]
add r6, r2, #0x0
ldr r0, [r0, #0x54]
ldr r0, [r0, #0x38]
bl PlayerAvatar_GetFacingDirection
add r1, sp, #0x0
strb r4, [r1, #0x0]
asr r2, r4, #0x8
strb r2, [r1, #0x1]
asr r2, r6, #0x8
strb r6, [r1, #0x2]
strb r2, [r1, #0x3]
strb r0, [r1, #0x4]
cmp r5, #0x0
beq _0204D14A
ldrb r2, [r1, #0x4]
mov r0, #0x80
orr r0, r2
strb r0, [r1, #0x4]
_0204D14A:
mov r0, #0x16
add r1, sp, #0x0
bl sub_020311D0
ldr r0, _0204D160 ; =UNK_021C5A68
mov r2, #0x1
ldr r1, [r0, #0x0]
ldr r0, _0204D164 ; =0x000002BB
strb r2, [r1, r0]
add sp, #0x8
pop {r4-r6, pc}
.balign 4
_0204D160: .word UNK_021C5A68
_0204D164: .word 0x000002BB
thumb_func_start sub_0204D168
sub_0204D168: ; 0x0204D168
push {r3-r5, lr}
add r5, r0, #0x0
ldr r0, _0204D194 ; =UNK_021C5A68
ldr r0, [r0, #0x0]
ldr r0, [r0, #0x54]
ldr r0, [r0, #0x38]
bl PlayerAvatar_GetXCoord
add r4, r0, #0x0
ldr r0, _0204D194 ; =UNK_021C5A68
ldr r0, [r0, #0x0]
ldr r0, [r0, #0x54]
ldr r0, [r0, #0x38]
bl PlayerAvatar_GetZCoord
add r2, r0, #0x0
add r0, r5, #0x0
add r1, r4, #0x0
bl sub_0204D118
pop {r3-r5, pc}
nop
_0204D194: .word UNK_021C5A68
thumb_func_start sub_0204D198
sub_0204D198: ; 0x0204D198
push {r3-r5, lr}
add r5, r0, #0x0
bl sub_02031190
ldr r1, _0204D1C8 ; =UNK_021C5A68
lsl r0, r0, #0x3
ldr r1, [r1, #0x0]
add r0, r1, r0
add r0, #0x62
ldrh r4, [r0, #0x0]
bl sub_02031190
ldr r1, _0204D1C8 ; =UNK_021C5A68
lsl r0, r0, #0x3
ldr r1, [r1, #0x0]
add r0, r1, r0
add r0, #0x64
ldrh r2, [r0, #0x0]
add r0, r5, #0x0
add r1, r4, #0x0
bl sub_0204D118
pop {r3-r5, pc}
nop
_0204D1C8: .word UNK_021C5A68
thumb_func_start sub_0204D1CC
sub_0204D1CC: ; 0x0204D1CC
push {r3-r5, lr}
sub sp, #0x8
ldrh r2, [r1, #0x0]
mov r4, #0xf
lsl r4, r4, #0xc
ldrh r3, [r1, #0x2]
cmp r2, r4
blo _0204D1DE
sub r2, r4, #0x1
_0204D1DE:
mov r4, #0xf
lsl r4, r4, #0xc
cmp r3, r4
blo _0204D1E8
sub r3, r4, #0x1
_0204D1E8:
mov r4, #0xf
and r0, r4
add r4, sp, #0x0
strb r0, [r4, #0x0]
strb r2, [r4, #0x1]
asr r2, r2, #0x8
add r5, r2, #0x0
mov r0, #0x1
and r5, r0
asr r2, r3, #0x7
mov r0, #0x2
and r0, r2
add r0, r5, r0
strb r0, [r4, #0x2]
strb r3, [r4, #0x3]
ldrb r0, [r1, #0x7]
cmp r0, #0x0
beq _0204D214
ldrb r2, [r4, #0x2]
mov r0, #0x80
orr r0, r2
strb r0, [r4, #0x2]
_0204D214:
mov r2, #0x4
ldrsb r2, [r1, r2]
add r5, sp, #0x0
ldrb r0, [r5, #0x0]
lsr r4, r2, #0x1f
lsl r3, r2, #0x1e
sub r3, r3, r4
mov r2, #0x1e
ror r3, r2
add r2, r4, r3
lsl r2, r2, #0x4
add r0, r0, r2
strb r0, [r5, #0x0]
ldrb r0, [r1, #0x5]
ldrb r2, [r5, #0x0]
add r1, sp, #0x0
lsl r0, r0, #0x6
add r0, r2, r0
strb r0, [r5, #0x0]
mov r0, #0x17
mov r2, #0x0
bl sub_02030BC4
add sp, #0x8
pop {r3-r5, pc}
.balign 4
thumb_func_start sub_0204D248
sub_0204D248: ; 0x0204D248
push {r3-r5, lr}
ldr r0, _0204D2A8 ; =UNK_021C5A68
ldr r0, [r0, #0x0]
ldr r0, [r0, #0x54]
ldr r0, [r0, #0x38]
bl PlayerAvatar_GetUnk10
add r4, r0, #0x0
ldr r0, _0204D2A8 ; =UNK_021C5A68
ldr r0, [r0, #0x0]
ldr r0, [r0, #0x54]
ldr r0, [r0, #0x38]
bl PlayerAvatar_GetUnk14
add r5, r0, #0x0
cmp r4, #0x0
bne _0204D292
bl sub_02031190
bl sub_02030E7C
cmp r0, #0x0
beq _0204D292
ldr r0, _0204D2A8 ; =UNK_021C5A68
ldr r1, [r0, #0x0]
ldr r0, _0204D2AC ; =0x000002BA
ldrb r0, [r1, r0]
cmp r0, #0x0
bne _0204D292
mov r0, #0x1
bl sub_0204D168
ldr r0, _0204D2A8 ; =UNK_021C5A68
mov r2, #0x1
ldr r1, [r0, #0x0]
ldr r0, _0204D2AC ; =0x000002BA
strb r2, [r1, r0]
_0204D292:
cmp r4, #0x1
bne _0204D2A4
cmp r5, #0x1
bne _0204D2A4
ldr r0, _0204D2A8 ; =UNK_021C5A68
mov r2, #0x0
ldr r1, [r0, #0x0]
ldr r0, _0204D2AC ; =0x000002BA
strb r2, [r1, r0]
_0204D2A4:
pop {r3-r5, pc}
nop
_0204D2A8: .word UNK_021C5A68
_0204D2AC: .word 0x000002BA
thumb_func_start sub_0204D2B0
sub_0204D2B0: ; 0x0204D2B0
push {r3-r7, lr}
mov r4, #0x0
ldr r7, _0204D2FC ; =UNK_021C5A68
add r5, r4, #0x0
add r6, r4, #0x0
_0204D2BA:
ldr r0, [r7, #0x0]
add r2, r0, r4
add r1, r2, #0x0
add r1, #0x48
ldrb r1, [r1, #0x0]
cmp r1, #0x0
beq _0204D2E8
ldr r3, _0204D300 ; =0x00000132
add r1, r0, #0x0
ldrb r3, [r2, r3]
add r1, #0x62
cmp r3, #0x0
bne _0204D2DC
ldr r3, _0204D304 ; =0x000002BB
ldrb r0, [r0, r3]
cmp r0, #0x0
beq _0204D2E8
_0204D2DC:
ldr r0, _0204D300 ; =0x00000132
add r1, r1, r5
strb r6, [r2, r0]
add r0, r4, #0x0
bl sub_0204D1CC
_0204D2E8:
add r4, r4, #0x1
add r5, #0x8
cmp r4, #0x8
blt _0204D2BA
ldr r0, _0204D2FC ; =UNK_021C5A68
mov r2, #0x0
ldr r1, [r0, #0x0]
ldr r0, _0204D304 ; =0x000002BB
strb r2, [r1, r0]
pop {r3-r7, pc}
.balign 4
_0204D2FC: .word UNK_021C5A68
_0204D300: .word 0x00000132
_0204D304: .word 0x000002BB
thumb_func_start sub_0204D308
sub_0204D308: ; 0x0204D308
ldr r0, _0204D31C ; =UNK_021C5A68
ldr r2, [r0, #0x0]
cmp r2, #0x0
beq _0204D318
mov r0, #0xae
mov r1, #0x0
lsl r0, r0, #0x2
strb r1, [r2, r0]
_0204D318:
bx lr
nop
_0204D31C: .word UNK_021C5A68
thumb_func_start sub_0204D320
sub_0204D320: ; 0x0204D320
mov r0, #0xb1
lsl r0, r0, #0x2
bx lr
.balign 4
thumb_func_start sub_0204D328
sub_0204D328: ; 0x0204D328
push {r3-r7, lr}
sub sp, #0x10
ldr r1, _0204D430 ; =UNK_021C5A68
add r5, r0, #0x0
ldr r2, [r1, #0x0]
lsl r6, r5, #0x2
add r1, r2, r6
ldr r1, [r1, #0x8]
cmp r1, #0x0
bne _0204D42A
ldr r1, _0204D434 ; =0x000002BD
ldrb r1, [r2, r1]
cmp r1, #0x0
bne _0204D42A
bl sub_0202DFA4
str r0, [sp, #0xc]
cmp r0, #0x0
beq _0204D42A
ldr r0, _0204D430 ; =UNK_021C5A68
ldr r1, [r0, #0x0]
ldr r0, _0204D438 ; =0x000002BE
ldrb r0, [r1, r0]
cmp r0, #0x0
bne _0204D37C
bl sub_02031190
cmp r5, r0
beq _0204D37C
ldr r0, _0204D430 ; =UNK_021C5A68
mov r1, #0x1
ldr r0, [r0, #0x0]
lsl r1, r1, #0x8
ldr r0, [r0, #0x54]
add r1, r5, r1
ldr r0, [r0, #0x34]
bl MapObjectManager_GetFirstActiveObjectByID
cmp r0, #0x0
beq _0204D37C
bl MapObject_Remove
_0204D37C:
ldr r0, _0204D430 ; =UNK_021C5A68
lsl r4, r5, #0x3
ldr r7, [r0, #0x0]
ldr r0, [sp, #0xc]
bl PlayerProfile_GetTrainerGender
mov r1, #0x0
str r1, [sp, #0x0]
str r0, [sp, #0x4]
str r1, [sp, #0x8]
ldr r0, [r7, #0x54]
add r7, r7, r4
add r1, r7, #0x0
add r2, r7, #0x0
add r1, #0xa2
add r2, #0xa4
mov r3, #0xa6
ldrh r1, [r1, #0x0]
ldrh r2, [r2, #0x0]
ldrsb r3, [r7, r3]
ldr r0, [r0, #0x34]
bl PlayerAvatar_CreateWithParams
add r7, r0, #0x0
bne _0204D3B2
bl GF_AssertFail
_0204D3B2:
ldr r0, _0204D430 ; =UNK_021C5A68
ldr r0, [r0, #0x0]
add r0, r0, r6
str r7, [r0, #0x8]
add r0, r7, #0x0
bl PlayerAvatar_GetMapObject
mov r1, #0x1
lsl r1, r1, #0x8
add r1, r5, r1
bl MapObject_SetID
ldr r0, _0204D430 ; =UNK_021C5A68
ldr r1, [r0, #0x0]
ldr r0, _0204D438 ; =0x000002BE
ldrb r0, [r1, r0]
cmp r0, #0x0
beq _0204D3DC
add r0, r5, #0x0
bl ov18_0223E4D4
_0204D3DC:
ldr r0, _0204D430 ; =UNK_021C5A68
ldr r1, _0204D438 ; =0x000002BE
ldr r3, [r0, #0x0]
ldrb r2, [r3, r1]
cmp r2, #0x0
beq _0204D41E
add r0, r3, r5
add r0, #0x48
ldrb r0, [r0, #0x0]
cmp r0, #0x0
bne _0204D41E
sub r0, r1, #0x1
ldrb r0, [r3, r0]
cmp r0, #0x0
bne _0204D40E
add r1, r3, r4
ldr r0, [r3, #0x54]
add r3, r3, r4
add r1, #0xa2
add r3, #0xa4
ldrh r1, [r1, #0x0]
ldrh r3, [r3, #0x0]
mov r2, #0x0
bl ov05_021E5B30
_0204D40E:
ldr r0, _0204D430 ; =UNK_021C5A68
mov r1, #0x1
ldr r0, [r0, #0x0]
add sp, #0x10
add r0, r0, r5
add r0, #0x48
strb r1, [r0, #0x0]
pop {r3-r7, pc}
_0204D41E:
cmp r2, #0x0
bne _0204D42A
add r0, r3, r5
mov r1, #0x1
add r0, #0x48
strb r1, [r0, #0x0]
_0204D42A:
add sp, #0x10
pop {r3-r7, pc}
nop
_0204D430: .word UNK_021C5A68
_0204D434: .word 0x000002BD
_0204D438: .word 0x000002BE
thumb_func_start sub_0204D43C
sub_0204D43C: ; 0x0204D43C
push {r3-r7, lr}
add r5, r0, #0x0
ldr r0, _0204D4CC ; =UNK_021C5A68
add r6, r1, #0x0
ldr r0, [r0, #0x0]
add r7, r2, #0x0
cmp r0, #0x0
beq _0204D4C8
add r0, #0x5a
mov r1, #0x0
mov r2, #0x8
bl MI_CpuFill8
add r0, r5, #0x0
bl sub_0204CD78
ldr r0, _0204D4CC ; =UNK_021C5A68
lsl r4, r5, #0x2
ldr r1, [r0, #0x0]
add r0, r1, r4
ldr r0, [r0, #0x8]
cmp r0, #0x0
beq _0204D492
ldr r2, [r1, #0x54]
ldr r2, [r2, #0x38]
cmp r2, r0
beq _0204D488
ldr r2, _0204D4D0 ; =0x000002BE
ldrb r1, [r1, r2]
cmp r1, #0x0
bne _0204D47E
cmp r7, #0x0
beq _0204D484
_0204D47E:
bl PlayerAvatar_DeleteFromMap
b _0204D488
_0204D484:
bl PlayerAvatar_FreeToHeap
_0204D488:
ldr r0, _0204D4CC ; =UNK_021C5A68
mov r1, #0x0
ldr r0, [r0, #0x0]
add r0, r0, r4
str r1, [r0, #0x8]
_0204D492:
ldr r0, _0204D4CC ; =UNK_021C5A68
ldr r1, [r0, #0x0]
add r1, #0x48
ldrb r0, [r1, r5]
cmp r0, #0x0
beq _0204D4A6
cmp r6, #0x0
bne _0204D4A6
mov r0, #0x0
strb r0, [r1, r5]
_0204D4A6:
ldr r0, _0204D4CC ; =UNK_021C5A68
mov r2, #0x1
ldr r0, [r0, #0x0]
add r1, r0, r5
ldr r0, _0204D4D4 ; =0x00000132
cmp r6, #0x0
strb r2, [r1, r0]
bne _0204D4C8
add r0, r5, #0x0
bl sub_0204ED9C
ldr r0, _0204D4CC ; =UNK_021C5A68
mov r1, #0x0
ldr r0, [r0, #0x0]
add r0, r0, r5
add r0, #0xfa
strb r1, [r0, #0x0]
_0204D4C8:
pop {r3-r7, pc}
nop
_0204D4CC: .word UNK_021C5A68
_0204D4D0: .word 0x000002BE
_0204D4D4: .word 0x00000132
thumb_func_start sub_0204D4D8
sub_0204D4D8: ; 0x0204D4D8
ldr r1, _0204D4E8 ; =gSystem
mov r0, #0x2
ldr r1, [r1, #0x44]
tst r1, r0
beq _0204D4E4
mov r0, #0x1
_0204D4E4:
ldr r3, _0204D4EC ; =sub_02030F60
bx r3
.balign 4
_0204D4E8: .word gSystem
_0204D4EC: .word sub_02030F60
thumb_func_start sub_0204D4F0
sub_0204D4F0: ; 0x0204D4F0
push {r4-r6, lr}
add r4, r1, #0x0
bl sub_02030F40
cmp r0, #0x0
beq _0204D530
bl sub_0204D4D8
bl sub_02031190
cmp r0, #0x0
bne _0204D524
add r0, r4, #0x0
bl sub_0204D2B0
add r0, r4, #0x0
bl sub_0204D248
ldr r0, _0204D560 ; =UNK_021C5A68
ldr r0, [r0, #0x0]
ldr r0, [r0, #0x4]
cmp r0, #0x0
beq _0204D52A
bl ov18_02244D58
b _0204D52A
_0204D524:
add r0, r4, #0x0
bl sub_0204D248
_0204D52A:
add r0, r4, #0x0
bl sub_0204D568
_0204D530:
ldr r4, _0204D560 ; =UNK_021C5A68
ldr r6, _0204D564 ; =0x000002BE
mov r5, #0x0
_0204D536:
ldr r0, [r4, #0x0]
ldrb r0, [r0, r6]
cmp r0, #0x0
beq _0204D556
bl sub_02031190
cmp r0, #0x0
bne _0204D556
add r0, r5, #0x0
bl sub_0202DFA4
cmp r0, #0x0
bne _0204D556
add r0, r5, #0x0
bl ov18_02245358
_0204D556:
add r5, r5, #0x1
cmp r5, #0x8
blt _0204D536
pop {r4-r6, pc}
nop
_0204D560: .word UNK_021C5A68
_0204D564: .word 0x000002BE
thumb_func_start sub_0204D568
sub_0204D568: ; 0x0204D568
push {r3-r7, lr}
ldr r4, _0204D608 ; =UNK_021C5A68
ldr r7, _0204D60C ; =0x000002BE
mov r5, #0x0
add r6, sp, #0x0
_0204D572:
lsl r0, r5, #0x10
lsr r0, r0, #0x10
bl sub_02030E7C
cmp r0, #0x0
bne _0204D5A0
bl sub_02031280
cmp r0, #0x0
beq _0204D58A
cmp r5, #0x0
beq _0204D5A0
_0204D58A:
bl sub_02031190
cmp r0, #0x0
bne _0204D5A0
ldr r0, [r4, #0x0]
ldrb r0, [r0, r7]
cmp r0, #0x0
beq _0204D5A0
add r0, r5, #0x0
bl ov18_02247614
_0204D5A0:
lsl r0, r5, #0x10
lsr r0, r0, #0x10
bl sub_02030E7C
cmp r0, #0x0
bne _0204D5B8
bl sub_02031280
cmp r0, #0x0
beq _0204D5C6
cmp r5, #0x0
bne _0204D5C6
_0204D5B8:
add r0, r5, #0x0
bl sub_0204DE30
add r0, r5, #0x0
bl sub_0204EFCC
b _0204D600
_0204D5C6:
ldr r0, [r4, #0x0]
add r0, r0, r5
add r0, #0x48
ldrb r0, [r0, #0x0]
cmp r0, #0x0
beq _0204D600
bl sub_02031190
cmp r0, #0x0
bne _0204D5F0
ldr r1, [r4, #0x0]
ldr r0, _0204D60C ; =0x000002BE
ldrb r0, [r1, r0]
cmp r0, #0x0
beq _0204D5F0
add r0, r5, #0x0
bl ov18_0223EB8C
add r0, r5, #0x0
bl ov18_0223CB08
_0204D5F0:
strb r5, [r6, #0x0]
ldr r3, [r4, #0x0]
mov r0, #0x0
ldr r3, [r3, #0x54]
mov r1, #0x1
add r2, sp, #0x0
bl sub_0204DBCC
_0204D600:
add r5, r5, #0x1
cmp r5, #0x8
blt _0204D572
pop {r3-r7, pc}
.balign 4
_0204D608: .word UNK_021C5A68
_0204D60C: .word 0x000002BE
thumb_func_start sub_0204D610
sub_0204D610: ; 0x0204D610
ldr r0, _0204D624 ; =UNK_021C5A68
ldr r1, [r0, #0x0]
cmp r1, #0x0
beq _0204D620
mov r0, #0xaf
lsl r0, r0, #0x2
ldrb r0, [r1, r0]
bx lr
_0204D620:
mov r0, #0x0
bx lr
.balign 4
_0204D624: .word UNK_021C5A68
thumb_func_start sub_0204D628
sub_0204D628: ; 0x0204D628
push {r3, lr}
ldr r1, _0204D650 ; =UNK_021C5A68
ldr r3, [r1, #0x0]
cmp r3, #0x0
beq _0204D64E
mov r1, #0xaf
lsl r1, r1, #0x2
ldrb r2, [r3, r1]
cmp r2, r0
beq _0204D63E
strb r0, [r3, r1]
_0204D63E:
ldr r1, _0204D650 ; =UNK_021C5A68
mov r0, #0x3e
ldr r2, [r1, #0x0]
mov r1, #0xaf
lsl r1, r1, #0x2
add r1, r2, r1
bl sub_020311D0
_0204D64E:
pop {r3, pc}
.balign 4
_0204D650: .word UNK_021C5A68
thumb_func_start sub_0204D654
sub_0204D654: ; 0x0204D654
push {r4, lr}
ldr r2, _0204D678 ; =UNK_021C5A68
ldr r4, [r2, #0x0]
cmp r4, #0x0
beq _0204D674
mov r1, #0xaf
lsl r1, r1, #0x2
ldrb r3, [r4, r1]
cmp r3, r0
beq _0204D674
strb r0, [r4, r1]
ldr r2, [r2, #0x0]
mov r0, #0x3e
add r1, r2, r1
bl sub_020311D0
_0204D674:
pop {r4, pc}
nop
_0204D678: .word UNK_021C5A68
thumb_func_start sub_0204D67C
sub_0204D67C: ; 0x0204D67C
push {r3-r5, lr}
add r5, r0, #0x0
ldr r0, _0204D6BC ; =UNK_021C5A68
add r4, r2, #0x0
ldr r0, [r0, #0x0]
cmp r0, #0x0
beq _0204D6B8
cmp r1, #0x1
beq _0204D692
bl GF_AssertFail
_0204D692:
cmp r5, #0x8
blt _0204D69A
bl GF_AssertFail
_0204D69A:
ldrb r0, [r4, #0x0]
mov r1, #0x1
cmp r0, #0x1
beq _0204D6A8
cmp r0, #0x0
beq _0204D6A8
mov r1, #0x0
_0204D6A8:
cmp r1, #0x0
bne _0204D6B0
bl GF_AssertFail
_0204D6B0:
ldrb r1, [r4, #0x0]
add r0, r5, #0x0
bl sub_0204EAD8
_0204D6B8:
pop {r3-r5, pc}
nop
_0204D6BC: .word UNK_021C5A68
thumb_func_start sub_0204D6C0
sub_0204D6C0: ; 0x0204D6C0
push {r3-r5, lr}
add r5, r0, #0x0
ldr r0, _0204D734 ; =UNK_021C5A68
add r4, r1, #0x0
ldr r1, [r0, #0x0]
cmp r1, #0x0
beq _0204D732
ldr r0, _0204D738 ; =0x000002BE
ldrb r0, [r1, r0]
cmp r0, #0x0
bne _0204D6E4
add r0, r4, #0x0
bl sub_0204D654
ldr r0, _0204D734 ; =UNK_021C5A68
ldr r1, [r0, #0x0]
ldr r0, _0204D73C ; =0x000002C1
strb r4, [r1, r0]
_0204D6E4:
ldr r4, [r5, #0x38]
cmp r4, #0x0
beq _0204D6F8
bl sub_02031190
ldr r1, _0204D734 ; =UNK_021C5A68
lsl r0, r0, #0x2
ldr r1, [r1, #0x0]
add r0, r1, r0
str r4, [r0, #0x8]
_0204D6F8:
bl sub_02030F40
cmp r0, #0x0
beq _0204D712
bl sub_02031190
cmp r0, #0x0
bne _0204D712
ldr r1, _0204D734 ; =UNK_021C5A68
mov r0, #0x0
ldr r1, [r1, #0x0]
bl sub_0204D89C
_0204D712:
bl sub_02030F40
cmp r0, #0x0
beq _0204D732
bl sub_02031190
cmp r0, #0x0
bne _0204D732
ldr r0, _0204D734 ; =UNK_021C5A68
ldr r1, [r0, #0x0]
ldr r0, _0204D738 ; =0x000002BE
ldrb r0, [r1, r0]
cmp r0, #0x0
bne _0204D732
bl sub_0204EC28
_0204D732:
pop {r3-r5, pc}
.balign 4
_0204D734: .word UNK_021C5A68
_0204D738: .word 0x000002BE
_0204D73C: .word 0x000002C1
thumb_func_start sub_0204D740
sub_0204D740: ; 0x0204D740
mov r0, #0x20
tst r0, r1
beq _0204D74A
mov r0, #0x2
bx lr
_0204D74A:
mov r0, #0x10
tst r0, r1
beq _0204D754
mov r0, #0x3
bx lr
_0204D754:
mov r0, #0x40
tst r0, r1
beq _0204D75E
mov r0, #0x0
bx lr
_0204D75E:
mov r0, #0x80
tst r1, r0
beq _0204D768
mov r0, #0x1
bx lr
_0204D768:
sub r0, #0x81
bx lr
thumb_func_start sub_0204D76C
sub_0204D76C: ; 0x0204D76C
push {r4-r6, lr}
add r5, r0, #0x0
ldr r0, _0204D7AC ; =UNK_021C5A68
add r6, r1, #0x0
ldr r0, [r0, #0x0]
ldr r0, [r0, #0x54]
bl sub_02034B64
add r4, r0, #0x0
ldr r0, _0204D7AC ; =UNK_021C5A68
ldr r0, [r0, #0x0]
ldr r0, [r0, #0x54]
bl sub_02034B6C
mov r2, #0x0
cmp r4, #0x0
ble _0204D7A6
_0204D78E:
ldrh r1, [r0, #0x18]
cmp r5, r1
bne _0204D79E
ldrh r1, [r0, #0x1a]
cmp r6, r1
bne _0204D79E
mov r0, #0x1
pop {r4-r6, pc}
_0204D79E:
add r2, r2, #0x1
add r0, #0x20
cmp r2, r4
blt _0204D78E
_0204D7A6:
mov r0, #0x0
pop {r4-r6, pc}
nop
_0204D7AC: .word UNK_021C5A68
thumb_func_start sub_0204D7B0
sub_0204D7B0: ; 0x0204D7B0
push {r3-r7, lr}
add r5, r0, #0x0
ldr r0, _0204D824 ; =0x0000FFFF
add r6, r1, #0x0
add r7, r2, #0x0
cmp r5, r0
beq _0204D812
cmp r6, r0
beq _0204D812
mov r4, #0x0
_0204D7C4:
cmp r4, r7
beq _0204D7E0
add r0, r4, #0x0
bl sub_0204E544
cmp r5, r0
bne _0204D7E0
add r0, r4, #0x0
bl sub_0204E598
cmp r6, r0
bne _0204D7E0
mov r0, #0x1
pop {r3-r7, pc}
_0204D7E0:
add r4, r4, #0x1
cmp r4, #0x8
blt _0204D7C4
add r0, r5, #0x0
add r1, r6, #0x0
bl sub_0204D76C
cmp r0, #0x0
beq _0204D7F6
mov r0, #0x1
pop {r3-r7, pc}
_0204D7F6:
ldr r0, _0204D828 ; =UNK_021C5A68
ldr r1, [r0, #0x0]
ldr r0, _0204D82C ; =0x000002BE
ldrb r0, [r1, r0]
cmp r0, #0x0
beq _0204D812
add r0, r5, #0x0
add r1, r6, #0x0
bl ov18_02246F1C
cmp r0, #0x0
bne _0204D812
mov r0, #0x1
pop {r3-r7, pc}
_0204D812:
ldr r0, _0204D828 ; =UNK_021C5A68
add r1, r5, #0x0
ldr r0, [r0, #0x0]
add r2, r6, #0x0
ldr r0, [r0, #0x54]
bl sub_0204A6B4
pop {r3-r7, pc}
nop
_0204D824: .word 0x0000FFFF
_0204D828: .word UNK_021C5A68
_0204D82C: .word 0x000002BE
thumb_func_start sub_0204D830
sub_0204D830: ; 0x0204D830
push {r3, lr}
add r1, r0, #0x0
ldr r0, _0204D858 ; =UNK_021C5A68
ldr r0, [r0, #0x0]
ldr r0, [r0, #0x4]
cmp r0, #0x0
beq _0204D852
bl ov18_02244D40
bl ov18_02244DA0
cmp r0, #0x0
bne _0204D84E
mov r0, #0x1
pop {r3, pc}
_0204D84E:
mov r0, #0x0
pop {r3, pc}
_0204D852:
mov r0, #0x0
pop {r3, pc}
nop
_0204D858: .word UNK_021C5A68
thumb_func_start sub_0204D85C
sub_0204D85C: ; 0x0204D85C
cmp r0, #0x5
bge _0204D864
mov r0, #0x8
bx lr
_0204D864:
cmp r0, #0xa
bge _0204D86C
mov r0, #0x4
bx lr
_0204D86C:
mov r0, #0x2
bx lr
thumb_func_start sub_0204D870
sub_0204D870: ; 0x0204D870
push {r3-r4, lr}
sub sp, #0x14
ldr r3, _0204D898 ; =UNK_020F5824
add r4, r0, #0x0
ldmia r3!, {r0-r1}
add r2, sp, #0x0
stmia r2!, {r0-r1}
ldmia r3!, {r0-r1}
stmia r2!, {r0-r1}
ldr r0, [r3, #0x0]
cmp r4, #0x5
str r0, [r2, #0x0]
blt _0204D88E
bl GF_AssertFail
_0204D88E:
lsl r1, r4, #0x2
add r0, sp, #0x0
ldr r0, [r0, r1]
add sp, #0x14
pop {r3-r4, pc}
.balign 4
_0204D898: .word UNK_020F5824
thumb_func_start sub_0204D89C
sub_0204D89C: ; 0x0204D89C
push {r3-r7, lr}
sub sp, #0x18
mov r5, #0x0
add r0, r5, #0x0
ldr r6, _0204DAF4 ; =UNK_021C5A68
str r5, [sp, #0x4]
str r0, [sp, #0x0]
_0204D8AA:
ldr r0, [r6, #0x0]
add r1, r0, r5
add r1, #0x48
ldrb r1, [r1, #0x0]
cmp r1, #0x0
beq _0204D976
add r1, r0, r5
add r1, #0xe2
ldrb r1, [r1, #0x0]
cmp r1, #0x0
beq _0204D976
add r1, r0, r5
add r1, #0xea
ldrb r1, [r1, #0x0]
cmp r1, #0x0
beq _0204D976
add r2, r0, #0x0
ldr r1, [sp, #0x0]
add r2, #0x62
ldr r0, [r0, #0x4]
add r4, r2, r1
cmp r0, #0x0
beq _0204D8E0
add r1, r5, #0x0
bl ov18_02244D40
str r0, [sp, #0x4]
_0204D8E0:
ldr r1, [r6, #0x0]
ldr r0, _0204DAF8 ; =0x000002BE
ldrb r0, [r1, r0]
cmp r0, #0x0
beq _0204D8F4
add r0, r5, #0x0
bl ov18_02245F4C
cmp r0, #0x0
bne _0204D976
_0204D8F4:
ldr r0, [r6, #0x0]
ldr r1, _0204DAFC ; =0x0000013A
add r0, r0, r5
ldrb r1, [r0, r1]
cmp r1, #0x0
beq _0204D90A
ldr r1, _0204DAFC ; =0x0000013A
ldrb r1, [r0, r1]
sub r2, r1, #0x1
ldr r1, _0204DAFC ; =0x0000013A
strb r2, [r0, r1]
_0204D90A:
ldr r0, [r6, #0x0]
ldr r1, _0204DAFC ; =0x0000013A
add r2, r0, r5
ldrb r1, [r2, r1]
cmp r1, #0x0
bne _0204D93C
ldr r1, _0204DAF8 ; =0x000002BE
ldrb r0, [r0, r1]
cmp r0, #0x0
beq _0204D93C
add r0, r5, #0x0
bl ov18_0223F8D8
cmp r0, #0x0
bne _0204D976
add r0, r5, #0x0
bl sub_0204D830
cmp r0, #0x0
bne _0204D93C
add r0, r5, #0x0
bl ov18_02247544
cmp r0, #0x0
bne _0204D976
_0204D93C:
ldr r0, [sp, #0x4]
cmp r0, #0x0
beq _0204D94A
bl ov18_02244DB0
cmp r0, #0x0
beq _0204D976
_0204D94A:
ldr r0, [r6, #0x0]
add r0, r0, r5
add r0, #0xf2
ldrb r0, [r0, #0x0]
cmp r0, #0x0
beq _0204D95A
mov r7, #0x0
b _0204D962
_0204D95A:
add r0, r5, #0x0
bl sub_02030F88
add r7, r0, #0x0
_0204D962:
add r0, r5, #0x0
bl sub_02030F74
strb r0, [r4, #0x5]
ldr r0, [r6, #0x0]
add r1, r0, r5
ldr r0, _0204DAFC ; =0x0000013A
ldrb r0, [r1, r0]
cmp r0, #0x0
beq _0204D978
_0204D976:
b _0204DAE2
_0204D978:
ldr r0, _0204DB00 ; =0x0000010A
ldr r2, _0204DB04 ; =0x0000012A
ldrb r0, [r1, r0]
ldrb r1, [r1, r2]
bl sub_0204D85C
str r0, [sp, #0x10]
ldr r1, [sp, #0x10]
add r0, r5, #0x0
bl sub_0204E084
cmp r0, #0x0
beq _0204D9A8
ldr r0, [r6, #0x0]
ldr r1, [sp, #0x10]
add r2, r0, r5
ldr r0, _0204DAFC ; =0x0000013A
strb r1, [r2, r0]
ldr r0, [r6, #0x0]
mov r1, #0x1
add r2, r0, r5
ldr r0, _0204DB08 ; =0x00000132
strb r1, [r2, r0]
b _0204DAE2
_0204D9A8:
ldrb r0, [r4, #0x7]
cmp r0, #0x1
bne _0204D9B8
ldr r0, [r6, #0x0]
mov r1, #0x1
add r2, r0, r5
ldr r0, _0204DB08 ; =0x00000132
strb r1, [r2, r0]
_0204D9B8:
mov r0, #0x0
strb r0, [r4, #0x7]
ldr r0, [r6, #0x0]
ldr r1, _0204DB0C ; =0x00000122
add r0, r0, r5
ldrb r1, [r0, r1]
cmp r1, #0x2
bne _0204D9DE
add r1, sp, #0x14
strb r5, [r1, #0x1]
ldr r1, _0204DB0C ; =0x00000122
mov r2, #0x1
strb r2, [r0, r1]
add r1, sp, #0x14
mov r0, #0x28
add r1, #0x1
bl sub_02030C4C
b _0204DAE2
_0204D9DE:
add r0, r7, #0x0
add r1, r7, #0x0
bl sub_0204D740
add r7, r0, #0x0
add r0, r5, #0x0
bl sub_0204E62C
str r0, [sp, #0xc]
add r0, r5, #0x0
bl sub_0204E664
str r0, [sp, #0x8]
ldr r1, [sp, #0xc]
ldr r0, _0204DB10 ; =0x0000FFFF
cmp r1, r0
beq _0204DAE2
ldr r1, [sp, #0x8]
cmp r1, r0
beq _0204DAE2
mov r0, #0x0
mvn r0, r0
cmp r7, r0
beq _0204DAE2
mov r0, #0x4
ldrsb r0, [r4, r0]
cmp r0, r7
beq _0204DA44
strb r7, [r4, #0x4]
ldr r0, [r6, #0x0]
mov r1, #0x4
add r2, r0, r5
ldr r0, _0204DAFC ; =0x0000013A
strb r1, [r2, r0]
ldr r0, [r6, #0x0]
mov r1, #0x1
add r2, r0, r5
ldr r0, _0204DB08 ; =0x00000132
strb r1, [r2, r0]
ldr r0, [r6, #0x0]
ldr r1, _0204DB0C ; =0x00000122
add r0, r0, r5
ldrb r1, [r0, r1]
cmp r1, #0x2
bls _0204DAE2
ldr r1, _0204DB0C ; =0x00000122
ldrb r1, [r0, r1]
sub r2, r1, #0x1
ldr r1, _0204DB0C ; =0x00000122
strb r2, [r0, r1]
b _0204DAE2
_0204DA44:
ldr r0, [r6, #0x0]
ldr r1, _0204DB0C ; =0x00000122
add r2, r0, r5
ldrb r1, [r2, r1]
cmp r1, #0x0
bne _0204DAE2
ldr r1, _0204DAF8 ; =0x000002BE
ldrb r0, [r0, r1]
cmp r0, #0x0
beq _0204DA66
ldr r1, [sp, #0xc]
ldr r2, [sp, #0x8]
add r0, r5, #0x0
bl ov18_0224566C
cmp r0, #0x1
beq _0204DAE2
_0204DA66:
ldr r0, [sp, #0xc]
ldr r1, [sp, #0x8]
add r2, r5, #0x0
bl sub_0204D7B0
cmp r0, #0x0
beq _0204DA8E
mov r0, #0x1
strb r0, [r4, #0x7]
ldr r0, [r6, #0x0]
mov r1, #0x1
add r2, r0, r5
ldr r0, _0204DB08 ; =0x00000132
strb r1, [r2, r0]
ldr r0, [r6, #0x0]
mov r1, #0x4
add r2, r0, r5
ldr r0, _0204DAFC ; =0x0000013A
strb r1, [r2, r0]
b _0204DAE2
_0204DA8E:
ldr r0, [r6, #0x0]
mov r1, #0x1
add r2, r0, r5
ldr r0, _0204DB08 ; =0x00000132
strb r1, [r2, r0]
ldr r0, [sp, #0xc]
strh r0, [r4, #0x0]
ldr r0, [sp, #0x8]
strh r0, [r4, #0x2]
strb r7, [r4, #0x4]
ldrb r0, [r4, #0x5]
bl sub_0204D870
ldr r1, [r6, #0x0]
add r2, r1, r5
ldr r1, _0204DAFC ; =0x0000013A
strb r0, [r2, r1]
ldr r0, [r6, #0x0]
sub r1, #0x20
add r0, r0, r5
ldrb r1, [r0, r1]
cmp r1, #0x0
beq _0204DAE2
ldr r1, _0204DB14 ; =0x0000011A
ldrb r1, [r0, r1]
sub r2, r1, #0x1
ldr r1, _0204DB14 ; =0x0000011A
strb r2, [r0, r1]
ldr r0, [r6, #0x0]
add r1, r0, r5
ldr r0, _0204DB14 ; =0x0000011A
ldrb r0, [r1, r0]
cmp r0, #0x0
bne _0204DAE2
mov r1, #0x1
add r0, sp, #0x14
strb r1, [r0, #0x0]
add r0, r5, #0x0
add r2, sp, #0x14
mov r3, #0x0
bl ov18_0224089C
_0204DAE2:
ldr r0, [sp, #0x0]
add r5, r5, #0x1
add r0, #0x8
str r0, [sp, #0x0]
cmp r5, #0x8
bge _0204DAF0
b _0204D8AA
_0204DAF0:
add sp, #0x18
pop {r3-r7, pc}
.balign 4
_0204DAF4: .word UNK_021C5A68
_0204DAF8: .word 0x000002BE
_0204DAFC: .word 0x0000013A
_0204DB00: .word 0x0000010A
_0204DB04: .word 0x0000012A
_0204DB08: .word 0x00000132
_0204DB0C: .word 0x00000122
_0204DB10: .word 0x0000FFFF
_0204DB14: .word 0x0000011A
thumb_func_start sub_0204DB18
sub_0204DB18: ; 0x0204DB18
push {r3-r7, lr}
ldr r5, _0204DBC0 ; =UNK_021C5A68
add r7, r0, #0x0
ldr r0, [r5, #0x0]
add r3, r2, #0x0
cmp r0, #0x0
beq _0204DBBC
add r2, r0, #0x0
ldrb r4, [r3, #0x4]
add r2, #0x62
lsl r1, r7, #0x3
add r2, r2, r1
mov r1, #0x80
tst r1, r4
beq _0204DB3E
ldr r1, _0204DBC4 ; =0x000002BB
mov r2, #0x1
strb r2, [r0, r1]
pop {r3-r7, pc}
_0204DB3E:
mov r0, #0x4
ldrsb r1, [r2, r0]
sub r0, r0, #0x5
cmp r1, r0
bne _0204DB5A
ldr r4, _0204DBC8 ; =0x00000132
mov r1, #0x0
mov r0, #0x1
_0204DB4E:
ldr r6, [r5, #0x0]
add r6, r6, r1
add r1, r1, #0x1
strb r0, [r6, r4]
cmp r1, #0x8
blt _0204DB4E
_0204DB5A:
mov r0, #0x0
strh r0, [r2, #0x0]
strh r0, [r2, #0x2]
ldrh r1, [r2, #0x0]
ldrb r0, [r3, #0x0]
add r0, r1, r0
strh r0, [r2, #0x0]
ldrb r1, [r3, #0x1]
ldrh r0, [r2, #0x0]
lsl r4, r1, #0x8
mov r1, #0xff
lsl r1, r1, #0x8
and r4, r1
add r0, r0, r4
strh r0, [r2, #0x0]
ldrh r4, [r2, #0x2]
ldrb r0, [r3, #0x2]
add r0, r4, r0
strh r0, [r2, #0x2]
ldrb r4, [r3, #0x3]
ldrh r0, [r2, #0x2]
lsl r4, r4, #0x8
and r1, r4
add r0, r0, r1
strh r0, [r2, #0x2]
ldrb r1, [r3, #0x4]
mov r0, #0xf
ldr r3, _0204DBC0 ; =UNK_021C5A68
and r0, r1
strb r0, [r2, #0x4]
ldr r1, [r3, #0x0]
mov r0, #0x1
add r1, r1, r7
add r1, #0x48
strb r0, [r1, #0x0]
ldr r1, [r3, #0x0]
add r4, r1, r7
ldr r1, _0204DBC8 ; =0x00000132
strb r0, [r4, r1]
ldr r0, [r3, #0x0]
ldrh r1, [r2, #0x0]
ldrh r2, [r2, #0x2]
ldr r0, [r0, #0x54]
bl sub_0204A6B4
cmp r0, #0x0
beq _0204DBBC
bl GF_AssertFail
_0204DBBC:
pop {r3-r7, pc}
nop
_0204DBC0: .word UNK_021C5A68
_0204DBC4: .word 0x000002BB
_0204DBC8: .word 0x00000132
thumb_func_start sub_0204DBCC
sub_0204DBCC: ; 0x0204DBCC
push {r3-r5, lr}
ldr r0, _0204DC28 ; =UNK_021C5A68
ldrb r4, [r2, #0x0]
ldr r0, [r0, #0x0]
cmp r0, #0x0
beq _0204DC24
bl sub_02031190
cmp r4, r0
beq _0204DC24
ldr r0, _0204DC28 ; =UNK_021C5A68
ldr r1, [r0, #0x0]
ldr r0, _0204DC2C ; =0x000002BE
ldrb r0, [r1, r0]
cmp r0, #0x0
beq _0204DC14
add r0, r4, #0x0
bl ov18_0223E554
ldr r0, _0204DC28 ; =UNK_021C5A68
ldr r3, [r0, #0x0]
ldr r0, _0204DC30 ; =0x000002BD
ldrb r0, [r3, r0]
cmp r0, #0x0
bne _0204DC14
lsl r5, r4, #0x3
add r1, r3, r5
ldr r0, [r3, #0x54]
add r3, r3, r5
add r1, #0xa2
add r3, #0xa4
ldrh r1, [r1, #0x0]
ldrh r3, [r3, #0x0]
mov r2, #0x0
bl ov05_021E5B30
_0204DC14:
mov r1, #0x0
add r0, r4, #0x0
add r2, r1, #0x0
bl sub_0204D43C
add r0, r4, #0x0
bl sub_0202DE78
_0204DC24:
pop {r3-r5, pc}
nop
_0204DC28: .word UNK_021C5A68
_0204DC2C: .word 0x000002BE
_0204DC30: .word 0x000002BD
thumb_func_start sub_0204DC34
sub_0204DC34: ; 0x0204DC34
mov r0, #0x5
bx lr
thumb_func_start sub_0204DC38
sub_0204DC38: ; 0x0204DC38
push {r3-r5, lr}
ldrb r1, [r2, #0x0]
mov r0, #0xf
add r3, r1, #0x0
and r3, r0
ldr r0, _0204DCB0 ; =UNK_021C5A68
ldr r1, [r0, #0x0]
cmp r1, #0x0
beq _0204DCAC
ldrb r4, [r2, #0x2]
add r1, #0xa2
lsl r0, r3, #0x3
add r1, r1, r0
mov r0, #0x80
tst r0, r4
beq _0204DC5C
mov r0, #0x1
b _0204DC5E
_0204DC5C:
mov r0, #0x0
_0204DC5E:
strb r0, [r1, #0x7]
mov r0, #0x0
strh r0, [r1, #0x0]
strh r0, [r1, #0x2]
ldrh r4, [r1, #0x0]
ldrb r0, [r2, #0x1]
add r0, r4, r0
strh r0, [r1, #0x0]
ldrb r4, [r2, #0x2]
ldrh r0, [r1, #0x0]
lsl r5, r4, #0x8
mov r4, #0x1
lsl r4, r4, #0x8
and r5, r4
add r0, r0, r5
strh r0, [r1, #0x0]
ldrh r5, [r1, #0x2]
ldrb r0, [r2, #0x3]
add r0, r5, r0
strh r0, [r1, #0x2]
ldrb r5, [r2, #0x2]
ldrh r0, [r1, #0x2]
lsl r5, r5, #0x7
and r4, r5
add r0, r0, r4
strh r0, [r1, #0x2]
ldrb r0, [r2, #0x0]
asr r4, r0, #0x4
mov r0, #0x3
and r4, r0
strb r4, [r1, #0x4]
ldrb r2, [r2, #0x0]
asr r2, r2, #0x6
and r0, r2
strb r0, [r1, #0x5]
lsl r0, r3, #0x18
lsr r0, r0, #0x18
bl sub_0204D328
_0204DCAC:
pop {r3-r5, pc}
nop
_0204DCB0: .word UNK_021C5A68
thumb_func_start sub_0204DCB4
sub_0204DCB4: ; 0x0204DCB4
push {r3-r5, lr}
add r5, r0, #0x0
ldr r0, _0204DD10 ; =UNK_021C5A68
ldr r0, [r0, #0x0]
ldr r0, [r0, #0x54]
bl FieldSystem_GetSaveData
bl sub_02026CC4
add r4, r0, #0x0
ldr r0, _0204DD10 ; =UNK_021C5A68
ldr r0, [r0, #0x0]
ldr r0, [r0, #0x54]
bl FieldSystem_GetSaveData
bl sub_02026CB4
ldr r0, _0204DD10 ; =UNK_021C5A68
ldr r1, [r0, #0x0]
ldr r0, _0204DD14 ; =0x000002BE
ldrb r0, [r1, r0]
cmp r0, #0x0
beq _0204DD0C
bl sub_02031190
cmp r5, r0
bne _0204DD0C
add r0, r4, #0x0
bl sub_020266B0
add r0, r4, #0x0
bl sub_020266C8
cmp r0, #0x32
bne _0204DD0C
ldr r0, _0204DD10 ; =UNK_021C5A68
ldr r0, [r0, #0x0]
ldr r0, [r0, #0x54]
ldr r0, [r0, #0xc]
bl Save_GameStats_Get
mov r1, #0x25
bl GameStats_AddSpecial
_0204DD0C:
pop {r3-r5, pc}
nop
_0204DD10: .word UNK_021C5A68
_0204DD14: .word 0x000002BE
thumb_func_start sub_0204DD18
sub_0204DD18: ; 0x0204DD18
push {r3-r7, lr}
sub sp, #0x10
ldr r4, _0204DE24 ; =UNK_020F5808
add r6, r3, #0x0
add r5, r0, #0x0
add r3, sp, #0x4
mov r2, #0xc
_0204DD26:
ldrb r0, [r4, #0x0]
add r4, r4, #0x1
strb r0, [r3, #0x0]
add r3, r3, #0x1
sub r2, r2, #0x1
bne _0204DD26
ldr r0, _0204DE28 ; =UNK_021C5A68
ldr r2, _0204DE2C ; =0x00000102
ldr r0, [r0, #0x0]
add r3, r0, r5
ldrsb r3, [r3, r2]
mov r2, #0x0
mvn r2, r2
cmp r3, r2
beq _0204DD4E
lsl r7, r5, #0x2
add r0, r0, r7
ldr r0, [r0, #0x8]
cmp r0, #0x0
bne _0204DD54
_0204DD4E:
add sp, #0x10
mov r0, #0x0
pop {r3-r7, pc}
_0204DD54:
cmp r1, #0x0
bne _0204DD5E
add sp, #0x10
mov r0, #0x1
pop {r3-r7, pc}
_0204DD5E:
bl PlayerAvatar_GetMapObject
add r4, r0, #0x0
ldr r0, _0204DE28 ; =UNK_021C5A68
ldr r1, [r0, #0x0]
add r0, r7, #0x0
add r0, r1, r0
ldr r0, [r0, #0x8]
bl PlayerAvatar_GetFacingDirection
str r0, [sp, #0x0]
ldr r0, _0204DE28 ; =UNK_021C5A68
ldr r0, [r0, #0x0]
add r1, r0, r5
ldr r0, _0204DE2C ; =0x00000102
ldrsb r0, [r1, r0]
bl sub_0204F610
ldr r1, [sp, #0x0]
cmp r1, r0
beq _0204DDB4
add r0, r4, #0x0
mov r1, #0x80
bl MapObject_ClearFlagsBits
ldr r0, _0204DE28 ; =UNK_021C5A68
ldr r0, [r0, #0x0]
add r1, r0, r5
ldr r0, _0204DE2C ; =0x00000102
ldrsb r0, [r1, r0]
bl sub_0204F610
add r1, r0, #0x0
ldr r0, _0204DE28 ; =UNK_021C5A68
ldr r0, [r0, #0x0]
add r0, r0, r7
ldr r0, [r0, #0x8]
bl PlayerAvatar_SetFacingDirection
add r0, r4, #0x0
mov r1, #0x80
bl MapObject_SetFlagsBits
_0204DDB4:
add r0, r4, #0x0
bl sub_0205AE28
add r0, r4, #0x0
bl sub_0205AD98
cmp r0, #0x1
bne _0204DE1C
add r0, r5, #0x0
bl sub_0204DCB4
cmp r6, #0x0
beq _0204DDD8
cmp r6, #0x1
beq _0204DDEE
cmp r6, #0x2
beq _0204DE06
b _0204DE1C
_0204DDD8:
ldr r1, _0204DE28 ; =UNK_021C5A68
add r0, r4, #0x0
ldr r1, [r1, #0x0]
add r2, r1, r5
ldr r1, _0204DE2C ; =0x00000102
ldrsb r2, [r2, r1]
add r1, sp, #0x4
ldrb r1, [r1, r2]
bl sub_0205ADDC
b _0204DE1C
_0204DDEE:
ldr r1, _0204DE28 ; =UNK_021C5A68
add r0, r4, #0x0
ldr r1, [r1, #0x0]
add r2, r1, r5
ldr r1, _0204DE2C ; =0x00000102
ldrsb r1, [r2, r1]
add r2, r1, #0x4
add r1, sp, #0x4
ldrb r1, [r1, r2]
bl sub_0205ADDC
b _0204DE1C
_0204DE06:
ldr r1, _0204DE28 ; =UNK_021C5A68
add r0, r4, #0x0
ldr r1, [r1, #0x0]
add r2, r1, r5
ldr r1, _0204DE2C ; =0x00000102
ldrsb r2, [r2, r1]
add r1, sp, #0x4
add r2, #0x8
ldrb r1, [r1, r2]
bl sub_0205ADDC
_0204DE1C:
mov r0, #0x1
add sp, #0x10
pop {r3-r7, pc}
nop
_0204DE24: .word UNK_020F5808
_0204DE28: .word UNK_021C5A68
_0204DE2C: .word 0x00000102
thumb_func_start sub_0204DE30
sub_0204DE30: ; 0x0204DE30
push {r4-r7, lr}
sub sp, #0x1c
add r4, r0, #0x0
ldr r0, _0204E06C ; =UNK_021C5A68
lsl r1, r4, #0x3
ldr r0, [r0, #0x0]
add r2, r0, #0x0
add r2, #0xa2
add r5, r2, r1
ldr r1, _0204E070 ; =0x00000142
add r2, r0, r1
ldrb r1, [r2, r4]
cmp r1, #0x0
beq _0204DE54
sub r0, r1, #0x1
add sp, #0x1c
strb r0, [r2, r4]
pop {r4-r7, pc}
_0204DE54:
ldrh r2, [r5, #0x0]
ldr r1, _0204E074 ; =0x0000FFFF
cmp r2, r1
beq _0204DF08
ldrh r2, [r5, #0x2]
cmp r2, r1
beq _0204DF08
ldr r1, _0204E078 ; =0x000002BD
ldrb r2, [r0, r1]
cmp r2, #0x0
bne _0204DF08
add r1, r1, #0x1
ldrb r0, [r0, r1]
cmp r0, #0x0
bne _0204DE86
bl sub_02031190
cmp r4, r0
bne _0204DE86
ldr r0, _0204E06C ; =UNK_021C5A68
ldr r1, [r0, #0x0]
ldr r0, _0204E07C ; =0x000002C1
ldrb r0, [r1, r0]
cmp r0, #0x0
beq _0204DF08
_0204DE86:
ldr r0, _0204E06C ; =UNK_021C5A68
ldr r1, [r0, #0x0]
lsl r0, r4, #0x2
add r0, r1, r0
ldr r0, [r0, #0x8]
str r0, [sp, #0x18]
cmp r0, #0x0
bne _0204DE98
b _0204E068
_0204DE98:
bl PlayerAvatar_GetXCoord
ldrh r1, [r5, #0x0]
sub r0, r0, r1
str r0, [sp, #0x10]
ldr r0, [sp, #0x18]
bl PlayerAvatar_GetZCoord
ldrh r1, [r5, #0x2]
sub r7, r0, r1
ldr r0, [sp, #0x18]
bl PlayerAvatar_GetFacingDirection
str r0, [sp, #0xc]
ldr r0, [sp, #0x10]
cmp r0, #0x0
bne _0204DEC2
cmp r7, #0x0
bne _0204DEC2
mov r6, #0x0
b _0204DEEC
_0204DEC2:
ldr r0, [sp, #0x10]
bl abs
add r6, r0, #0x0
add r0, r7, #0x0
bl abs
cmp r6, r0
ble _0204DEE2
ldr r0, [sp, #0x10]
cmp r0, #0x0
ble _0204DEDE
mov r6, #0x20
b _0204DEEC
_0204DEDE:
mov r6, #0x10
b _0204DEEC
_0204DEE2:
cmp r7, #0x0
ble _0204DEEA
mov r6, #0x40
b _0204DEEC
_0204DEEA:
mov r6, #0x80
_0204DEEC:
add r0, r7, #0x0
bl abs
ldr r0, [sp, #0x10]
bl abs
ldrb r3, [r5, #0x5]
add r0, r4, #0x0
add r1, r6, #0x0
add r2, r6, #0x0
bl sub_0204DD18
cmp r0, #0x0
beq _0204DF0A
_0204DF08:
b _0204E068
_0204DF0A:
ldrb r0, [r5, #0x5]
mov r7, #0xff
str r0, [sp, #0x14]
cmp r0, #0x3
bhi _0204DF46
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #0x6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_0204DF20: ; jump table (using 16-bit offset)
.short _0204DF28 - _0204DF20 - 2; case 0
.short _0204DF2E - _0204DF20 - 2; case 1
.short _0204DF3C - _0204DF20 - 2; case 2
.short _0204DF42 - _0204DF20 - 2; case 3
_0204DF28:
mov r0, #0x5
str r0, [sp, #0x8]
b _0204DF46
_0204DF2E:
mov r0, #0x4
str r0, [sp, #0x8]
mov r0, #0x2
orr r0, r6
lsl r0, r0, #0x10
lsr r6, r0, #0x10
b _0204DF46
_0204DF3C:
mov r0, #0x2
str r0, [sp, #0x8]
b _0204DF46
_0204DF42:
mov r0, #0x1
str r0, [sp, #0x8]
_0204DF46:
ldr r0, _0204E06C ; =UNK_021C5A68
ldr r1, [r0, #0x0]
mov r0, #0xb
lsl r0, r0, #0x6
ldrb r0, [r1, r0]
cmp r0, #0x0
beq _0204DF6C
bl sub_02031190
cmp r4, r0
bne _0204DF6C
ldr r0, _0204E06C ; =UNK_021C5A68
ldr r2, [r0, #0x0]
mov r0, #0xb
lsl r0, r0, #0x6
ldrb r1, [r2, r0]
sub r1, r1, #0x1
strb r1, [r2, r0]
b _0204E00C
_0204DF6C:
bl sub_02030FE0
cmp r0, #0x0
bne _0204DFA0
ldr r0, _0204E06C ; =UNK_021C5A68
ldr r1, [r0, #0x0]
ldr r0, _0204E080 ; =0x000002BE
ldrb r0, [r1, r0]
cmp r0, #0x0
beq _0204DFA0
bl sub_02031190
cmp r4, r0
bne _0204DFA0
mov r0, #0x1
str r0, [sp, #0x0]
mov r0, #0x0
str r0, [sp, #0x4]
ldr r0, [sp, #0x18]
ldr r3, [sp, #0x8]
add r1, r6, #0x0
add r2, r6, #0x0
bl sub_02057194
add r7, r0, #0x0
b _0204E00C
_0204DFA0:
mov r0, #0x2
add r1, r6, #0x0
bic r1, r0
bne _0204DFDE
ldrb r0, [r5, #0x7]
cmp r0, #0x0
beq _0204DFDE
mov r0, #0x3
str r0, [sp, #0x14]
mov r0, #0x4
ldrsb r0, [r5, r0]
cmp r0, #0x3
bhi _0204DFD2
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #0x6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_0204DFC6: ; jump table (using 16-bit offset)
.short _0204DFCE - _0204DFC6 - 2; case 0
.short _0204DFD2 - _0204DFC6 - 2; case 1
.short _0204DFD6 - _0204DFC6 - 2; case 2
.short _0204DFDA - _0204DFC6 - 2; case 3
_0204DFCE:
mov r7, #0x1c
b _0204E00C
_0204DFD2:
mov r7, #0x1d
b _0204E00C
_0204DFD6:
mov r7, #0x1e
b _0204E00C
_0204DFDA:
mov r7, #0x1f
b _0204E00C
_0204DFDE:
cmp r1, #0x0
bne _0204DFF6
mov r0, #0x4
ldrsb r0, [r5, r0]
ldr r1, [sp, #0xc]
cmp r0, r1
beq _0204DFF6
mov r1, #0x24
bl sub_0205AFDC
add r7, r0, #0x0
b _0204E00C
_0204DFF6:
mov r0, #0x1
str r0, [sp, #0x0]
mov r0, #0x0
str r0, [sp, #0x4]
ldr r0, [sp, #0x18]
ldr r3, [sp, #0x8]
add r1, r6, #0x0
add r2, r6, #0x0
bl sub_02057194
add r7, r0, #0x0
_0204E00C:
ldr r0, [sp, #0x18]
bl sub_02057254
cmp r0, #0x0
bne _0204E020
ldr r0, [sp, #0x18]
bl sub_020570C4
cmp r0, #0x0
beq _0204E068
_0204E020:
cmp r7, #0xff
beq _0204E068
ldr r0, [sp, #0x18]
add r1, r7, #0x0
bl sub_02057260
mov r0, #0x2
bic r6, r0
beq _0204E068
ldr r0, _0204E06C ; =UNK_021C5A68
ldr r0, [r0, #0x0]
add r1, r0, r4
ldr r0, _0204E070 ; =0x00000142
ldrb r0, [r1, r0]
cmp r0, #0x0
bne _0204E050
ldr r0, [sp, #0x14]
bl sub_0204D870
ldr r1, _0204E06C ; =UNK_021C5A68
ldr r1, [r1, #0x0]
add r2, r1, r4
ldr r1, _0204E070 ; =0x00000142
strb r0, [r2, r1]
_0204E050:
ldr r0, _0204E06C ; =UNK_021C5A68
ldr r1, [r0, #0x0]
ldr r0, _0204E070 ; =0x00000142
add r1, r1, r0
ldrb r0, [r1, r4]
cmp r0, #0x0
beq _0204E062
sub r0, r0, #0x1
strb r0, [r1, r4]
_0204E062:
add r0, r4, #0x0
bl sub_0204DCB4
_0204E068:
add sp, #0x1c
pop {r4-r7, pc}
.balign 4
_0204E06C: .word UNK_021C5A68
_0204E070: .word 0x00000142
_0204E074: .word 0x0000FFFF
_0204E078: .word 0x000002BD
_0204E07C: .word 0x000002C1
_0204E080: .word 0x000002BE
thumb_func_start sub_0204E084
sub_0204E084: ; 0x0204E084
push {r3-r7, lr}
sub sp, #0x8
add r4, r1, #0x0
ldr r1, _0204E16C ; =UNK_021C5A68
add r5, r0, #0x0
ldr r2, [r1, #0x0]
ldr r1, _0204E170 ; =0x0000010A
add r2, r2, r1
ldrb r1, [r2, r5]
cmp r1, #0x0
bne _0204E0A0
add sp, #0x8
mov r0, #0x0
pop {r3-r7, pc}
_0204E0A0:
cmp r1, #0xff
bne _0204E0AA
add sp, #0x8
mov r0, #0x1
pop {r3-r7, pc}
_0204E0AA:
sub r1, r1, #0x1
strb r1, [r2, r5]
cmp r4, #0x1
bne _0204E0B8
add sp, #0x8
mov r0, #0x1
pop {r3-r7, pc}
_0204E0B8:
bl sub_0204E544
add r6, r0, #0x0
add r0, r5, #0x0
bl sub_0204E598
str r0, [sp, #0x0]
ldr r0, _0204E16C ; =UNK_021C5A68
ldr r0, [r0, #0x0]
add r1, r0, r5
ldr r0, _0204E174 ; =0x00000112
ldrb r0, [r1, r0]
bl sub_02059BF4
add r7, r6, r0
ldr r0, _0204E16C ; =UNK_021C5A68
ldr r0, [r0, #0x0]
add r1, r0, r5
ldr r0, _0204E174 ; =0x00000112
ldrb r0, [r1, r0]
bl sub_02059C00
ldr r1, [sp, #0x0]
add r6, r1, r0
ldr r0, _0204E16C ; =UNK_021C5A68
ldr r0, [r0, #0x0]
add r1, r0, r5
ldr r0, _0204E170 ; =0x0000010A
ldrb r0, [r1, r0]
cmp r0, #0x0
beq _0204E110
add r0, r7, #0x0
add r1, r6, #0x0
add r2, r5, #0x0
bl sub_0204D7B0
cmp r0, #0x0
beq _0204E110
ldr r1, _0204E16C ; =UNK_021C5A68
mov r0, #0x1
ldr r1, [r1, #0x0]
add r2, r1, r5
ldr r1, _0204E170 ; =0x0000010A
strb r0, [r2, r1]
_0204E110:
ldr r0, _0204E16C ; =UNK_021C5A68
ldr r1, [r0, #0x0]
ldr r0, _0204E170 ; =0x0000010A
add r2, r1, r5
ldrb r0, [r2, r0]
cmp r0, #0x1
bne _0204E124
add sp, #0x8
mov r0, #0x1
pop {r3-r7, pc}
_0204E124:
cmp r0, #0x0
bne _0204E13E
mov r1, #0x1
add r0, sp, #0x4
strb r1, [r0, #0x0]
add r0, r5, #0x0
add r2, sp, #0x4
mov r3, #0x0
bl ov18_0224089C
add sp, #0x8
mov r0, #0x1
pop {r3-r7, pc}
_0204E13E:
add r1, #0x62
lsl r2, r5, #0x3
add r0, r1, r2
strh r7, [r1, r2]
strh r6, [r0, #0x2]
cmp r4, #0x2
beq _0204E156
cmp r4, #0x4
beq _0204E15C
cmp r4, #0x8
beq _0204E162
b _0204E166
_0204E156:
mov r1, #0x0
strb r1, [r0, #0x5]
b _0204E166
_0204E15C:
mov r1, #0x1
strb r1, [r0, #0x5]
b _0204E166
_0204E162:
mov r1, #0x2
strb r1, [r0, #0x5]
_0204E166:
mov r0, #0x1
add sp, #0x8
pop {r3-r7, pc}
.balign 4
_0204E16C: .word UNK_021C5A68
_0204E170: .word 0x0000010A
_0204E174: .word 0x00000112
thumb_func_start sub_0204E178
sub_0204E178: ; 0x0204E178
push {r3-r7, lr}
add r5, r0, #0x0
ldr r0, _0204E1DC ; =UNK_021C5A68
add r4, r1, #0x0
ldr r1, [r0, #0x0]
lsl r0, r5, #0x3
add r1, #0x62
add r6, r1, r0
add r0, r4, #0x0
add r7, r2, #0x0
bl sub_0204F610
ldr r1, _0204E1DC ; =UNK_021C5A68
strb r0, [r6, #0x4]
ldr r0, [r1, #0x0]
add r2, r0, r5
ldr r0, _0204E1E0 ; =0x00000112
cmp r7, #0x0
strb r4, [r2, r0]
beq _0204E1B6
ldr r2, [r1, #0x0]
mov r3, #0x1
add r2, r2, r5
add r0, #0x18
strb r3, [r2, r0]
ldr r0, [r1, #0x0]
mov r2, #0x2d
add r1, r0, r5
add r0, r2, #0x0
add r0, #0xdd
b _0204E1CA
_0204E1B6:
ldr r2, [r1, #0x0]
mov r3, #0x0
add r2, r2, r5
add r0, #0x18
strb r3, [r2, r0]
ldr r0, [r1, #0x0]
mov r2, #0x1b
add r1, r0, r5
add r0, r2, #0x0
add r0, #0xef
_0204E1CA:
strb r2, [r1, r0]
ldr r0, _0204E1DC ; =UNK_021C5A68
mov r2, #0x1
ldr r0, [r0, #0x0]
add r1, r0, r5
ldr r0, _0204E1E4 ; =0x00000132
strb r2, [r1, r0]
pop {r3-r7, pc}
nop
_0204E1DC: .word UNK_021C5A68
_0204E1E0: .word 0x00000112
_0204E1E4: .word 0x00000132
thumb_func_start sub_0204E1E8
sub_0204E1E8: ; 0x0204E1E8
ldr r1, _0204E1F8 ; =UNK_021C5A68
mov r2, #0x0
ldr r1, [r1, #0x0]
add r1, r1, r0
ldr r0, _0204E1FC ; =0x0000010A
strb r2, [r1, r0]
bx lr
nop
_0204E1F8: .word UNK_021C5A68
_0204E1FC: .word 0x0000010A
thumb_func_start sub_0204E200
sub_0204E200: ; 0x0204E200
ldr r1, _0204E210 ; =UNK_021C5A68
mov r2, #0xff
ldr r1, [r1, #0x0]
add r1, r1, r0
add r0, r2, #0x0
add r0, #0xb
strb r2, [r1, r0]
bx lr
.balign 4
_0204E210: .word UNK_021C5A68
thumb_func_start sub_0204E214
sub_0204E214: ; 0x0204E214
push {r4-r6, lr}
add r5, r0, #0x0
ldr r0, _0204E24C ; =UNK_021C5A68
add r4, r1, #0x0
ldr r1, [r0, #0x0]
lsl r0, r5, #0x2
add r0, r1, r0
ldr r0, [r0, #0x8]
cmp r0, #0x0
beq _0204E248
bl PlayerAvatar_GetMapObject
mov r1, #0x80
add r6, r0, #0x0
bl MapObject_SetFlagsBits
mov r1, #0x1
add r0, r6, #0x0
lsl r1, r1, #0x8
bl MapObject_SetFlagsBits
ldr r0, _0204E24C ; =UNK_021C5A68
ldr r0, [r0, #0x0]
add r1, r0, r5
ldr r0, _0204E250 ; =0x00000102
strb r4, [r1, r0]
_0204E248:
pop {r4-r6, pc}
nop
_0204E24C: .word UNK_021C5A68
_0204E250: .word 0x00000102
thumb_func_start sub_0204E254
sub_0204E254: ; 0x0204E254
push {r3-r5, lr}
add r4, r0, #0x0
ldr r0, _0204E2A0 ; =UNK_021C5A68
ldr r1, [r0, #0x0]
lsl r0, r4, #0x2
add r0, r1, r0
ldr r0, [r0, #0x8]
cmp r0, #0x0
beq _0204E29E
add r2, r1, r4
ldr r1, _0204E2A4 ; =0x00000102
ldrsb r2, [r2, r1]
mov r1, #0x0
mvn r1, r1
cmp r2, r1
beq _0204E29E
bl PlayerAvatar_GetMapObject
add r5, r0, #0x0
bl sub_0205AE50
add r0, r5, #0x0
mov r1, #0x80
bl MapObject_ClearFlagsBits
mov r1, #0x1
add r0, r5, #0x0
lsl r1, r1, #0x8
bl MapObject_ClearFlagsBits
ldr r0, _0204E2A0 ; =UNK_021C5A68
mov r2, #0x0
ldr r0, [r0, #0x0]
mvn r2, r2
add r1, r0, r4
ldr r0, _0204E2A4 ; =0x00000102
strb r2, [r1, r0]
_0204E29E:
pop {r3-r5, pc}
.balign 4
_0204E2A0: .word UNK_021C5A68
_0204E2A4: .word 0x00000102
thumb_func_start sub_0204E2A8
sub_0204E2A8: ; 0x0204E2A8
mov r0, #0x4
bx lr
thumb_func_start sub_0204E2AC
sub_0204E2AC: ; 0x0204E2AC
ldr r3, _0204E2B0 ; =sub_0204F7FC
bx r3
.balign 4
_0204E2B0: .word sub_0204F7FC
thumb_func_start sub_0204E2B4
sub_0204E2B4: ; 0x0204E2B4
ldr r3, _0204E2B8 ; =sub_0204F7FC
bx r3
.balign 4
_0204E2B8: .word sub_0204F7FC
thumb_func_start sub_0204E2BC
sub_0204E2BC: ; 0x0204E2BC
ldr r3, _0204E2C4 ; =sub_0204F774
mov r0, #0x2
bx r3
nop
_0204E2C4: .word sub_0204F774
thumb_func_start sub_0204E2C8
sub_0204E2C8: ; 0x0204E2C8
ldr r3, _0204E2D0 ; =sub_0204F774
mov r0, #0x20
bx r3
nop
_0204E2D0: .word sub_0204F774
thumb_func_start sub_0204E2D4
sub_0204E2D4: ; 0x0204E2D4
ldr r3, _0204E2DC ; =sub_0204F774
mov r0, #0x1
bx r3
nop
_0204E2DC: .word sub_0204F774
thumb_func_start sub_0204E2E0
sub_0204E2E0: ; 0x0204E2E0
push {r3, lr}
add r1, sp, #0x0
strb r0, [r1, #0x0]
mov r0, #0x1a
add r1, sp, #0x0
bl sub_02030C4C
pop {r3, pc}
thumb_func_start sub_0204E2F0
sub_0204E2F0: ; 0x0204E2F0
ldr r3, _0204E2F8 ; =ov18_0223E4BC
ldrb r0, [r2, #0x0]
bx r3
nop
_0204E2F8: .word ov18_0223E4BC
thumb_func_start sub_0204E2FC
sub_0204E2FC: ; 0x0204E2FC
push {r3, lr}
bl sub_02031280
cmp r0, #0x0
beq _0204E30A
mov r0, #0x1
pop {r3, pc}
_0204E30A:
ldr r0, _0204E344 ; =UNK_021C5A68
ldr r0, [r0, #0x0]
cmp r0, #0x0
bne _0204E316
mov r0, #0x0
pop {r3, pc}
_0204E316:
bl sub_02031190
bl sub_02030E7C
cmp r0, #0x0
bne _0204E326
mov r0, #0x0
pop {r3, pc}
_0204E326:
ldr r0, _0204E344 ; =UNK_021C5A68
ldr r1, [r0, #0x0]
ldr r0, _0204E348 ; =0x000002BE
ldrb r0, [r1, r0]
cmp r0, #0x0
beq _0204E33E
bl sub_0204FE5C
cmp r0, #0x0
bne _0204E33E
mov r0, #0x0
pop {r3, pc}
_0204E33E:
mov r0, #0x1
pop {r3, pc}
nop
_0204E344: .word UNK_021C5A68
_0204E348: .word 0x000002BE
thumb_func_start sub_0204E34C
sub_0204E34C: ; 0x0204E34C
ldr r1, _0204E358 ; =UNK_021C5A68
ldr r1, [r1, #0x0]
add r0, r1, r0
add r0, #0x48
ldrb r0, [r0, #0x0]
bx lr
.balign 4
_0204E358: .word UNK_021C5A68
thumb_func_start sub_0204E35C
sub_0204E35C: ; 0x0204E35C
push {r4, lr}
add r4, r0, #0x0
ldr r0, _0204E39C ; =UNK_021C5A68
ldr r0, [r0, #0x0]
cmp r0, #0x0
bne _0204E36C
ldr r0, _0204E3A0 ; =0x0000FFFF
pop {r4, pc}
_0204E36C:
bl sub_02031190
cmp r4, r0
bne _0204E382
ldr r0, _0204E39C ; =UNK_021C5A68
ldr r1, [r0, #0x0]
lsl r0, r4, #0x3
add r0, r1, r0
add r0, #0xa2
ldrh r0, [r0, #0x0]
pop {r4, pc}
_0204E382:
bl sub_0204E2FC
cmp r0, #0x0
beq _0204E398
ldr r0, _0204E39C ; =UNK_021C5A68
ldr r1, [r0, #0x0]
lsl r0, r4, #0x3
add r0, r1, r0
add r0, #0xa2
ldrh r0, [r0, #0x0]
pop {r4, pc}
_0204E398:
ldr r0, _0204E3A0 ; =0x0000FFFF
pop {r4, pc}
.balign 4
_0204E39C: .word UNK_021C5A68
_0204E3A0: .word 0x0000FFFF
thumb_func_start sub_0204E3A4
sub_0204E3A4: ; 0x0204E3A4
push {r4, lr}
add r4, r0, #0x0
ldr r0, _0204E3E4 ; =UNK_021C5A68
ldr r0, [r0, #0x0]
cmp r0, #0x0
bne _0204E3B4
ldr r0, _0204E3E8 ; =0x0000FFFF
pop {r4, pc}
_0204E3B4:
bl sub_02031190
cmp r4, r0
bne _0204E3CA
ldr r0, _0204E3E4 ; =UNK_021C5A68
ldr r1, [r0, #0x0]
lsl r0, r4, #0x3
add r0, r1, r0
add r0, #0xa4
ldrh r0, [r0, #0x0]
pop {r4, pc}
_0204E3CA:
bl sub_0204E2FC
cmp r0, #0x0
beq _0204E3E0
ldr r0, _0204E3E4 ; =UNK_021C5A68
ldr r1, [r0, #0x0]
lsl r0, r4, #0x3
add r0, r1, r0
add r0, #0xa4
ldrh r0, [r0, #0x0]
pop {r4, pc}
_0204E3E0:
ldr r0, _0204E3E8 ; =0x0000FFFF
pop {r4, pc}
.balign 4
_0204E3E4: .word UNK_021C5A68
_0204E3E8: .word 0x0000FFFF
thumb_func_start sub_0204E3EC
sub_0204E3EC: ; 0x0204E3EC
push {r4, lr}
add r4, r0, #0x0
ldr r0, _0204E438 ; =UNK_021C5A68
ldr r0, [r0, #0x0]
cmp r0, #0x0
bne _0204E3FC
ldr r0, _0204E43C ; =0x0000FFFF
pop {r4, pc}
_0204E3FC:
bl sub_02031190
cmp r4, r0
bne _0204E412
ldr r0, _0204E438 ; =UNK_021C5A68
ldr r1, [r0, #0x0]
lsl r0, r4, #0x3
add r0, r1, r0
add r0, #0xa2
ldrh r0, [r0, #0x0]
pop {r4, pc}
_0204E412:
bl sub_0204E2FC
cmp r0, #0x0
beq _0204E428
ldr r0, _0204E438 ; =UNK_021C5A68
ldr r1, [r0, #0x0]
add r0, r1, r4
add r0, #0x48
ldrb r0, [r0, #0x0]
cmp r0, #0x0
bne _0204E42C
_0204E428:
ldr r0, _0204E43C ; =0x0000FFFF
pop {r4, pc}
_0204E42C:
lsl r0, r4, #0x3
add r0, r1, r0
add r0, #0xa2
ldrh r0, [r0, #0x0]
pop {r4, pc}
nop
_0204E438: .word UNK_021C5A68
_0204E43C: .word 0x0000FFFF
thumb_func_start sub_0204E440
sub_0204E440: ; 0x0204E440
push {r4, lr}
add r4, r0, #0x0
ldr r0, _0204E48C ; =UNK_021C5A68
ldr r0, [r0, #0x0]
cmp r0, #0x0
bne _0204E450
ldr r0, _0204E490 ; =0x0000FFFF
pop {r4, pc}
_0204E450:
bl sub_02031190
cmp r4, r0
bne _0204E466
ldr r0, _0204E48C ; =UNK_021C5A68
ldr r1, [r0, #0x0]
lsl r0, r4, #0x3
add r0, r1, r0
add r0, #0xa4
ldrh r0, [r0, #0x0]
pop {r4, pc}
_0204E466:
bl sub_0204E2FC
cmp r0, #0x0
beq _0204E47C
ldr r0, _0204E48C ; =UNK_021C5A68
ldr r1, [r0, #0x0]
add r0, r1, r4
add r0, #0x48
ldrb r0, [r0, #0x0]
cmp r0, #0x0
bne _0204E480
_0204E47C:
ldr r0, _0204E490 ; =0x0000FFFF
pop {r4, pc}
_0204E480:
lsl r0, r4, #0x3
add r0, r1, r0
add r0, #0xa4
ldrh r0, [r0, #0x0]
pop {r4, pc}
nop
_0204E48C: .word UNK_021C5A68
_0204E490: .word 0x0000FFFF
thumb_func_start sub_0204E494
sub_0204E494: ; 0x0204E494
ldr r1, _0204E4AC ; =UNK_021C5A68
ldr r1, [r1, #0x0]
cmp r1, #0x0
beq _0204E4A6
lsl r0, r0, #0x3
add r0, r1, r0
add r0, #0xa2
ldrh r0, [r0, #0x0]
bx lr
_0204E4A6:
ldr r0, _0204E4B0 ; =0x0000FFFF
bx lr
nop
_0204E4AC: .word UNK_021C5A68
_0204E4B0: .word 0x0000FFFF
thumb_func_start sub_0204E4B4
sub_0204E4B4: ; 0x0204E4B4
ldr r1, _0204E4CC ; =UNK_021C5A68
ldr r1, [r1, #0x0]
cmp r1, #0x0
beq _0204E4C6
lsl r0, r0, #0x3
add r0, r1, r0
add r0, #0xa4
ldrh r0, [r0, #0x0]
bx lr
_0204E4C6:
ldr r0, _0204E4D0 ; =0x0000FFFF
bx lr
nop
_0204E4CC: .word UNK_021C5A68
_0204E4D0: .word 0x0000FFFF
thumb_func_start sub_0204E4D4
sub_0204E4D4: ; 0x0204E4D4
push {r4, lr}
add r4, r0, #0x0
bl sub_0204E3EC
ldr r1, _0204E504 ; =0x0000FFFF
cmp r0, r1
bne _0204E4E6
add r0, r1, #0x0
pop {r4, pc}
_0204E4E6:
ldr r0, _0204E508 ; =UNK_021C5A68
lsl r4, r4, #0x3
ldr r0, [r0, #0x0]
add r1, r0, r4
mov r0, #0xa6
ldrsb r0, [r1, r0]
bl sub_02059BF4
ldr r1, _0204E508 ; =UNK_021C5A68
ldr r1, [r1, #0x0]
add r1, r1, r4
add r1, #0xa2
ldrh r1, [r1, #0x0]
add r0, r1, r0
pop {r4, pc}
.balign 4
_0204E504: .word 0x0000FFFF
_0204E508: .word UNK_021C5A68
thumb_func_start sub_0204E50C
sub_0204E50C: ; 0x0204E50C
push {r4, lr}
add r4, r0, #0x0
bl sub_0204E440
ldr r1, _0204E53C ; =0x0000FFFF
cmp r0, r1
bne _0204E51E
add r0, r1, #0x0
pop {r4, pc}
_0204E51E:
ldr r0, _0204E540 ; =UNK_021C5A68
lsl r4, r4, #0x3
ldr r0, [r0, #0x0]
add r1, r0, r4
mov r0, #0xa6
ldrsb r0, [r1, r0]
bl sub_02059C00
ldr r1, _0204E540 ; =UNK_021C5A68
ldr r1, [r1, #0x0]
add r1, r1, r4
add r1, #0xa4
ldrh r1, [r1, #0x0]
add r0, r1, r0
pop {r4, pc}
.balign 4
_0204E53C: .word 0x0000FFFF
_0204E540: .word UNK_021C5A68
thumb_func_start sub_0204E544
sub_0204E544: ; 0x0204E544
push {r4, lr}
add r4, r0, #0x0
ldr r0, _0204E590 ; =UNK_021C5A68
ldr r0, [r0, #0x0]
cmp r0, #0x0
bne _0204E554
ldr r0, _0204E594 ; =0x0000FFFF
pop {r4, pc}
_0204E554:
bl sub_02031190
cmp r4, r0
bne _0204E56A
ldr r0, _0204E590 ; =UNK_021C5A68
ldr r1, [r0, #0x0]
lsl r0, r4, #0x3
add r0, r1, r0
add r0, #0x62
ldrh r0, [r0, #0x0]
pop {r4, pc}
_0204E56A:
bl sub_0204E2FC
cmp r0, #0x0
beq _0204E580
ldr r0, _0204E590 ; =UNK_021C5A68
ldr r1, [r0, #0x0]
add r0, r1, r4
add r0, #0x48
ldrb r0, [r0, #0x0]
cmp r0, #0x0
bne _0204E584
_0204E580:
ldr r0, _0204E594 ; =0x0000FFFF
pop {r4, pc}
_0204E584:
lsl r0, r4, #0x3
add r0, r1, r0
add r0, #0x62
ldrh r0, [r0, #0x0]
pop {r4, pc}
nop
_0204E590: .word UNK_021C5A68
_0204E594: .word 0x0000FFFF
thumb_func_start sub_0204E598
sub_0204E598: ; 0x0204E598
push {r4, lr}
add r4, r0, #0x0
ldr r0, _0204E5E4 ; =UNK_021C5A68
ldr r0, [r0, #0x0]
cmp r0, #0x0
bne _0204E5A8
ldr r0, _0204E5E8 ; =0x0000FFFF
pop {r4, pc}
_0204E5A8:
bl sub_02031190
cmp r4, r0
bne _0204E5BE
ldr r0, _0204E5E4 ; =UNK_021C5A68
ldr r1, [r0, #0x0]
lsl r0, r4, #0x3
add r0, r1, r0
add r0, #0x64
ldrh r0, [r0, #0x0]
pop {r4, pc}
_0204E5BE:
bl sub_0204E2FC
cmp r0, #0x0
beq _0204E5D4
ldr r0, _0204E5E4 ; =UNK_021C5A68
ldr r1, [r0, #0x0]
add r0, r1, r4
add r0, #0x48
ldrb r0, [r0, #0x0]
cmp r0, #0x0
bne _0204E5D8
_0204E5D4:
ldr r0, _0204E5E8 ; =0x0000FFFF
pop {r4, pc}
_0204E5D8:
lsl r0, r4, #0x3
add r0, r1, r0
add r0, #0x64
ldrh r0, [r0, #0x0]
pop {r4, pc}
nop
_0204E5E4: .word UNK_021C5A68
_0204E5E8: .word 0x0000FFFF
thumb_func_start sub_0204E5EC
sub_0204E5EC: ; 0x0204E5EC
ldr r1, _0204E604 ; =UNK_021C5A68
ldr r1, [r1, #0x0]
cmp r1, #0x0
beq _0204E5FE
lsl r0, r0, #0x3
add r0, r1, r0
add r0, #0x62
ldrh r0, [r0, #0x0]
bx lr
_0204E5FE:
ldr r0, _0204E608 ; =0x0000FFFF
bx lr
nop
_0204E604: .word UNK_021C5A68
_0204E608: .word 0x0000FFFF
thumb_func_start sub_0204E60C
sub_0204E60C: ; 0x0204E60C
ldr r1, _0204E624 ; =UNK_021C5A68
ldr r1, [r1, #0x0]
cmp r1, #0x0
beq _0204E61E
lsl r0, r0, #0x3
add r0, r1, r0
add r0, #0x64
ldrh r0, [r0, #0x0]
bx lr
_0204E61E:
ldr r0, _0204E628 ; =0x0000FFFF
bx lr
nop
_0204E624: .word UNK_021C5A68
_0204E628: .word 0x0000FFFF
thumb_func_start sub_0204E62C
sub_0204E62C: ; 0x0204E62C
push {r4, lr}
add r4, r0, #0x0
bl sub_0204E544
ldr r1, _0204E65C ; =0x0000FFFF
cmp r0, r1
bne _0204E63E
add r0, r1, #0x0
pop {r4, pc}
_0204E63E:
ldr r0, _0204E660 ; =UNK_021C5A68
lsl r4, r4, #0x3
ldr r0, [r0, #0x0]
add r1, r0, r4
mov r0, #0x66
ldrsb r0, [r1, r0]
bl sub_02059BF4
ldr r1, _0204E660 ; =UNK_021C5A68
ldr r1, [r1, #0x0]
add r1, r1, r4
add r1, #0x62
ldrh r1, [r1, #0x0]
add r0, r1, r0
pop {r4, pc}
.balign 4
_0204E65C: .word 0x0000FFFF
_0204E660: .word UNK_021C5A68
thumb_func_start sub_0204E664
sub_0204E664: ; 0x0204E664
push {r4, lr}
add r4, r0, #0x0
bl sub_0204E598
ldr r1, _0204E694 ; =0x0000FFFF
cmp r0, r1
bne _0204E676
add r0, r1, #0x0
pop {r4, pc}
_0204E676:
ldr r0, _0204E698 ; =UNK_021C5A68
lsl r4, r4, #0x3
ldr r0, [r0, #0x0]
add r1, r0, r4
mov r0, #0x66
ldrsb r0, [r1, r0]
bl sub_02059C00
ldr r1, _0204E698 ; =UNK_021C5A68
ldr r1, [r1, #0x0]
add r1, r1, r4
add r1, #0x64
ldrh r1, [r1, #0x0]
add r0, r1, r0
pop {r4, pc}
.balign 4
_0204E694: .word 0x0000FFFF
_0204E698: .word UNK_021C5A68
thumb_func_start sub_0204E69C
sub_0204E69C: ; 0x0204E69C
push {r4, lr}
add r4, r0, #0x0
bl sub_0204E2FC
cmp r0, #0x0
beq _0204E6B6
ldr r0, _0204E6C8 ; =UNK_021C5A68
ldr r1, [r0, #0x0]
add r0, r1, r4
add r0, #0x48
ldrb r0, [r0, #0x0]
cmp r0, #0x0
bne _0204E6BC
_0204E6B6:
mov r0, #0x0
mvn r0, r0
pop {r4, pc}
_0204E6BC:
lsl r0, r4, #0x3
add r1, r1, r0
mov r0, #0xa6
ldrsb r0, [r1, r0]
pop {r4, pc}
nop
_0204E6C8: .word UNK_021C5A68
thumb_func_start sub_0204E6CC
sub_0204E6CC: ; 0x0204E6CC
push {r4, lr}
add r4, r0, #0x0
bl sub_0204E2FC
cmp r0, #0x0
beq _0204E6E6
ldr r0, _0204E6F8 ; =UNK_021C5A68
ldr r1, [r0, #0x0]
add r0, r1, r4
add r0, #0x48
ldrb r0, [r0, #0x0]
cmp r0, #0x0
bne _0204E6EC
_0204E6E6:
mov r0, #0x0
mvn r0, r0
pop {r4, pc}
_0204E6EC:
lsl r0, r4, #0x3
add r1, r1, r0
mov r0, #0x66
ldrsb r0, [r1, r0]
pop {r4, pc}
nop
_0204E6F8: .word UNK_021C5A68
thumb_func_start sub_0204E6FC
sub_0204E6FC: ; 0x0204E6FC
push {r4, lr}
add r4, r1, #0x0
ldr r1, _0204E728 ; =UNK_021C5A68
lsl r0, r0, #0x3
ldr r1, [r1, #0x0]
add r1, r1, r0
mov r0, #0x66
ldrsb r0, [r1, r0]
bl sub_0204F610
ldr r2, _0204E728 ; =UNK_021C5A68
lsl r1, r4, #0x3
ldr r3, [r2, #0x0]
add r1, r3, r1
add r1, #0x66
strb r0, [r1, #0x0]
ldr r0, [r2, #0x0]
mov r3, #0x1
add r1, r0, r4
ldr r0, _0204E72C ; =0x00000132
strb r3, [r1, r0]
pop {r4, pc}
.balign 4
_0204E728: .word UNK_021C5A68
_0204E72C: .word 0x00000132
thumb_func_start sub_0204E730
sub_0204E730: ; 0x0204E730
push {r4, lr}
add r4, r1, #0x0
ldr r1, _0204E754 ; =UNK_021C5A68
lsl r0, r0, #0x3
ldr r1, [r1, #0x0]
add r1, r1, r0
mov r0, #0xa6
ldrsb r0, [r1, r0]
bl sub_0204F610
ldr r1, _0204E754 ; =UNK_021C5A68
ldr r2, [r1, #0x0]
lsl r1, r4, #0x3
add r1, r2, r1
add r1, #0xa6
strb r0, [r1, #0x0]
pop {r4, pc}
nop
_0204E754: .word UNK_021C5A68
thumb_func_start sub_0204E758
sub_0204E758: ; 0x0204E758
push {r4, lr}
add r2, r0, #0x0
ldr r0, _0204E774 ; =UNK_021C5A68
add r4, r1, #0x0
ldr r0, [r0, #0x0]
add r1, r2, #0x0
ldr r0, [r0, #0x4]
bl ov18_02244D40
add r1, r4, #0x0
bl ov18_02244D98
pop {r4, pc}
nop
_0204E774: .word UNK_021C5A68
thumb_func_start sub_0204E778
sub_0204E778: ; 0x0204E778
push {r3, lr}
add r1, r0, #0x0
ldr r0, _0204E790 ; =UNK_021C5A68
ldr r0, [r0, #0x0]
ldr r0, [r0, #0x4]
bl ov18_02244D40
mov r1, #0x0
bl ov18_02244D98
pop {r3, pc}
nop
_0204E790: .word UNK_021C5A68
thumb_func_start sub_0204E794
sub_0204E794: ; 0x0204E794
push {r3-r7, lr}
sub sp, #0x8
str r1, [sp, #0x0]
ldr r1, _0204E7C8 ; =UNK_021C5A68
add r6, r3, #0x0
ldr r4, [r1, #0x0]
lsl r7, r0, #0x3
add r4, #0x62
add r0, r6, #0x0
str r2, [sp, #0x4]
add r5, r4, r7
bl sub_02059BF4
ldr r1, [sp, #0x0]
add r0, r1, r0
strh r0, [r4, r7]
add r0, r6, #0x0
bl sub_02059C00
ldr r1, [sp, #0x4]
add r0, r1, r0
strh r0, [r5, #0x2]
strb r6, [r5, #0x4]
add sp, #0x8
pop {r3-r7, pc}
nop
_0204E7C8: .word UNK_021C5A68
thumb_func_start sub_0204E7CC
sub_0204E7CC: ; 0x0204E7CC
push {r3-r7, lr}
add r5, r0, #0x0
ldr r0, _0204E848 ; =UNK_021C5A68
add r6, r1, #0x0
ldr r0, [r0, #0x0]
add r7, r2, #0x0
str r3, [sp, #0x0]
cmp r0, #0x0
beq _0204E844
add r2, r0, #0x0
add r2, #0xa2
lsl r1, r5, #0x3
add r4, r2, r1
ldr r1, _0204E84C ; =0x000002BD
ldrb r1, [r0, r1]
cmp r1, #0x0
bne _0204E7FA
ldrh r1, [r4, #0x0]
ldrh r3, [r4, #0x2]
ldr r0, [r0, #0x54]
mov r2, #0x0
bl ov05_021E5B30
_0204E7FA:
strh r6, [r4, #0x0]
ldr r0, [sp, #0x0]
strh r7, [r4, #0x2]
strb r0, [r4, #0x4]
ldr r0, _0204E848 ; =UNK_021C5A68
ldr r1, [r0, #0x0]
lsl r0, r5, #0x2
add r0, r1, r0
ldr r0, [r0, #0x8]
cmp r0, #0x0
beq _0204E81A
ldr r3, [sp, #0x0]
add r1, r6, #0x0
add r2, r7, #0x0
bl sub_02055514
_0204E81A:
ldr r0, _0204E848 ; =UNK_021C5A68
ldr r1, [r0, #0x0]
ldr r0, _0204E84C ; =0x000002BD
ldrb r0, [r1, r0]
cmp r0, #0x0
bne _0204E832
ldr r0, [r1, #0x54]
ldrh r1, [r4, #0x0]
ldrh r3, [r4, #0x2]
mov r2, #0x0
bl ov05_021E5B30
_0204E832:
ldr r0, _0204E848 ; =UNK_021C5A68
ldr r1, [r0, #0x0]
ldr r0, _0204E84C ; =0x000002BD
ldrb r0, [r1, r0]
cmp r0, #0x0
bne _0204E844
add r0, r5, #0x0
bl sub_0204F0A8
_0204E844:
pop {r3-r7, pc}
nop
_0204E848: .word UNK_021C5A68
_0204E84C: .word 0x000002BD
thumb_func_start sub_0204E850
sub_0204E850: ; 0x0204E850
push {r3-r4, lr}
sub sp, #0x4
mov r2, #0x2
add r1, sp, #0x0
add r4, r0, #0x0
strb r2, [r1, #0x0]
strb r4, [r1, #0x1]
ldr r1, _0204E8AC ; =UNK_021C5A68
ldr r1, [r1, #0x0]
add r1, r1, r4
add r1, #0xe2
ldrb r1, [r1, #0x0]
cmp r1, #0x0
beq _0204E88A
bl sub_0204D830
cmp r0, #0x0
bne _0204E88A
add r0, r4, #0x0
bl sub_0204EE9C
cmp r0, #0x0
add r0, sp, #0x0
beq _0204E886
mov r1, #0x3
strb r1, [r0, #0x0]
b _0204E88A
_0204E886:
mov r1, #0x1
strb r1, [r0, #0x0]
_0204E88A:
mov r0, #0x1d
add r1, sp, #0x0
mov r2, #0x2
bl sub_02030BC4
cmp r0, #0x0
beq _0204E8A8
add r0, sp, #0x0
ldrb r0, [r0, #0x0]
cmp r0, #0x2
beq _0204E8A8
add r0, r4, #0x0
mov r1, #0x0
bl sub_0204EAD8
_0204E8A8:
add sp, #0x4
pop {r3-r4, pc}
.balign 4
_0204E8AC: .word UNK_021C5A68
thumb_func_start sub_0204E8B0
sub_0204E8B0: ; 0x0204E8B0
push {r3-r6}
ldr r2, _0204E8F8 ; =UNK_021C5A68
ldr r3, [r2, #0x0]
cmp r3, #0x0
bne _0204E8C0
mov r0, #0xff
pop {r3-r6}
bx lr
_0204E8C0:
mov r2, #0x0
add r4, r3, #0x0
_0204E8C4:
add r5, r3, #0x0
add r5, #0x48
ldrb r5, [r5, #0x0]
cmp r5, #0x0
beq _0204E8E8
add r5, r4, #0x0
add r5, #0x64
ldrh r6, [r5, #0x0]
add r5, r4, #0x0
add r5, #0x62
ldrh r5, [r5, #0x0]
cmp r0, r5
bne _0204E8E8
cmp r1, r6
bne _0204E8E8
add r0, r2, #0x0
pop {r3-r6}
bx lr
_0204E8E8:
add r2, r2, #0x1
add r3, r3, #0x1
add r4, #0x8
cmp r2, #0x8
blt _0204E8C4
mov r0, #0xff
pop {r3-r6}
bx lr
.balign 4
_0204E8F8: .word UNK_021C5A68
thumb_func_start sub_0204E8FC
sub_0204E8FC: ; 0x0204E8FC
push {r4, lr}
add r4, r2, #0x0
bl sub_02030FE0
cmp r0, #0x0
beq _0204E962
ldrb r0, [r4, #0x0]
cmp r0, #0x1
bne _0204E936
bl sub_02031190
ldrb r1, [r4, #0x1]
cmp r1, r0
bne _0204E936
ldr r1, _0204E964 ; =UNK_021C5A68
mov r0, #0xae
ldr r3, [r1, #0x0]
lsl r0, r0, #0x2
ldrb r2, [r3, r0]
cmp r2, #0x0
bne _0204E962
mov r2, #0x1
strb r2, [r3, r0]
ldr r1, [r1, #0x0]
ldr r0, _0204E968 ; =sub_0204D308
ldr r1, [r1, #0x54]
bl ov18_022494C8
pop {r4, pc}
_0204E936:
ldrb r0, [r4, #0x0]
cmp r0, #0x3
bne _0204E962
bl sub_02031190
ldrb r1, [r4, #0x1]
cmp r1, r0
bne _0204E962
ldr r1, _0204E964 ; =UNK_021C5A68
mov r0, #0xae
ldr r3, [r1, #0x0]
lsl r0, r0, #0x2
ldrb r2, [r3, r0]
cmp r2, #0x0
bne _0204E962
mov r2, #0x1
strb r2, [r3, r0]
ldr r1, [r1, #0x0]
ldr r0, _0204E968 ; =sub_0204D308
ldr r1, [r1, #0x54]
bl ov18_0224A7C8
_0204E962:
pop {r4, pc}
.balign 4
_0204E964: .word UNK_021C5A68
_0204E968: .word sub_0204D308
thumb_func_start sub_0204E96C
sub_0204E96C: ; 0x0204E96C
push {r4-r6, lr}
ldr r0, _0204EACC ; =UNK_021C5A68
add r5, r2, #0x0
ldr r0, [r0, #0x0]
ldr r0, [r0, #0x54]
ldr r0, [r0, #0xc]
bl Save_VarsFlags_Get
add r6, r0, #0x0
ldrb r0, [r5, #0x1]
cmp r0, #0x8
blo _0204E988
bl GF_AssertFail
_0204E988:
ldrb r0, [r5, #0x0]
cmp r0, #0x4
bne _0204E9AA
bl sub_02031190
ldrb r1, [r5, #0x1]
cmp r1, r0
bne _0204E9AA
bl sub_0204F7E4
bl ov18_0223D638
ldr r3, _0204EAD0 ; =sub_0204E2AC
mov r1, #0x48
mov r2, #0x1
bl ov18_0224DCB8
_0204E9AA:
ldrb r0, [r5, #0x0]
cmp r0, #0x1
bne _0204E9B8
ldrb r0, [r5, #0x1]
ldrb r1, [r5, #0x2]
bl sub_0204E730
_0204E9B8:
ldrb r0, [r5, #0x0]
cmp r0, #0x1
bne _0204EA7C
bl sub_02031190
ldrb r1, [r5, #0x1]
cmp r1, r0
bne _0204EA7C
ldr r2, _0204EACC ; =UNK_021C5A68
ldrb r0, [r5, #0x2]
ldr r2, [r2, #0x0]
ldr r1, _0204EAD4 ; =sub_0204D308
ldr r2, [r2, #0x54]
bl ov18_02247A34
ldr r0, _0204EACC ; =UNK_021C5A68
ldrb r4, [r5, #0x1]
ldr r2, [r0, #0x0]
mov r3, #0xf
add r1, r2, #0x0
add r1, #0x58
ldrb r1, [r1, #0x0]
add r2, #0x58
bic r1, r3
mov r3, #0xf
and r3, r4
orr r1, r3
strb r1, [r2, #0x0]
ldr r2, [r0, #0x0]
mov r3, #0xf0
add r1, r2, #0x0
add r1, #0x58
ldrb r1, [r1, #0x0]
add r2, #0x58
bic r1, r3
ldrb r3, [r5, #0x2]
lsl r3, r3, #0x1c
lsr r3, r3, #0x18
orr r1, r3
strb r1, [r2, #0x0]
ldr r3, [r0, #0x0]
add r1, r3, #0x0
add r1, #0x59
ldrb r2, [r1, #0x0]
mov r1, #0x1
add r3, #0x59
bic r2, r1
strb r2, [r3, #0x0]
ldr r3, [r0, #0x0]
add r1, r3, #0x0
add r1, #0x59
ldrb r2, [r1, #0x0]
mov r1, #0x2
add r3, #0x59
bic r2, r1
strb r2, [r3, #0x0]
ldrb r4, [r5, #0x2]
ldr r1, [r0, #0x0]
add r0, r1, r4
add r0, #0x5a
ldrb r0, [r0, #0x0]
cmp r0, #0x0
bne _0204EA7C
ldr r0, [r1, #0x54]
bl FieldSystem_GetSaveData
bl sub_02026CB4
add r1, r4, #0x0
bl sub_02026908
add r0, r6, #0x0
bl Save_VarsFlags_GetSpiritombTalkCounter
add r1, r0, #0x0
add r1, r1, #0x1
lsl r1, r1, #0x10
add r0, r6, #0x0
lsr r1, r1, #0x10
bl Save_VarsFlags_SetSpiritombTalkCounter
add r0, r6, #0x0
bl sub_0205F6A8
add r1, r0, #0x0
add r1, r1, #0x1
lsl r1, r1, #0x10
add r0, r6, #0x0
lsr r1, r1, #0x10
bl sub_0205F6B8
ldr r0, _0204EACC ; =UNK_021C5A68
ldrb r1, [r5, #0x2]
ldr r2, [r0, #0x0]
add r2, #0x5a
ldrb r0, [r2, r1]
add r0, r0, #0x1
strb r0, [r2, r1]
_0204EA7C:
ldrb r0, [r5, #0x0]
cmp r0, #0x1
bne _0204EA9A
ldrb r4, [r5, #0x2]
bl sub_02031190
cmp r4, r0
bne _0204EA9A
ldr r2, _0204EACC ; =UNK_021C5A68
ldrb r1, [r5, #0x1]
ldr r2, [r2, #0x0]
add r0, r4, #0x0
ldr r2, [r2, #0x54]
bl ov18_02248DF8
_0204EA9A:
ldrb r0, [r5, #0x0]
cmp r0, #0x2
bne _0204EABC
bl sub_02031190
ldrb r1, [r5, #0x1]
cmp r1, r0
bne _0204EABC
bl sub_0204F7E4
bl ov18_0223D638
ldr r3, _0204EAD0 ; =sub_0204E2AC
mov r1, #0x2
mov r2, #0x1
bl ov18_0224DCB8
_0204EABC:
ldrb r0, [r5, #0x0]
cmp r0, #0x1
bne _0204EACA
ldrb r0, [r5, #0x1]
ldrb r1, [r5, #0x2]
bl ov18_0223E4A8
_0204EACA:
pop {r4-r6, pc}
.balign 4
_0204EACC: .word UNK_021C5A68
_0204EAD0: .word sub_0204E2AC
_0204EAD4: .word sub_0204D308
thumb_func_start sub_0204EAD8
sub_0204EAD8: ; 0x0204EAD8
push {r3-r4}
ldr r3, _0204EB0C ; =UNK_021C5A68
ldr r4, [r3, #0x0]
add r4, #0xe2
ldrb r2, [r4, r0]
cmp r1, r2
beq _0204EB08
strb r1, [r4, r0]
ldr r2, [r3, #0x0]
lsl r1, r0, #0x3
add r2, r2, r1
mov r4, #0x0
add r2, #0x69
strb r4, [r2, #0x0]
ldr r2, [r3, #0x0]
mov r4, #0x1
add r2, r2, r0
ldr r0, _0204EB10 ; =0x00000132
strb r4, [r2, r0]
ldr r0, [r3, #0x0]
mov r2, #0x2
add r0, r0, r1
add r0, #0x67
strb r2, [r0, #0x0]
_0204EB08:
pop {r3-r4}
bx lr
.balign 4
_0204EB0C: .word UNK_021C5A68
_0204EB10: .word 0x00000132
thumb_func_start sub_0204EB14
sub_0204EB14: ; 0x0204EB14
ldr r1, _0204EB3C ; =UNK_021C5A68
ldr r2, [r1, #0x0]
ldr r1, _0204EB40 ; =0x000002C2
ldrb r1, [r2, r1]
cmp r1, #0x0
beq _0204EB24
mov r0, #0x0
bx lr
_0204EB24:
add r1, r2, r0
add r1, #0xea
ldrb r1, [r1, #0x0]
cmp r1, #0x0
beq _0204EB36
add r0, r2, r0
add r0, #0xe2
ldrb r0, [r0, #0x0]
bx lr
_0204EB36:
mov r0, #0x0
bx lr
nop
_0204EB3C: .word UNK_021C5A68
_0204EB40: .word 0x000002C2
thumb_func_start sub_0204EB44
sub_0204EB44: ; 0x0204EB44
push {r3-r7, lr}
sub sp, #0x30
ldr r1, _0204EBF8 ; =UNK_020F5800
add r0, sp, #0x8
ldrh r2, [r1, #0x0]
ldr r3, _0204EBFC ; =UNK_020F5814
strh r2, [r0, #0x0]
ldrh r2, [r1, #0x2]
strh r2, [r0, #0x2]
ldrh r2, [r1, #0x4]
ldrh r1, [r1, #0x6]
strh r2, [r0, #0x4]
strh r1, [r0, #0x6]
add r2, sp, #0x20
mov r1, #0x8
_0204EB62:
ldrh r0, [r3, #0x0]
add r3, r3, #0x2
strh r0, [r2, #0x0]
add r2, r2, #0x2
sub r1, r1, #0x1
bne _0204EB62
bl sub_02033534
bl sub_02031248
add r6, r0, #0x0
mov r0, #0x0
str r0, [sp, #0x4]
str r0, [sp, #0x0]
cmp r6, #0x2
bne _0204EB86
add r5, sp, #0x8
b _0204EB88
_0204EB86:
add r5, sp, #0x20
_0204EB88:
mov r7, #0x0
cmp r6, #0x0
ble _0204EBD4
_0204EB8E:
mov r4, #0x0
cmp r6, #0x0
ble _0204EBCC
_0204EB94:
add r0, r4, #0x0
bl sub_0204E3EC
ldrh r1, [r5, #0x0]
cmp r1, r0
bne _0204EBC6
add r0, r4, #0x0
bl sub_0204E440
ldrh r1, [r5, #0x2]
cmp r1, r0
bne _0204EBC6
ldr r0, [sp, #0x4]
lsl r1, r4, #0x2
add r0, r0, #0x1
str r0, [sp, #0x4]
add r0, sp, #0x10
str r7, [r0, r1]
bl sub_02031190
cmp r4, r0
bne _0204EBCC
mov r0, #0x1
str r0, [sp, #0x0]
b _0204EBCC
_0204EBC6:
add r4, r4, #0x1
cmp r4, r6
blt _0204EB94
_0204EBCC:
add r7, r7, #0x1
add r5, r5, #0x4
cmp r7, r6
blt _0204EB8E
_0204EBD4:
ldr r0, [sp, #0x4]
cmp r0, r6
bne _0204EBF2
mov r5, #0x0
cmp r6, #0x0
ble _0204EBF2
add r4, sp, #0x10
_0204EBE2:
ldr r0, [r4, #0x0]
add r1, r5, #0x0
bl sub_020313B4
add r5, r5, #0x1
add r4, r4, #0x4
cmp r5, r6
blt _0204EBE2
_0204EBF2:
ldr r0, [sp, #0x0]
add sp, #0x30
pop {r3-r7, pc}
.balign 4
_0204EBF8: .word UNK_020F5800
_0204EBFC: .word UNK_020F5814
thumb_func_start sub_0204EC00
sub_0204EC00: ; 0x0204EC00
ldrb r2, [r2, #0x0]
cmp r2, #0x3
bne _0204EC14
ldr r1, _0204EC24 ; =UNK_021C5A68
mov r2, #0x0
ldr r1, [r1, #0x0]
add r0, r1, r0
add r0, #0xf2
strb r2, [r0, #0x0]
bx lr
_0204EC14:
ldr r1, _0204EC24 ; =UNK_021C5A68
ldr r1, [r1, #0x0]
add r1, r1, r0
mov r0, #0xad
lsl r0, r0, #0x2
strb r2, [r1, r0]
bx lr
nop
_0204EC24: .word UNK_021C5A68
thumb_func_start sub_0204EC28
sub_0204EC28: ; 0x0204EC28
push {r3-r7, lr}
sub sp, #0x8
bl sub_02033534
bl sub_02031248
add r7, r0, #0x0
cmp r7, #0x2
bne _0204EC40
ldr r0, _0204ECB4 ; =UNK_02105E5C
str r0, [sp, #0x0]
b _0204EC44
_0204EC40:
ldr r0, _0204ECB8 ; =UNK_02105E64
str r0, [sp, #0x0]
_0204EC44:
mov r1, #0x0
add r0, sp, #0x4
strb r1, [r0, #0x0]
cmp r7, #0x0
ble _0204ECAE
_0204EC4E:
ldr r0, _0204ECBC ; =UNK_021C5A68
add r6, sp, #0x4
ldr r1, [r0, #0x0]
ldrb r0, [r6, #0x0]
add r1, r1, r0
mov r0, #0xad
lsl r0, r0, #0x2
ldrb r0, [r1, r0]
cmp r0, #0x0
beq _0204ECA0
mov r4, #0x0
cmp r7, #0x0
ble _0204ECA0
ldr r5, [sp, #0x0]
_0204EC6A:
ldrb r0, [r6, #0x0]
bl sub_0204E544
ldrh r1, [r5, #0x0]
cmp r1, r0
bne _0204EC98
ldrb r0, [r6, #0x0]
bl sub_0204E598
ldrh r1, [r5, #0x2]
cmp r1, r0
bne _0204EC98
ldr r0, _0204ECBC ; =UNK_021C5A68
ldr r1, [r0, #0x0]
ldrb r0, [r6, #0x0]
add r1, r1, r0
add r1, #0xf2
mov r0, #0x1
strb r0, [r1, #0x0]
mov r0, #0x5f
add r1, sp, #0x4
bl sub_02030C4C
_0204EC98:
add r4, r4, #0x1
add r5, r5, #0x4
cmp r4, r7
blt _0204EC6A
_0204ECA0:
add r0, sp, #0x4
ldrb r1, [r0, #0x0]
add r1, r1, #0x1
strb r1, [r0, #0x0]
ldrb r0, [r0, #0x0]
cmp r0, r7
blt _0204EC4E
_0204ECAE:
add sp, #0x8
pop {r3-r7, pc}
nop
_0204ECB4: .word UNK_02105E5C
_0204ECB8: .word UNK_02105E64
_0204ECBC: .word UNK_021C5A68
thumb_func_start sub_0204ECC0
sub_0204ECC0: ; 0x0204ECC0
push {r4, lr}
bl sub_02031190
add r4, r0, #0x0
bl sub_0204E3EC
cmp r0, #0x8
ble _0204ECE0
mov r0, #0x2
bl sub_0204F6DC
mov r0, #0x2
mov r1, #0x24
bl sub_0205AFDC
b _0204ECEE
_0204ECE0:
mov r0, #0x3
bl sub_0204F6DC
mov r0, #0x3
mov r1, #0x24
bl sub_0205AFDC
_0204ECEE:
add r1, r0, #0x0
ldr r0, _0204ED04 ; =UNK_021C5A68
ldr r2, [r0, #0x0]
lsl r0, r4, #0x2
add r0, r2, r0
ldr r0, [r0, #0x8]
bl sub_02057260
bl sub_0204FB14
pop {r4, pc}
.balign 4
_0204ED04: .word UNK_021C5A68
thumb_func_start sub_0204ED08
sub_0204ED08: ; 0x0204ED08
push {r3-r7, lr}
sub sp, #0x8
bl sub_02033534
bl sub_02031248
mov r3, #0x0
str r0, [sp, #0x0]
cmp r0, #0x0
ble _0204ED3C
ldr r0, _0204ED94 ; =UNK_021C5A68
mov r1, #0x66
add r2, r1, #0x0
ldr r4, [r0, #0x0]
sub r2, #0x67
_0204ED26:
ldrsb r0, [r4, r1]
cmp r0, r2
bne _0204ED32
add sp, #0x8
mov r0, #0x0
pop {r3-r7, pc}
_0204ED32:
ldr r0, [sp, #0x0]
add r3, r3, #0x1
add r4, #0x8
cmp r3, r0
blt _0204ED26
_0204ED3C:
ldr r0, [sp, #0x0]
mov r5, #0x0
cmp r0, #0x0
ble _0204ED8E
add r4, r5, #0x0
_0204ED46:
ldr r0, _0204ED94 ; =UNK_021C5A68
ldr r7, [r0, #0x0]
mov r0, #0x4
add r7, #0x62
add r6, r7, r4
ldrsb r0, [r6, r0]
bl sub_0204F610
str r0, [sp, #0x4]
bl sub_02059BF4
ldrh r1, [r7, r4]
add r0, r1, r0
strh r0, [r7, r4]
ldr r0, [sp, #0x4]
bl sub_02059C00
ldrh r1, [r6, #0x2]
add r0, r1, r0
strh r0, [r6, #0x2]
mov r0, #0x2
strb r0, [r6, #0x5]
ldr r0, _0204ED94 ; =UNK_021C5A68
mov r1, #0x1
ldr r0, [r0, #0x0]
add r2, r0, r5
ldr r0, _0204ED98 ; =0x00000132
strb r1, [r2, r0]
add r0, r5, #0x0
bl sub_0204EAD8
ldr r0, [sp, #0x0]
add r5, r5, #0x1
add r4, #0x8
cmp r5, r0
blt _0204ED46
_0204ED8E:
mov r0, #0x1
add sp, #0x8
pop {r3-r7, pc}
.balign 4
_0204ED94: .word UNK_021C5A68
_0204ED98: .word 0x00000132
thumb_func_start sub_0204ED9C
sub_0204ED9C: ; 0x0204ED9C
push {r4, lr}
add r4, r0, #0x0
ldr r0, _0204EDE8 ; =UNK_021C5A68
ldr r1, [r0, #0x0]
lsl r0, r4, #0x2
add r1, r1, r0
mov r0, #0x29
lsl r0, r0, #0x4
ldr r0, [r1, r0]
cmp r0, #0x0
beq _0204EDE2
bl Heap_Free
ldr r2, _0204EDE8 ; =UNK_021C5A68
lsl r1, r4, #0x2
ldr r3, [r2, #0x0]
mov r0, #0x0
add r3, r3, r1
mov r1, #0x29
lsl r1, r1, #0x4
str r0, [r3, r1]
ldr r1, [r2, #0x0]
mov r3, #0xff
add r1, r1, r4
add r1, #0xfa
strb r0, [r1, #0x0]
mov r0, #0x22
ldr r1, [r2, #0x0]
mul r0, r4
add r1, r1, r0
add r0, r3, #0x0
add r0, #0x6b
strh r3, [r1, r0]
mov r0, #0x1
pop {r4, pc}
_0204EDE2:
mov r0, #0x0
pop {r4, pc}
nop
_0204EDE8: .word UNK_021C5A68
thumb_func_start sub_0204EDEC
sub_0204EDEC: ; 0x0204EDEC
push {r3-r7, lr}
add r7, r0, #0x0
bl sub_02031190
cmp r7, r0
bne _0204EE90
ldr r0, _0204EE98 ; =UNK_021C5A68
ldr r2, [r0, #0x0]
lsl r0, r7, #0x2
add r1, r2, r0
mov r0, #0x29
lsl r0, r0, #0x4
ldr r0, [r1, r0]
cmp r0, #0x0
beq _0204EE96
ldr r0, [r2, #0x54]
ldr r0, [r0, #0xc]
bl Save_GameStats_Get
mov r1, #0x1c
bl GameStats_AddSpecial
ldr r0, _0204EE98 ; =UNK_021C5A68
ldr r1, [r0, #0x0]
mov r0, #0xa3
lsl r0, r0, #0x2
ldr r0, [r1, r0]
cmp r0, #0x0
beq _0204EE2A
bl Heap_Free
_0204EE2A:
mov r0, #0x9e
lsl r0, r0, #0x2
ldr r2, _0204EE98 ; =UNK_021C5A68
mov r5, #0x4
mov r6, #0x10
add r1, r0, #0x4
_0204EE36:
ldr r3, [r2, #0x0]
sub r5, r5, #0x1
add r4, r3, r6
ldr r3, [r4, r0]
sub r6, r6, #0x4
str r3, [r4, r1]
cmp r5, #0x1
bge _0204EE36
ldr r1, _0204EE98 ; =UNK_021C5A68
mov r0, #0x29
ldr r3, [r1, #0x0]
lsl r4, r7, #0x2
add r2, r3, r4
lsl r0, r0, #0x4
ldr r2, [r2, r0]
sub r0, #0x14
str r2, [r3, r0]
ldr r5, [r1, #0x0]
ldr r0, [r5, #0x54]
bl FieldSystem_GetSaveData
bl sub_02026CC4
mov r1, #0x29
add r2, r5, r4
lsl r1, r1, #0x4
ldr r1, [r2, r1]
bl sub_02025C40
ldr r1, _0204EE98 ; =UNK_021C5A68
mov r3, #0x0
ldr r0, [r1, #0x0]
add r2, r0, r4
mov r0, #0x29
lsl r0, r0, #0x4
str r3, [r2, r0]
mov r0, #0x22
ldr r1, [r1, #0x0]
mul r0, r7
mov r2, #0xff
add r1, r1, r0
add r0, r2, #0x0
add r0, #0x6b
strh r2, [r1, r0]
pop {r3-r7, pc}
_0204EE90:
add r0, r7, #0x0
bl sub_0204ED9C
_0204EE96:
pop {r3-r7, pc}
.balign 4
_0204EE98: .word UNK_021C5A68
thumb_func_start sub_0204EE9C
sub_0204EE9C: ; 0x0204EE9C
ldr r1, _0204EEB8 ; =UNK_021C5A68
lsl r0, r0, #0x2
ldr r1, [r1, #0x0]
add r1, r1, r0
mov r0, #0x29
lsl r0, r0, #0x4
ldr r0, [r1, r0]
cmp r0, #0x0
beq _0204EEB2
mov r0, #0x1
bx lr
_0204EEB2:
mov r0, #0x0
bx lr
nop
_0204EEB8: .word UNK_021C5A68
thumb_func_start sub_0204EEBC
sub_0204EEBC: ; 0x0204EEBC
push {r3-r7, lr}
add r5, r0, #0x0
ldr r0, _0204EF48 ; =UNK_021C5A68
add r6, r1, #0x0
ldr r1, [r0, #0x0]
lsl r0, r5, #0x2
add r1, r1, r0
mov r0, #0x29
lsl r0, r0, #0x4
ldr r0, [r1, r0]
cmp r0, #0x0
bne _0204EF44
add r0, r6, #0x0
bl sub_0202DFA4
add r7, r0, #0x0
beq _0204EF44
mov r0, #0xf
lsl r4, r5, #0x2
bl PlayerProfile_New
mov r3, #0x29
ldr r1, _0204EF48 ; =UNK_021C5A68
add r2, r0, #0x0
ldr r0, [r1, #0x0]
lsl r3, r3, #0x4
add r0, r0, r4
str r2, [r0, r3]
ldr r1, [r1, #0x0]
add r0, r7, #0x0
add r1, r1, r4
ldr r1, [r1, r3]
bl PlayerProfile_Copy
ldr r1, _0204EF48 ; =UNK_021C5A68
mov r2, #0x1
ldr r0, [r1, #0x0]
ldr r3, _0204EF4C ; =0x0000016A
add r0, r0, r5
add r0, #0xfa
strb r2, [r0, #0x0]
mov r0, #0x22
add r2, r5, #0x0
mul r2, r0
ldr r0, [r1, #0x0]
add r0, r0, r2
strh r5, [r0, r3]
ldr r1, [r1, #0x0]
sub r3, #0x20
add r1, r1, r3
add r0, r7, #0x0
add r1, r1, r2
bl PlayerProfile_Copy
bl sub_02031190
cmp r6, r0
bne _0204EF40
ldr r0, _0204EF48 ; =UNK_021C5A68
ldr r0, [r0, #0x0]
ldr r0, [r0, #0x54]
ldr r0, [r0, #0xc]
bl sub_02026CB4
bl sub_02026BC8
_0204EF40:
mov r0, #0x1
pop {r3-r7, pc}
_0204EF44:
mov r0, #0x0
pop {r3-r7, pc}
.balign 4
_0204EF48: .word UNK_021C5A68
_0204EF4C: .word 0x0000016A
thumb_func_start sub_0204EF50
sub_0204EF50: ; 0x0204EF50
push {r3-r7, lr}
ldr r4, _0204EFC4 ; =UNK_021C5A68
mov r7, #0x29
ldr r6, [r4, #0x0]
add r3, r0, #0x0
lsl r7, r7, #0x4
add r5, r6, r7
lsl r0, r3, #0x2
add r2, r1, #0x0
ldr r1, [r5, r0]
cmp r1, #0x0
bne _0204EFBE
lsl r1, r2, #0x2
add r6, r6, r1
ldr r6, [r6, r7]
cmp r6, #0x0
beq _0204EFBE
str r6, [r5, r0]
ldr r5, [r4, #0x0]
mov r6, #0x0
add r1, r5, r1
str r6, [r1, r7]
ldr r1, [r4, #0x0]
mov r5, #0x1
add r1, r1, r3
add r1, #0xfa
strb r5, [r1, #0x0]
ldr r1, [r4, #0x0]
add r1, r1, r2
add r1, #0xfa
strb r6, [r1, #0x0]
mov r1, #0x22
ldr r5, [r4, #0x0]
mul r1, r3
add r6, r5, r1
ldr r5, _0204EFC8 ; =0x0000016A
strh r3, [r6, r5]
mov r6, #0x22
mov r5, #0xff
mul r6, r2
ldr r3, [r4, #0x0]
add r2, r5, #0x0
add r3, r3, r6
add r2, #0x6b
strh r5, [r3, r2]
ldr r2, [r4, #0x0]
add r5, #0x4b
add r0, r2, r0
add r2, r2, r5
ldr r0, [r0, r7]
add r1, r2, r1
bl PlayerProfile_Copy
mov r0, #0x1
pop {r3-r7, pc}
_0204EFBE:
mov r0, #0x0
pop {r3-r7, pc}
nop
_0204EFC4: .word UNK_021C5A68
_0204EFC8: .word 0x0000016A
thumb_func_start sub_0204EFCC
sub_0204EFCC: ; 0x0204EFCC
push {r4, lr}
ldr r1, _0204F06C ; =UNK_021C5A68
add r4, r0, #0x0
ldr r3, [r1, #0x0]
ldr r1, _0204F070 ; =0x000002BD
ldrb r1, [r3, r1]
cmp r1, #0x0
bne _0204F068
lsl r1, r4, #0x2
add r2, r3, r1
ldr r1, [r2, #0x8]
cmp r1, #0x0
beq _0204F068
add r3, r3, r4
add r3, #0xfa
ldrb r3, [r3, #0x0]
cmp r3, #0x3
bhi _0204F068
add r3, r3, r3
add r3, pc
ldrh r3, [r3, #0x6]
lsl r3, r3, #0x10
asr r3, r3, #0x10
add pc, r3
_0204EFFC: ; jump table (using 16-bit offset)
.short _0204F064 - _0204EFFC - 2; case 0
.short _0204F048 - _0204EFFC - 2; case 1
.short _0204F02C - _0204EFFC - 2; case 2
.short _0204F004 - _0204EFFC - 2; case 3
_0204F004:
ldr r0, [r2, #0x28]
cmp r0, #0x0
bne _0204F01E
add r0, r1, #0x0
bl PlayerAvatar_GetMapObject
bl ov05_021E5970
ldr r1, _0204F06C ; =UNK_021C5A68
ldr r2, [r1, #0x0]
lsl r1, r4, #0x2
add r1, r2, r1
str r0, [r1, #0x28]
_0204F01E:
ldr r0, _0204F06C ; =UNK_021C5A68
mov r1, #0x0
ldr r0, [r0, #0x0]
add r0, r0, r4
add r0, #0xfa
strb r1, [r0, #0x0]
pop {r4, pc}
_0204F02C:
ldr r0, [r2, #0x28]
cmp r0, #0x0
bne _0204F068
add r0, r1, #0x0
bl PlayerAvatar_GetMapObject
bl ov05_021E57D4
ldr r1, _0204F06C ; =UNK_021C5A68
ldr r2, [r1, #0x0]
lsl r1, r4, #0x2
add r1, r2, r1
str r0, [r1, #0x28]
pop {r4, pc}
_0204F048:
ldr r0, [r2, #0x28]
cmp r0, #0x0
bne _0204F068
add r0, r1, #0x0
bl PlayerAvatar_GetMapObject
bl ov05_021E5614
ldr r1, _0204F06C ; =UNK_021C5A68
ldr r2, [r1, #0x0]
lsl r1, r4, #0x2
add r1, r2, r1
str r0, [r1, #0x28]
pop {r4, pc}
_0204F064:
bl sub_0204CD78
_0204F068:
pop {r4, pc}
nop
_0204F06C: .word UNK_021C5A68
_0204F070: .word 0x000002BD
thumb_func_start sub_0204F074
sub_0204F074: ; 0x0204F074
ldr r1, _0204F088 ; =UNK_021C5A68
ldr r2, [r1, #0x0]
add r2, #0xfa
ldrb r1, [r2, r0]
cmp r1, #0x1
beq _0204F084
mov r1, #0x2
strb r1, [r2, r0]
_0204F084:
bx lr
nop
_0204F088: .word UNK_021C5A68
thumb_func_start sub_0204F08C
sub_0204F08C: ; 0x0204F08C
ldr r1, _0204F0A0 ; =UNK_021C5A68
ldr r2, [r1, #0x0]
add r2, #0xfa
ldrb r1, [r2, r0]
cmp r1, #0x1
beq _0204F09C
mov r1, #0x3
strb r1, [r2, r0]
_0204F09C:
ldr r3, _0204F0A4 ; =sub_0204CD78
bx r3
.balign 4
_0204F0A0: .word UNK_021C5A68
_0204F0A4: .word sub_0204CD78
thumb_func_start sub_0204F0A8
sub_0204F0A8: ; 0x0204F0A8
ldr r1, _0204F0BC ; =UNK_021C5A68
ldr r2, [r1, #0x0]
add r2, #0xfa
ldrb r1, [r2, r0]
cmp r1, #0x1
beq _0204F0B8
mov r1, #0x0
strb r1, [r2, r0]
_0204F0B8:
ldr r3, _0204F0C0 ; =sub_0204CD78
bx r3
.balign 4
_0204F0BC: .word UNK_021C5A68
_0204F0C0: .word sub_0204CD78
thumb_func_start sub_0204F0C4
sub_0204F0C4: ; 0x0204F0C4
mov r0, #0x3
bx lr
thumb_func_start sub_0204F0C8
sub_0204F0C8: ; 0x0204F0C8
push {r3-r4, lr}
sub sp, #0x4
add r4, r0, #0x0
add r0, sp, #0x0
strb r4, [r0, #0x1]
ldrb r1, [r2, #0x0]
cmp r1, #0x0
beq _0204F0E0
cmp r1, #0x3
beq _0204F0F0
add sp, #0x4
pop {r3-r4, pc}
_0204F0E0:
mov r1, #0x0
strb r1, [r0, #0x0]
mov r0, #0x55
add r1, sp, #0x0
bl sub_02030C4C
add sp, #0x4
pop {r3-r4, pc}
_0204F0F0:
mov r1, #0x3
strb r1, [r0, #0x0]
mov r0, #0x55
add r1, sp, #0x0
bl sub_02030C4C
add r0, r4, #0x0
mov r1, #0x0
bl sub_0204EAD8
add sp, #0x4
pop {r3-r4, pc}
thumb_func_start sub_0204F108
sub_0204F108: ; 0x0204F108
push {r3, lr}
bl sub_02031190
bl sub_0204F0A8
bl ov18_0223D648
bl ov18_0224DD94
mov r0, #0x4
bl sub_0204F774
pop {r3, pc}
.balign 4
thumb_func_start sub_0204F124
sub_0204F124: ; 0x0204F124
push {r3-r7, lr}
add r5, r1, #0x0
add r6, r0, #0x0
ldr r0, [r5, #0x4]
mov r4, #0x0
lsl r0, r0, #0x18
lsr r7, r0, #0x18
add r0, r7, #0x0
bl sub_02030E7C
cmp r0, #0x0
bne _0204F14A
add r0, r5, #0x0
bl Heap_Free
add r0, r6, #0x0
bl SysTask_Destroy
pop {r3-r7, pc}
_0204F14A:
ldr r0, [r5, #0x0]
add r0, r0, #0x1
str r0, [r5, #0x0]
cmp r0, #0x3c
ble _0204F156
mov r4, #0x1
_0204F156:
cmp r4, #0x0
beq _0204F172
ldr r0, _0204F174 ; =UNK_021C5A68
mov r1, #0x1
ldr r0, [r0, #0x0]
add r0, r0, r7
add r0, #0xea
strb r1, [r0, #0x0]
add r0, r5, #0x0
bl Heap_Free
add r0, r6, #0x0
bl SysTask_Destroy
_0204F172:
pop {r3-r7, pc}
.balign 4
_0204F174: .word UNK_021C5A68
thumb_func_start sub_0204F178
sub_0204F178: ; 0x0204F178
push {r4, lr}
add r4, r0, #0x0
mov r0, #0xb
mov r1, #0x8
bl Heap_Alloc
add r1, r0, #0x0
mov r2, #0x0
str r2, [r1, #0x0]
ldr r0, _0204F1A8 ; =UNK_021C5A68
str r4, [r1, #0x4]
ldr r0, [r0, #0x0]
add r0, r0, r4
add r0, #0xea
strb r2, [r0, #0x0]
ldr r0, _0204F1AC ; =sub_0204F124
mov r2, #0x64
bl SysTask_CreateOnMainQueue
add r0, r4, #0x0
mov r1, #0x0
bl sub_0204EAD8
pop {r4, pc}
.balign 4
_0204F1A8: .word UNK_021C5A68
_0204F1AC: .word sub_0204F124
thumb_func_start sub_0204F1B0
sub_0204F1B0: ; 0x0204F1B0
push {r3-r5, lr}
add r4, r1, #0x0
mov r1, #0x1
add r5, r0, #0x0
tst r1, r2
beq _0204F1C4
mov r1, #0xb
add r0, sp, #0x0
strb r1, [r0, #0x0]
b _0204F1F6
_0204F1C4:
bl sub_0204EE9C
cmp r0, #0x0
beq _0204F1D4
mov r1, #0xb
add r0, sp, #0x0
strb r1, [r0, #0x0]
b _0204F1F6
_0204F1D4:
cmp r4, #0xff
bne _0204F1DC
mov r0, #0x0
pop {r3-r5, pc}
_0204F1DC:
add r0, r4, #0x0
bl sub_0204EE9C
cmp r0, #0x0
bne _0204F1EA
mov r0, #0x0
pop {r3-r5, pc}
_0204F1EA:
mov r1, #0x5
add r0, sp, #0x0
strb r1, [r0, #0x0]
add r0, r4, #0x0
bl sub_0204F178
_0204F1F6:
add r0, sp, #0x0
strb r5, [r0, #0x1]
strb r4, [r0, #0x2]
add r0, r5, #0x0
mov r1, #0x0
bl sub_0204EAD8
mov r0, #0x55
add r1, sp, #0x0
bl sub_02030C4C
mov r0, #0x1
pop {r3-r5, pc}
thumb_func_start sub_0204F210
sub_0204F210: ; 0x0204F210
push {r3-r4, lr}
sub sp, #0x4
add r4, r0, #0x0
bl sub_0204EE9C
cmp r0, #0x0
beq _0204F226
mov r1, #0xc
add r0, sp, #0x0
strb r1, [r0, #0x0]
b _0204F22C
_0204F226:
add sp, #0x4
mov r0, #0x0
pop {r3-r4, pc}
_0204F22C:
strb r4, [r0, #0x1]
mov r0, #0x55
add r1, sp, #0x0
bl sub_02030C4C
mov r0, #0x1
add sp, #0x4
pop {r3-r4, pc}
thumb_func_start sub_0204F23C
sub_0204F23C: ; 0x0204F23C
push {r4-r6, lr}
sub sp, #0x8
add r5, r0, #0x0
add r4, r1, #0x0
bl ov18_0223E6B8
mov r0, #0x0
bl sub_0204D628
mov r0, #0x4
bl sub_0204F74C
bl ov18_0223D648
add r6, r0, #0x0
ldrb r0, [r5, #0x1]
bl sub_0202DFA4
add r1, r0, #0x0
add r0, r6, #0x0
bl ov18_0224DDB8
cmp r4, #0x0
beq _0204F29C
bl sub_02031190
ldr r1, _0204F2C8 ; =UNK_021C5A68
mov r2, #0x0
ldr r1, [r1, #0x0]
add r0, r1, r0
add r0, #0xfa
strb r2, [r0, #0x0]
bl sub_02031190
bl sub_0204F0A8
bl sub_02031190
bl sub_0204F074
bl ov18_0223D648
ldr r3, _0204F2CC ; =sub_0204F108
mov r1, #0xa
mov r2, #0x1
bl ov18_0224DCB8
b _0204F2AA
_0204F29C:
bl ov18_0223D648
ldr r3, _0204F2CC ; =sub_0204F108
mov r1, #0xb
mov r2, #0x1
bl ov18_0224DCB8
_0204F2AA:
mov r0, #0xff
str r0, [sp, #0x0]
mov r3, #0x0
ldr r1, _0204F2D0 ; =0x00000424
mov r0, #0x4
mov r2, #0x3c
str r3, [sp, #0x4]
bl sub_02004DCC
ldr r0, _0204F2D4 ; =0x000005F6
bl PlaySE
add sp, #0x8
pop {r4-r6, pc}
nop
_0204F2C8: .word UNK_021C5A68
_0204F2CC: .word sub_0204F108
_0204F2D0: .word 0x00000424
_0204F2D4: .word 0x000005F6
thumb_func_start sub_0204F2D8
sub_0204F2D8: ; 0x0204F2D8
push {r4-r5, lr}
sub sp, #0xc
ldr r0, _0204F5E0 ; =UNK_021C5A68
add r5, r2, #0x0
ldr r0, [r0, #0x0]
ldr r0, [r0, #0x54]
bl FieldSystem_GetSaveData
bl sub_02026CB4
add r4, r0, #0x0
ldrb r0, [r5, #0x0]
cmp r0, #0x5
bgt _0204F308
cmp r0, #0x0
blt _0204F346
beq _0204F31E
cmp r0, #0x3
bne _0204F300
b _0204F4D2
_0204F300:
cmp r0, #0x5
beq _0204F370
add sp, #0xc
pop {r4-r5, pc}
_0204F308:
cmp r0, #0xc
bgt _0204F346
cmp r0, #0xb
blt _0204F346
bne _0204F314
b _0204F48C
_0204F314:
cmp r0, #0xc
bne _0204F31A
b _0204F4AE
_0204F31A:
add sp, #0xc
pop {r4-r5, pc}
_0204F31E:
ldr r1, _0204F5E0 ; =UNK_021C5A68
ldrb r0, [r5, #0x1]
ldr r2, [r1, #0x0]
lsl r1, r0, #0x2
add r2, r2, r1
mov r1, #0x29
lsl r1, r1, #0x4
ldr r1, [r2, r1]
cmp r1, #0x0
beq _0204F346
bl sub_0204ED9C
ldrb r0, [r5, #0x1]
bl sub_0204F0A8
bl sub_02031190
ldrb r1, [r5, #0x1]
cmp r1, r0
beq _0204F348
_0204F346:
b _0204F5DA
_0204F348:
bl sub_0204F7E4
bl ov18_0223D648
ldr r3, _0204F5E4 ; =sub_0204E2B4
mov r1, #0x2
mov r2, #0x1
bl ov18_0224DCB8
mov r0, #0xff
str r0, [sp, #0x0]
mov r3, #0x0
ldr r1, _0204F5E8 ; =0x00000424
mov r0, #0x4
mov r2, #0x3c
str r3, [sp, #0x4]
bl sub_02004DCC
add sp, #0xc
pop {r4-r5, pc}
_0204F370:
ldrb r0, [r5, #0x1]
bl sub_0202DFA4
cmp r0, #0x0
bne _0204F384
ldrb r0, [r5, #0x2]
bl sub_0204ED9C
add sp, #0xc
pop {r4-r5, pc}
_0204F384:
ldr r0, _0204F5E0 ; =UNK_021C5A68
ldr r1, [r0, #0x0]
ldrb r0, [r5, #0x2]
lsl r0, r0, #0x2
add r1, r1, r0
mov r0, #0x29
lsl r0, r0, #0x4
ldr r0, [r1, r0]
cmp r0, #0x0
bne _0204F3AC
bl sub_02031190
ldrb r1, [r5, #0x1]
cmp r1, r0
beq _0204F3A4
b _0204F5DA
_0204F3A4:
bl sub_0204F7FC
add sp, #0xc
pop {r4-r5, pc}
_0204F3AC:
ldrb r0, [r5, #0x1]
bl sub_0202DFA4
add r1, r0, #0x0
ldr r0, _0204F5E0 ; =UNK_021C5A68
ldr r2, [r0, #0x0]
ldrb r0, [r5, #0x2]
lsl r0, r0, #0x2
add r2, r2, r0
mov r0, #0x29
lsl r0, r0, #0x4
ldr r0, [r2, r0]
bl PlayerProfile_NameAndOTIDMatchPlayer
cmp r0, #0x1
bne _0204F41A
ldrb r0, [r5, #0x2]
bl sub_0204ED9C
bl sub_02031190
ldrb r1, [r5, #0x1]
cmp r1, r0
bne _0204F3FC
add r0, r4, #0x0
bl sub_02026C00
bl sub_0204F7E4
bl ov18_0223D648
ldr r3, _0204F5EC ; =sub_0204E2AC
mov r1, #0xd
mov r2, #0x1
bl ov18_0224DCB8
ldr r0, _0204F5F0 ; =0x00000625
bl PlaySE
b _0204F410
_0204F3FC:
bl sub_02031190
ldrb r1, [r5, #0x2]
cmp r1, r0
bne _0204F410
add r0, r5, #0x0
mov r1, #0x0
add r2, r4, #0x0
bl sub_0204F23C
_0204F410:
ldrb r0, [r5, #0x1]
bl ov18_022472AC
add sp, #0xc
pop {r4-r5, pc}
_0204F41A:
ldrb r0, [r5, #0x1]
ldrb r1, [r5, #0x2]
bl sub_0204EF50
cmp r0, #0x0
beq _0204F4B8
bl sub_02031190
ldrb r1, [r5, #0x1]
cmp r1, r0
bne _0204F46C
add r0, r4, #0x0
bl sub_02026970
mov r0, #0x1
bl sub_0204F74C
bl ov18_0223D648
add r4, r0, #0x0
ldrb r0, [r5, #0x2]
bl sub_0202DFA4
add r1, r0, #0x0
add r0, r4, #0x0
bl ov18_0224DDB8
bl ov18_0223D648
ldr r3, _0204F5F4 ; =sub_0204E2D4
mov r1, #0xc
mov r2, #0x1
bl ov18_0224DCB8
ldr r0, _0204F5F8 ; =0x00000425
bl sub_0200521C
ldr r0, _0204F5F0 ; =0x00000625
bl PlaySE
b _0204F480
_0204F46C:
bl sub_02031190
ldrb r1, [r5, #0x2]
cmp r1, r0
bne _0204F480
add r0, r5, #0x0
mov r1, #0x1
add r2, r4, #0x0
bl sub_0204F23C
_0204F480:
ldrb r0, [r5, #0x1]
ldrb r1, [r5, #0x2]
bl ov18_02247294
add sp, #0xc
pop {r4-r5, pc}
_0204F48C:
bl sub_02031190
ldrb r1, [r5, #0x1]
cmp r1, r0
bne _0204F4B8
mov r0, #0x2
bl sub_0204F74C
bl ov18_0223D648
ldr r3, _0204F5FC ; =sub_0204E2BC
mov r1, #0x6
mov r2, #0x1
bl ov18_0224DCB8
add sp, #0xc
pop {r4-r5, pc}
_0204F4AE:
bl sub_02031190
ldrb r1, [r5, #0x1]
cmp r1, r0
beq _0204F4BA
_0204F4B8:
b _0204F5DA
_0204F4BA:
mov r0, #0x20
bl sub_0204F74C
bl ov18_0223D648
ldr r3, _0204F600 ; =sub_0204E2C8
mov r1, #0x5
mov r2, #0x1
bl ov18_0224DCB8
add sp, #0xc
pop {r4-r5, pc}
_0204F4D2:
ldr r0, _0204F5E0 ; =UNK_021C5A68
mov r2, #0x0
ldr r1, [r0, #0x0]
ldrb r0, [r5, #0x1]
add r0, r1, r0
add r0, #0xfa
strb r2, [r0, #0x0]
ldrb r0, [r5, #0x1]
bl sub_0204F0A8
bl sub_02031190
ldrb r1, [r5, #0x1]
cmp r1, r0
bne _0204F58C
ldr r0, _0204F5E0 ; =UNK_021C5A68
ldr r0, [r0, #0x0]
ldr r0, [r0, #0x54]
bl FieldSystem_GetSaveData
bl sub_02026CB4
add r4, r0, #0x0
bl sub_020269A0
add r1, sp, #0x8
strb r0, [r1, #0x0]
add r0, r4, #0x0
bl sub_020269D4
ldr r0, _0204F5E0 ; =UNK_021C5A68
ldr r0, [r0, #0x0]
ldr r0, [r0, #0x54]
ldr r0, [r0, #0xc]
bl Save_VarsFlags_Get
bl sub_0205EDF8
ldr r0, _0204F5E0 ; =UNK_021C5A68
ldrb r1, [r5, #0x1]
ldr r0, [r0, #0x0]
lsl r1, r1, #0x2
add r2, r0, r1
mov r1, #0x29
lsl r1, r1, #0x4
ldr r1, [r2, r1]
cmp r1, #0x0
beq _0204F54A
ldr r0, [r0, #0x54]
bl sub_0206189C
ldr r0, _0204F5E0 ; =UNK_021C5A68
ldr r1, _0204F604 ; =0x0000FFFF
ldr r3, [r0, #0x0]
ldr r0, _0204F608 ; =0x000002B2
ldrh r2, [r3, r0]
cmp r2, r1
beq _0204F54A
add r1, r2, #0x1
strh r1, [r3, r0]
_0204F54A:
bl sub_0204F7E4
ldr r0, _0204F60C ; =0x0000062B
bl PlaySE
add r0, r4, #0x0
bl sub_020269A0
add r1, sp, #0x8
ldrb r1, [r1, #0x0]
cmp r1, r0
bne _0204F572
bl ov18_0223D648
ldr r3, _0204F5EC ; =sub_0204E2AC
mov r1, #0x7
mov r2, #0x1
bl ov18_0224DCB8
b _0204F57A
_0204F572:
mov r0, #0x60
add r1, sp, #0x8
bl sub_020311D0
_0204F57A:
mov r0, #0xff
str r0, [sp, #0x0]
mov r3, #0x0
ldr r1, _0204F5E8 ; =0x00000424
mov r0, #0x4
mov r2, #0x3c
str r3, [sp, #0x4]
bl sub_02004DCC
_0204F58C:
ldr r0, _0204F5E0 ; =UNK_021C5A68
ldr r1, [r0, #0x0]
ldrb r0, [r5, #0x1]
lsl r0, r0, #0x2
add r1, r1, r0
mov r0, #0x29
lsl r0, r0, #0x4
ldr r0, [r1, r0]
cmp r0, #0x0
beq _0204F5D4
bl sub_02031190
bl sub_0202DFA4
add r1, r0, #0x0
ldr r0, _0204F5E0 ; =UNK_021C5A68
ldr r2, [r0, #0x0]
ldrb r0, [r5, #0x1]
lsl r0, r0, #0x2
add r2, r2, r0
mov r0, #0x29
lsl r0, r0, #0x4
ldr r0, [r2, r0]
bl PlayerProfile_NameAndOTIDMatchPlayer
cmp r0, #0x1
bne _0204F5D4
ldrb r0, [r5, #0x1]
bl sub_0202DFA4
add r1, r0, #0x0
ldr r0, _0204F5E0 ; =UNK_021C5A68
ldr r0, [r0, #0x0]
ldr r0, [r0, #0x54]
bl sub_020618B8
_0204F5D4:
ldrb r0, [r5, #0x1]
bl sub_0204EDEC
_0204F5DA:
add sp, #0xc
pop {r4-r5, pc}
nop
_0204F5E0: .word UNK_021C5A68
_0204F5E4: .word sub_0204E2B4
_0204F5E8: .word 0x00000424
_0204F5EC: .word sub_0204E2AC
_0204F5F0: .word 0x00000625
_0204F5F4: .word sub_0204E2D4
_0204F5F8: .word 0x00000425
_0204F5FC: .word sub_0204E2BC
_0204F600: .word sub_0204E2C8
_0204F604: .word 0x0000FFFF
_0204F608: .word 0x000002B2
_0204F60C: .word 0x0000062B
thumb_func_start sub_0204F610
sub_0204F610: ; 0x0204F610
push {r3, lr}
cmp r0, #0x0
bne _0204F61A
mov r0, #0x1
pop {r3, pc}
_0204F61A:
cmp r0, #0x1
bne _0204F622
mov r0, #0x0
pop {r3, pc}
_0204F622:
cmp r0, #0x2
bne _0204F62A
mov r0, #0x3
pop {r3, pc}
_0204F62A:
cmp r0, #0x3
bne _0204F632
mov r0, #0x2
pop {r3, pc}
_0204F632:
bl GF_AssertFail
mov r0, #0x2
pop {r3, pc}
.balign 4
thumb_func_start sub_0204F63C
sub_0204F63C: ; 0x0204F63C
push {r3-r4}
ldr r3, _0204F658 ; =UNK_021C5A68
ldr r2, [r3, #0x0]
add r4, r2, r0
ldr r2, _0204F65C ; =0x0000011A
strb r1, [r4, r2]
ldr r1, [r3, #0x0]
mov r4, #0xf
add r0, r1, r0
add r2, #0x20
strb r4, [r0, r2]
pop {r3-r4}
bx lr
nop
_0204F658: .word UNK_021C5A68
_0204F65C: .word 0x0000011A
thumb_func_start sub_0204F660
sub_0204F660: ; 0x0204F660
ldr r1, _0204F670 ; =UNK_021C5A68
mov r2, #0x0
ldr r1, [r1, #0x0]
add r1, r1, r0
ldr r0, _0204F674 ; =0x0000011A
strb r2, [r1, r0]
bx lr
nop
_0204F670: .word UNK_021C5A68
_0204F674: .word 0x0000011A
thumb_func_start sub_0204F678
sub_0204F678: ; 0x0204F678
push {r3-r4}
ldr r3, _0204F694 ; =UNK_021C5A68
ldr r2, [r3, #0x0]
add r4, r2, r0
ldr r2, _0204F698 ; =0x00000122
strb r1, [r4, r2]
ldr r1, [r3, #0x0]
mov r4, #0xf
add r0, r1, r0
add r2, #0x18
strb r4, [r0, r2]
pop {r3-r4}
bx lr
nop
_0204F694: .word UNK_021C5A68
_0204F698: .word 0x00000122
thumb_func_start sub_0204F69C
sub_0204F69C: ; 0x0204F69C
ldr r1, _0204F6AC ; =UNK_021C5A68
mov r2, #0x0
ldr r1, [r1, #0x0]
add r1, r1, r0
ldr r0, _0204F6B0 ; =0x00000122
strb r2, [r1, r0]
bx lr
nop
_0204F6AC: .word UNK_021C5A68
_0204F6B0: .word 0x00000122
thumb_func_start sub_0204F6B4
sub_0204F6B4: ; 0x0204F6B4
ldr r1, _0204F6C0 ; =UNK_021C5A68
ldr r1, [r1, #0x0]
add r1, r1, r0
ldr r0, _0204F6C4 ; =0x00000142
ldrb r0, [r1, r0]
bx lr
.balign 4
_0204F6C0: .word UNK_021C5A68
_0204F6C4: .word 0x00000142
thumb_func_start sub_0204F6C8
sub_0204F6C8: ; 0x0204F6C8
ldr r1, _0204F6D4 ; =UNK_021C5A68
ldr r1, [r1, #0x0]
add r1, r1, r0
ldr r0, _0204F6D8 ; =0x0000013A
ldrb r0, [r1, r0]
bx lr
.balign 4
_0204F6D4: .word UNK_021C5A68
_0204F6D8: .word 0x0000013A
thumb_func_start sub_0204F6DC
sub_0204F6DC: ; 0x0204F6DC
push {r4, lr}
add r4, r0, #0x0
ldr r0, _0204F708 ; =UNK_021C5A68
add r1, r4, #0x0
ldr r0, [r0, #0x0]
ldr r0, [r0, #0x54]
ldr r0, [r0, #0x38]
bl PlayerAvatar_SetFacingDirection
bl sub_02031190
ldr r1, _0204F708 ; =UNK_021C5A68
lsl r0, r0, #0x3
ldr r1, [r1, #0x0]
add r0, r1, r0
add r0, #0xa6
strb r4, [r0, #0x0]
mov r0, #0x0
bl sub_0204D168
pop {r4, pc}
nop
_0204F708: .word UNK_021C5A68
thumb_func_start sub_0204F70C
sub_0204F70C: ; 0x0204F70C
push {r4, lr}
ldr r3, _0204F728 ; =UNK_021C5A68
lsl r2, r0, #0x3
ldr r4, [r3, #0x0]
lsl r0, r0, #0x2
add r2, r4, r2
add r2, #0xa6
strb r1, [r2, #0x0]
ldr r2, [r3, #0x0]
add r0, r2, r0
ldr r0, [r0, #0x8]
bl PlayerAvatar_SetFacingDirection
pop {r4, pc}
.balign 4
_0204F728: .word UNK_021C5A68
thumb_func_start sub_0204F72C
sub_0204F72C: ; 0x0204F72C
push {r3, lr}
ldr r1, _0204F748 ; =UNK_021C5A68
lsl r0, r0, #0x2
ldr r1, [r1, #0x0]
add r0, r1, r0
ldr r0, [r0, #0x8]
cmp r0, #0x0
beq _0204F742
bl PlayerAvatar_GetFacingDirection
pop {r3, pc}
_0204F742:
mov r0, #0x0
mvn r0, r0
pop {r3, pc}
.balign 4
_0204F748: .word UNK_021C5A68
thumb_func_start sub_0204F74C
sub_0204F74C: ; 0x0204F74C
push {r3, lr}
cmp r0, #0x0
beq _0204F75C
ldr r1, _0204F770 ; =UNK_021C5A68
ldr r2, [r1, #0x0]
ldr r1, [r2, #0x0]
orr r0, r1
str r0, [r2, #0x0]
_0204F75C:
bl sub_02037760
ldr r0, _0204F770 ; =UNK_021C5A68
mov r2, #0x0
ldr r1, [r0, #0x0]
mov r0, #0xaf
lsl r0, r0, #0x2
strb r2, [r1, r0]
pop {r3, pc}
nop
_0204F770: .word UNK_021C5A68
thumb_func_start sub_0204F774
sub_0204F774: ; 0x0204F774
push {r3-r4, lr}
sub sp, #0x4
add r4, r0, #0x0
beq _0204F788
ldr r0, _0204F7D0 ; =UNK_021C5A68
ldr r2, [r0, #0x0]
mvn r0, r4
ldr r1, [r2, #0x0]
and r0, r1
str r0, [r2, #0x0]
_0204F788:
ldr r0, _0204F7D0 ; =UNK_021C5A68
ldr r0, [r0, #0x0]
ldr r0, [r0, #0x0]
cmp r0, #0x10
bne _0204F7A0
mov r1, #0x1
add r0, sp, #0x0
strb r1, [r0, #0x0]
mov r0, #0x3e
add r1, sp, #0x0
bl sub_020311D0
_0204F7A0:
ldr r0, _0204F7D0 ; =UNK_021C5A68
ldr r0, [r0, #0x0]
ldr r0, [r0, #0x0]
cmp r0, #0x0
bne _0204F7CC
cmp r4, #0x10
beq _0204F7BC
bl sub_02037778
mov r0, #0x1
bl sub_0204D628
add sp, #0x4
pop {r3-r4, pc}
_0204F7BC:
bl sub_02037778
ldr r0, _0204F7D0 ; =UNK_021C5A68
mov r2, #0x1
ldr r1, [r0, #0x0]
mov r0, #0xaf
lsl r0, r0, #0x2
strb r2, [r1, r0]
_0204F7CC:
add sp, #0x4
pop {r3-r4, pc}
.balign 4
_0204F7D0: .word UNK_021C5A68
thumb_func_start sub_0204F7D4
sub_0204F7D4: ; 0x0204F7D4
ldr r0, _0204F7E0 ; =UNK_021C5A68
mov r1, #0x0
ldr r0, [r0, #0x0]
str r1, [r0, #0x0]
bx lr
nop
_0204F7E0: .word UNK_021C5A68
thumb_func_start sub_0204F7E4
sub_0204F7E4: ; 0x0204F7E4
push {r3, lr}
bl sub_02037760
ldr r0, _0204F7F8 ; =UNK_021C5A68
mov r2, #0x0
ldr r1, [r0, #0x0]
mov r0, #0xaf
lsl r0, r0, #0x2
strb r2, [r1, r0]
pop {r3, pc}
.balign 4
_0204F7F8: .word UNK_021C5A68
thumb_func_start sub_0204F7FC
sub_0204F7FC: ; 0x0204F7FC
push {r3, lr}
bl sub_02037778
mov r0, #0x1
bl sub_0204D628
pop {r3, pc}
.balign 4
thumb_func_start sub_0204F80C
sub_0204F80C: ; 0x0204F80C
push {r3, lr}
ldr r0, _0204F850 ; =UNK_021C5A68
ldr r2, [r0, #0x0]
ldr r0, _0204F854 ; =0x000002BF
ldrb r1, [r2, r0]
cmp r1, #0x0
bne _0204F84C
sub r0, r0, #0x1
ldrb r0, [r2, r0]
cmp r0, #0x0
bne _0204F832
bl sub_0204F7FC
ldr r0, _0204F850 ; =UNK_021C5A68
mov r2, #0x1
ldr r1, [r0, #0x0]
ldr r0, _0204F854 ; =0x000002BF
strb r2, [r1, r0]
pop {r3, pc}
_0204F832:
bl sub_02031190
bl ov12_0223E734
cmp r0, #0x0
beq _0204F84C
bl sub_0204F7FC
ldr r0, _0204F850 ; =UNK_021C5A68
mov r2, #0x1
ldr r1, [r0, #0x0]
ldr r0, _0204F854 ; =0x000002BF
strb r2, [r1, r0]
_0204F84C:
pop {r3, pc}
nop
_0204F850: .word UNK_021C5A68
_0204F854: .word 0x000002BF
thumb_func_start sub_0204F858
sub_0204F858: ; 0x0204F858
push {r3, lr}
ldr r0, _0204F884 ; =UNK_021C5A68
ldr r2, [r0, #0x0]
ldr r0, _0204F888 ; =0x000002BF
ldrb r1, [r2, r0]
cmp r1, #0x0
bne _0204F880
sub r0, r0, #0x1
ldrb r0, [r2, r0]
cmp r0, #0x0
beq _0204F880
bl sub_02031190
bl ov12_0223E734
cmp r0, #0x0
bne _0204F880
mov r0, #0x0
bl sub_0204D628
_0204F880:
pop {r3, pc}
nop
_0204F884: .word UNK_021C5A68
_0204F888: .word 0x000002BF
thumb_func_start sub_0204F88C
sub_0204F88C: ; 0x0204F88C
push {r3-r7, lr}
sub sp, #0x10
ldr r0, _0204F908 ; =UNK_021C5A68
ldr r0, [r0, #0x0]
cmp r0, #0x0
beq _0204F902
mov r6, #0x0
add r4, r6, #0x0
add r5, r6, #0x0
_0204F89E:
ldr r0, _0204F908 ; =UNK_021C5A68
ldr r0, [r0, #0x0]
add r0, r0, r4
ldr r0, [r0, #0x8]
cmp r0, #0x0
beq _0204F8F8
bl sub_02031190
cmp r6, r0
beq _0204F8F8
ldr r0, _0204F908 ; =UNK_021C5A68
ldr r0, [r0, #0x0]
add r0, r0, r4
ldr r0, [r0, #0x8]
bl PlayerAvatar_GetMapObject
ldr r1, _0204F908 ; =UNK_021C5A68
str r0, [sp, #0xc]
ldr r1, [r1, #0x0]
add r1, r1, r5
add r2, r1, #0x0
add r2, #0xa2
ldrh r2, [r2, #0x0]
str r2, [sp, #0x8]
add r2, r1, #0x0
add r2, #0xa4
ldrh r7, [r2, #0x0]
mov r2, #0xa6
ldrsb r1, [r1, r2]
str r1, [sp, #0x4]
ldr r1, [sp, #0x8]
bl MapObject_SetCurrentX
ldr r0, [sp, #0xc]
add r1, r7, #0x0
bl MapObject_SetCurrentZ
ldr r0, [sp, #0x4]
ldr r1, [sp, #0x8]
str r0, [sp, #0x0]
ldr r0, [sp, #0xc]
mov r2, #0x0
add r3, r7, #0x0
bl MapObject_SetPositionFromXYZAndDirection
_0204F8F8:
add r6, r6, #0x1
add r4, r4, #0x4
add r5, #0x8
cmp r6, #0x8
blt _0204F89E
_0204F902:
add sp, #0x10
pop {r3-r7, pc}
nop
_0204F908: .word UNK_021C5A68
thumb_func_start sub_0204F90C
sub_0204F90C: ; 0x0204F90C
push {r4-r5}
mov r3, #0xff
mov r4, #0x0
add r0, r3, #0x0
ldr r1, _0204F92C ; =UNK_021C5A68
add r5, r4, #0x0
add r0, #0x6b
_0204F91A:
ldr r2, [r1, #0x0]
add r4, r4, #0x1
add r2, r2, r5
add r5, #0x22
strh r3, [r2, r0]
cmp r4, #0x8
blt _0204F91A
pop {r4-r5}
bx lr
.balign 4
_0204F92C: .word UNK_021C5A68
thumb_func_start sub_0204F930
sub_0204F930: ; 0x0204F930
push {r3-r5, lr}
ldr r0, _0204F9B0 ; =UNK_021C5A68
mov r2, #0x0
ldr r1, [r0, #0x0]
ldr r0, _0204F9B4 ; =0x000002B9
strb r2, [r1, r0]
bl sub_02031190
ldr r1, _0204F9B0 ; =UNK_021C5A68
lsl r0, r0, #0x2
ldr r1, [r1, #0x0]
add r1, r1, r0
mov r0, #0x29
lsl r0, r0, #0x4
ldr r0, [r1, r0]
cmp r0, #0x0
beq _0204F96E
bl sub_02031190
ldr r1, _0204F9B0 ; =UNK_021C5A68
add r3, r0, #0x0
ldr r2, [r1, #0x0]
lsl r1, r3, #0x2
add r2, r2, r1
mov r1, #0x29
lsl r1, r1, #0x4
ldr r1, [r2, r1]
mov r0, #0x5b
bl sub_020311D0
pop {r3-r5, pc}
_0204F96E:
mov r0, #0xf
bl PlayerProfile_New
add r4, r0, #0x0
mov r0, #0x14
mov r1, #0xf
bl String_New
add r5, r0, #0x0
cmp r4, #0x0
bne _0204F988
bl GF_AssertFail
_0204F988:
cmp r5, #0x0
bne _0204F990
bl GF_AssertFail
_0204F990:
add r0, r4, #0x0
add r1, r5, #0x0
bl PlayerName_StringToFlat
mov r0, #0x5b
add r1, r4, #0x0
bl sub_020311D0
add r0, r5, #0x0
bl String_Delete
add r0, r4, #0x0
bl Heap_Free
pop {r3-r5, pc}
nop
_0204F9B0: .word UNK_021C5A68
_0204F9B4: .word 0x000002B9
thumb_func_start sub_0204F9B8
sub_0204F9B8: ; 0x0204F9B8
mov r0, #0x20
bx lr
thumb_func_start sub_0204F9BC
sub_0204F9BC: ; 0x0204F9BC
push {r3-r7, lr}
sub sp, #0x8
add r5, r0, #0x0
add r0, sp, #0x4
strb r5, [r0, #0x0]
ldr r0, _0204FA54 ; =UNK_021C5A68
add r6, r2, #0x0
ldr r2, [r0, #0x0]
cmp r2, #0x0
beq _0204FA4C
ldr r1, _0204FA58 ; =0x0000014A
mov r0, #0x22
add r4, r5, #0x0
mul r4, r0
add r1, r2, r1
add r0, r6, #0x0
add r1, r1, r4
bl PlayerProfile_Copy
add r0, r6, #0x0
mov r1, #0xf
bl PlayerProfile_GetPlayerName_NewString
str r0, [sp, #0x0]
bl StringGetLength
cmp r0, #0x0
beq _0204F9FE
ldr r0, _0204FA54 ; =UNK_021C5A68
ldr r0, [r0, #0x0]
add r1, r0, r4
ldr r0, _0204FA5C ; =0x0000016A
strh r5, [r1, r0]
_0204F9FE:
mov r4, #0x0
ldr r6, _0204FA54 ; =UNK_021C5A68
ldr r7, _0204FA5C ; =0x0000016A
add r5, r4, #0x0
_0204FA06:
ldr r0, [r6, #0x0]
add r1, r0, r5
ldrh r0, [r1, r7]
cmp r0, #0xff
beq _0204FA26
ldr r0, _0204FA5C ; =0x0000016A
strh r4, [r1, r0]
mov r0, #0x5c
add r1, r0, #0x0
ldr r2, [r6, #0x0]
add r1, #0xee
add r1, r2, r1
add r1, r1, r5
mov r2, #0x22
bl sub_02030B3C
_0204FA26:
add r4, r4, #0x1
add r5, #0x22
cmp r4, #0x8
blt _0204FA06
mov r0, #0x5d
add r1, sp, #0x4
mov r2, #0x1
bl sub_02030BC4
ldr r0, [sp, #0x0]
bl String_Delete
ldr r0, _0204FA54 ; =UNK_021C5A68
mov r2, #0x1
ldr r1, [r0, #0x0]
ldr r0, _0204FA60 ; =0x000002C2
add sp, #0x8
strb r2, [r1, r0]
pop {r3-r7, pc}
_0204FA4C:
bl GF_AssertFail
add sp, #0x8
pop {r3-r7, pc}
.balign 4
_0204FA54: .word UNK_021C5A68
_0204FA58: .word 0x0000014A
_0204FA5C: .word 0x0000016A
_0204FA60: .word 0x000002C2
thumb_func_start sub_0204FA64
sub_0204FA64: ; 0x0204FA64
ldr r0, _0204FA70 ; =UNK_021C5A68
ldr r1, [r0, #0x0]
ldr r0, _0204FA74 ; =0x0000025A
add r0, r1, r0
bx lr
nop
_0204FA70: .word UNK_021C5A68
_0204FA74: .word 0x0000025A
thumb_func_start sub_0204FA78
sub_0204FA78: ; 0x0204FA78
push {r4-r6, lr}
ldr r0, _0204FAC8 ; =UNK_021C5A68
add r6, r2, #0x0
ldr r1, [r0, #0x0]
cmp r1, #0x0
beq _0204FAC4
ldrh r5, [r6, #0x20]
lsl r0, r5, #0x2
add r1, r1, r0
mov r0, #0x29
lsl r0, r0, #0x4
ldr r0, [r1, r0]
cmp r0, #0x0
beq _0204FA98
bl Heap_Free
_0204FA98:
mov r0, #0xf
lsl r4, r5, #0x2
bl PlayerProfile_New
ldr r2, _0204FAC8 ; =UNK_021C5A68
ldr r1, [r2, #0x0]
add r3, r1, r4
mov r1, #0x29
lsl r1, r1, #0x4
str r0, [r3, r1]
ldr r2, [r2, #0x0]
add r0, r6, #0x0
add r2, r2, r4
ldr r1, [r2, r1]
bl PlayerProfile_Copy
ldr r0, _0204FAC8 ; =UNK_021C5A68
mov r1, #0x1
ldr r0, [r0, #0x0]
add r0, r0, r5
add r0, #0xfa
strb r1, [r0, #0x0]
_0204FAC4:
pop {r4-r6, pc}
nop
_0204FAC8: .word UNK_021C5A68
thumb_func_start sub_0204FACC
sub_0204FACC: ; 0x0204FACC
mov r0, #0x22
bx lr
thumb_func_start sub_0204FAD0
sub_0204FAD0: ; 0x0204FAD0
push {r4, lr}
add r4, r2, #0x0
bl sub_02031190
ldrb r1, [r4, #0x0]
cmp r1, r0
bne _0204FAE8
ldr r0, _0204FAF4 ; =UNK_021C5A68
mov r2, #0x1
ldr r1, [r0, #0x0]
ldr r0, _0204FAF8 ; =0x000002B9
strb r2, [r1, r0]
_0204FAE8:
ldr r0, _0204FAF4 ; =UNK_021C5A68
mov r2, #0x0
ldr r1, [r0, #0x0]
ldr r0, _0204FAFC ; =0x000002C2
strb r2, [r1, r0]
pop {r4, pc}
.balign 4
_0204FAF4: .word UNK_021C5A68
_0204FAF8: .word 0x000002B9
_0204FAFC: .word 0x000002C2
thumb_func_start sub_0204FB00
sub_0204FB00: ; 0x0204FB00
ldr r0, _0204FB0C ; =UNK_021C5A68
ldr r1, [r0, #0x0]
ldr r0, _0204FB10 ; =0x000002B9
ldrb r0, [r1, r0]
bx lr
nop
_0204FB0C: .word UNK_021C5A68
_0204FB10: .word 0x000002B9
thumb_func_start sub_0204FB14
sub_0204FB14: ; 0x0204FB14
ldr r0, _0204FB24 ; =UNK_021C5A68
mov r2, #0x8
ldr r1, [r0, #0x0]
mov r0, #0xb
lsl r0, r0, #0x6
strb r2, [r1, r0]
bx lr
nop
_0204FB24: .word UNK_021C5A68
thumb_func_start sub_0204FB28
sub_0204FB28: ; 0x0204FB28
push {r3-r5, lr}
mov r4, #0x0
bl sub_02031190
ldr r2, _0204FB9C ; =UNK_021C5A68
lsl r1, r0, #0x2
ldr r3, [r2, #0x0]
add r5, r3, r1
mov r1, #0x29
lsl r1, r1, #0x4
ldr r3, [r5, r1]
cmp r3, #0x0
beq _0204FB60
add r4, r3, #0x0
mov r3, #0x0
str r3, [r5, r1]
ldr r1, [r2, #0x0]
add r1, r1, r0
add r1, #0xfa
strb r3, [r1, #0x0]
ldr r3, [r2, #0x0]
mov r2, #0x22
mul r2, r0
mov r1, #0xff
add r0, r1, #0x0
add r2, r3, r2
add r0, #0x6b
strh r1, [r2, r0]
_0204FB60:
mov r5, #0x0
_0204FB62:
add r0, r5, #0x0
bl sub_0204ED9C
add r5, r5, #0x1
cmp r5, #0x8
blt _0204FB62
cmp r4, #0x0
beq _0204FB9A
ldr r1, _0204FB9C ; =UNK_021C5A68
mov r0, #0x29
ldr r2, [r1, #0x0]
lsl r0, r0, #0x4
str r4, [r2, r0]
ldr r0, [r1, #0x0]
mov r2, #0x1
add r0, #0xfa
strb r2, [r0, #0x0]
ldr r2, [r1, #0x0]
ldr r1, _0204FBA0 ; =0x0000014A
add r0, r4, #0x0
add r1, r2, r1
bl PlayerProfile_Copy
ldr r0, _0204FB9C ; =UNK_021C5A68
mov r2, #0x0
ldr r1, [r0, #0x0]
ldr r0, _0204FBA4 ; =0x0000016A
strh r2, [r1, r0]
_0204FB9A:
pop {r3-r5, pc}
.balign 4
_0204FB9C: .word UNK_021C5A68
_0204FBA0: .word 0x0000014A
_0204FBA4: .word 0x0000016A