Files
pokediamond/arm9/modules/55/asm/module_55.s
2020-05-29 09:40:48 -04:00

5632 lines
96 KiB
ArmAsm

.include "asm/macros.inc"
.include "global.inc"
.section .text
.balign 4, 0
thumb_func_start MOD55_021D74E0
MOD55_021D74E0: ; 0x021D74E0
push {r4, lr}
add r4, r0, #0
bl MOD55_021D7BF0
add r0, r4, #0
bl MOD55_021D7C20
add r0, r4, #0
bl MOD55_021D7DA0
mov r0, #0x34
bl FUN_02053708
mov r1, #0xeb
lsl r1, r1, #2
str r0, [r4, r1]
pop {r4, pc}
.align 2, 0
thumb_func_end MOD55_021D74E0
thumb_func_start MOD55_021D7504
MOD55_021D7504: ; 0x021D7504
push {r4, lr}
add r4, r0, #0
mov r0, #0
add r1, r0, #0
bl FUN_02015F10
bl FUN_02015F1C
bl FUN_0201E6D8
bl FUN_0201E740
mov r2, #1
lsl r2, r2, #0x1a
ldr r1, [r2]
ldr r0, _021D7560 ; =0xFFFFE0FF
and r1, r0
str r1, [r2]
ldr r2, _021D7564 ; =0x04001000
ldr r1, [r2]
and r0, r1
str r0, [r2]
mov r0, #4
mov r1, #8
bl FUN_0201669C
mov r0, #0x34
bl FUN_02016B94
str r0, [r4, #4]
bl MOD55_021D780C
ldr r0, [r4, #4]
bl MOD55_021D781C
add r0, r4, #0
bl MOD55_021D7AE0
ldr r0, _021D7568 ; =MOD55_021D77D0
add r1, r4, #0
bl FUN_02015F10
add r0, r4, #0
bl MOD55_021D74E0
pop {r4, pc}
.align 2, 0
_021D7560: .word 0xFFFFE0FF
_021D7564: .word 0x04001000
_021D7568: .word MOD55_021D77D0
thumb_func_end MOD55_021D7504
thumb_func_start MOD55_021D756C
MOD55_021D756C: ; 0x021D756C
push {r3, r4, r5, r6, lr}
sub sp, #0xc
add r5, r1, #0
ldr r1, [r5]
add r6, r0, #0
cmp r1, #0
beq _021D7580
cmp r1, #1
beq _021D75FC
b _021D760A
_021D7580:
mov r0, #0
add r1, r0, #0
bl FUN_0200E3A0
mov r0, #1
mov r1, #0
bl FUN_0200E3A0
mov r0, #0
bl MOD55_021DA27C
mov r2, #1
mov r0, #3
mov r1, #0x34
lsl r2, r2, #0x12
bl FUN_0201681C
ldr r1, _021D7610 ; =0x0000041C
add r0, r6, #0
mov r2, #0x34
bl FUN_02006268
ldr r2, _021D7610 ; =0x0000041C
mov r1, #0
add r4, r0, #0
bl MI_CpuFill8
add r0, r6, #0
bl FUN_0200628C
str r0, [r4, #8]
add r0, r4, #0
bl MOD55_021D7994
mov r0, #6
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
mov r0, #0x34
str r0, [sp, #8]
mov r0, #0
mov r1, #0x11
add r2, r1, #0
add r3, r0, #0
bl FUN_0200E1D0
add r0, r4, #0
bl MOD55_021D7504
add r0, r4, #0
bl MOD55_021D7EE4
add r0, r4, #0
bl MOD55_021D8044
mov r0, #1
bl MOD55_021DA27C
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021D760A
_021D75FC:
bl FUN_02006278
mov r0, #0
str r0, [r5]
add sp, #0xc
mov r0, #1
pop {r3, r4, r5, r6, pc}
_021D760A:
mov r0, #0
add sp, #0xc
pop {r3, r4, r5, r6, pc}
.align 2, 0
_021D7610: .word 0x0000041C
thumb_func_end MOD55_021D756C
thumb_func_start MOD55_021D7614
MOD55_021D7614: ; 0x021D7614
push {r3, r4, r5, r6, lr}
sub sp, #0xc
add r5, r1, #0
ldr r1, [r5]
add r6, r0, #0
cmp r1, #0
beq _021D7628
cmp r1, #1
beq _021D76A4
b _021D76B2
_021D7628:
mov r0, #0
add r1, r0, #0
bl FUN_0200E3A0
mov r0, #1
mov r1, #0
bl FUN_0200E3A0
mov r2, #1
mov r0, #3
mov r1, #0x34
lsl r2, r2, #0x12
bl FUN_0201681C
ldr r1, _021D76B8 ; =0x0000041C
add r0, r6, #0
mov r2, #0x34
bl FUN_02006268
ldr r2, _021D76B8 ; =0x0000041C
mov r1, #0
add r4, r0, #0
bl MI_CpuFill8
add r0, r6, #0
bl FUN_0200628C
str r0, [r4, #8]
add r0, r4, #0
bl MOD55_021D7994
mov r0, #0
bl MOD55_021DA27C
mov r0, #6
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
mov r0, #0x34
str r0, [sp, #8]
mov r0, #0
mov r1, #0x11
add r2, r1, #0
add r3, r0, #0
bl FUN_0200E1D0
add r0, r4, #0
bl MOD55_021D7504
add r0, r4, #0
bl MOD55_021D7EE4
add r0, r4, #0
bl MOD55_021D8044
mov r0, #1
bl MOD55_021DA27C
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _021D76B2
_021D76A4:
bl FUN_02006278
mov r0, #0
str r0, [r5]
add sp, #0xc
mov r0, #1
pop {r3, r4, r5, r6, pc}
_021D76B2:
mov r0, #0
add sp, #0xc
pop {r3, r4, r5, r6, pc}
.align 2, 0
_021D76B8: .word 0x0000041C
thumb_func_end MOD55_021D7614
thumb_func_start MOD55_021D76BC
MOD55_021D76BC: ; 0x021D76BC
push {r3, r4, r5, lr}
add r5, r1, #0
bl FUN_02006278
ldr r1, [r5]
add r4, r0, #0
cmp r1, #0
beq _021D76D6
cmp r1, #1
beq _021D76E4
cmp r1, #2
beq _021D76FA
b _021D770C
_021D76D6:
bl FUN_0200E308
cmp r0, #0
beq _021D770C
mov r0, #1
str r0, [r5]
b _021D770C
_021D76E4:
mov r2, #0x3b
lsl r2, r2, #4
ldr r2, [r4, r2]
lsl r3, r2, #2
ldr r2, _021D771C ; =0x021DA4A0
ldr r2, [r2, r3]
cmp r2, #0
beq _021D770C
blx r2
str r0, [r5]
b _021D770C
_021D76FA:
bl FUN_0200E308
cmp r0, #0
beq _021D770C
mov r0, #0
bl MOD55_021DA27C
mov r0, #1
pop {r3, r4, r5, pc}
_021D770C:
add r4, #0xec
ldr r0, [r4]
cmp r0, #0
beq _021D7718
bl FUN_0201FDEC
_021D7718:
mov r0, #0
pop {r3, r4, r5, pc}
.align 2, 0
_021D771C: .word 0x021DA4A0
thumb_func_end MOD55_021D76BC
thumb_func_start MOD55_021D7720
MOD55_021D7720: ; 0x021D7720
push {r3, r4, r5, r6, r7, lr}
add r6, r0, #0
mov r0, #0x8e
lsl r0, r0, #2
ldr r0, [r6, r0]
bl FUN_02009C0C
mov r0, #0x8a
lsl r0, r0, #2
ldr r0, [r6, r0]
bl FUN_02009C0C
mov r0, #0x8f
lsl r0, r0, #2
ldr r0, [r6, r0]
bl FUN_02009E04
mov r0, #0x8b
lsl r0, r0, #2
ldr r0, [r6, r0]
bl FUN_02009E04
mov r7, #0x86
mov r4, #0
add r5, r6, #0
lsl r7, r7, #2
_021D7754:
ldr r0, [r5, r7]
bl FUN_02008E2C
add r4, r4, #1
add r5, r5, #4
cmp r4, #4
blt _021D7754
add r0, r6, #0
add r0, #0xec
ldr r0, [r0]
bl FUN_0201FD58
add r0, r6, #0
mov r1, #0
add r0, #0xec
str r1, [r0]
bl FUN_02009FA0
bl FUN_0201D12C
bl FUN_0201E08C
mov r0, #0xeb
lsl r0, r0, #2
ldr r0, [r6, r0]
bl FreeToHeap
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end MOD55_021D7720
thumb_func_start MOD55_021D778C
MOD55_021D778C: ; 0x021D778C
push {r4, lr}
add r4, r0, #0
mov r0, #0
add r1, r0, #0
bl FUN_02015F10
add r0, r4, #0
bl MOD55_021D7720
add r0, r4, #0
bl MOD55_021D8140
ldr r0, [r4, #4]
bl MOD55_021D7AA4
pop {r4, pc}
thumb_func_end MOD55_021D778C
thumb_func_start MOD55_021D77AC
MOD55_021D77AC: ; 0x021D77AC
push {r3, r4, r5, lr}
add r5, r0, #0
bl FUN_02006278
add r4, r0, #0
bl MOD55_021D778C
add r0, r4, #0
bl MOD55_021D7A38
add r0, r5, #0
bl FUN_0200627C
mov r0, #0x34
bl FUN_020168D0
mov r0, #1
pop {r3, r4, r5, pc}
thumb_func_end MOD55_021D77AC
thumb_func_start MOD55_021D77D0
MOD55_021D77D0: ; 0x021D77D0
push {r4, lr}
add r4, r0, #0
add r0, #0xe0
ldr r0, [r0]
cmp r0, #0
beq _021D77E6
add r0, r4, #0
add r0, #0xdc
ldr r0, [r0]
bl FUN_020081C4
_021D77E6:
ldr r0, [r4, #4]
bl FUN_0201AB60
bl FUN_0201C30C
bl FUN_02009F80
ldr r3, _021D7804 ; =0x027E0000
ldr r1, _021D7808 ; =0x00003FF8
mov r0, #1
ldr r2, [r3, r1]
orr r0, r2
str r0, [r3, r1]
pop {r4, pc}
nop
_021D7804: .word 0x027E0000
_021D7808: .word 0x00003FF8
thumb_func_end MOD55_021D77D0
thumb_func_start MOD55_021D780C
MOD55_021D780C: ; 0x021D780C
ldr r3, _021D7814 ; =FUN_0201E66C
ldr r0, _021D7818 ; =0x021DA458
bx r3
nop
_021D7814: .word FUN_0201E66C
_021D7818: .word 0x021DA458
thumb_func_end MOD55_021D780C
thumb_func_start MOD55_021D781C
MOD55_021D781C: ; 0x021D781C
push {r4, r5, lr}
sub sp, #0x9c
ldr r5, _021D7974 ; =0x021DA2C8
add r3, sp, #0x8c
add r4, r0, #0
add r2, r3, #0
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
add r0, r2, #0
bl FUN_02016BBC
ldr r5, _021D7978 ; =0x021DA34C
add r3, sp, #0x70
ldmia r5!, {r0, r1}
add r2, r3, #0
stmia r3!, {r0, r1}
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
ldr r0, [r5]
mov r1, #0
str r0, [r3]
add r0, r4, #0
add r3, r1, #0
bl FUN_02016C18
mov r0, #0
mov r1, #0x20
add r2, r0, #0
mov r3, #0x34
bl FUN_02017F18
add r0, r4, #0
mov r1, #0
bl FUN_02018744
ldr r5, _021D797C ; =0x021DA368
add r3, sp, #0x54
ldmia r5!, {r0, r1}
add r2, r3, #0
stmia r3!, {r0, r1}
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
ldr r0, [r5]
mov r1, #1
str r0, [r3]
add r0, r4, #0
mov r3, #0
bl FUN_02016C18
mov r0, #1
mov r1, #0x20
mov r2, #0
mov r3, #0x34
bl FUN_02017F18
add r0, r4, #0
mov r1, #1
bl FUN_02018744
ldr r5, _021D7980 ; =0x021DA384
add r3, sp, #0x38
ldmia r5!, {r0, r1}
add r2, r3, #0
stmia r3!, {r0, r1}
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
ldr r0, [r5]
mov r1, #2
str r0, [r3]
add r0, r4, #0
mov r3, #0
bl FUN_02016C18
mov r0, #2
mov r1, #0x20
mov r2, #0
mov r3, #0x34
bl FUN_02017F18
add r0, r4, #0
mov r1, #2
bl FUN_02018744
ldr r5, _021D7984 ; =0x021DA3A0
add r3, sp, #0x1c
ldmia r5!, {r0, r1}
add r2, r3, #0
stmia r3!, {r0, r1}
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
ldr r0, [r5]
mov r1, #3
str r0, [r3]
add r0, r4, #0
mov r3, #0
bl FUN_02016C18
mov r0, #3
mov r1, #0x20
mov r2, #0
mov r3, #0x34
bl FUN_02017F18
add r0, r4, #0
mov r1, #3
bl FUN_02018744
ldr r5, _021D7988 ; =0x021DA3BC
add r3, sp, #0
ldmia r5!, {r0, r1}
add r2, r3, #0
stmia r3!, {r0, r1}
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
ldr r0, [r5]
mov r1, #4
str r0, [r3]
add r0, r4, #0
mov r3, #0
bl FUN_02016C18
add r0, r4, #0
mov r1, #4
bl FUN_02018744
mov r0, #0
mov r1, #0x20
add r2, r0, #0
mov r3, #0x34
bl FUN_02017F18
mov r0, #4
mov r1, #0x20
mov r2, #0
mov r3, #0x34
bl FUN_02017F18
mov r0, #0
mov r1, #3
bl FUN_020178BC
mov r0, #1
mov r1, #2
bl FUN_020178BC
mov r0, #3
mov r1, #1
bl FUN_020178BC
mov r0, #2
mov r1, #0
bl FUN_020178BC
ldr r0, _021D798C ; =0x04000050
mov r1, #0
strh r1, [r0]
ldr r0, _021D7990 ; =0x04001050
strh r1, [r0]
add sp, #0x9c
pop {r4, r5, pc}
.align 2, 0
_021D7974: .word 0x021DA2C8
_021D7978: .word 0x021DA34C
_021D797C: .word 0x021DA368
_021D7980: .word 0x021DA384
_021D7984: .word 0x021DA3A0
_021D7988: .word 0x021DA3BC
_021D798C: .word 0x04000050
_021D7990: .word 0x04001050
thumb_func_end MOD55_021D781C
thumb_func_start MOD55_021D7994
MOD55_021D7994: ; 0x021D7994
push {r3, r4, r5, r6, r7, lr}
add r6, r0, #0
mov r0, #0x34
bl FUN_0200AA80
str r0, [r6, #0xc]
ldr r2, _021D7A34 ; =0x00000251
mov r0, #0
mov r1, #0x1a
mov r3, #0x34
bl FUN_0200A86C
str r0, [r6, #0x10]
mov r4, #0
add r5, r6, #0
mov r7, #0x10
_021D79B4:
add r0, r7, #0
mov r1, #0x34
bl FUN_020219F4
str r0, [r5, #0x38]
add r4, r4, #1
add r5, r5, #4
cmp r4, #0x20
blt _021D79B4
mov r0, #0x10
mov r1, #0x34
bl FUN_020219F4
add r1, r6, #0
add r1, #0xd4
str r0, [r1]
mov r0, #0x1a
mov r1, #0x34
bl FUN_020219F4
add r1, r6, #0
add r1, #0xd8
str r0, [r1]
mov r0, #0xb4
mov r1, #0x34
bl FUN_020219F4
add r1, r6, #0
add r1, #0xbc
str r0, [r1]
mov r5, #0
add r4, r6, #0
mov r7, #0xb4
_021D79F6:
add r0, r7, #0
mov r1, #0x34
bl FUN_020219F4
add r1, r4, #0
add r1, #0xc4
add r5, r5, #1
add r4, r4, #4
str r0, [r1]
cmp r5, #4
blt _021D79F6
mov r0, #0xb4
mov r1, #0x34
bl FUN_020219F4
add r1, r6, #0
add r1, #0xb8
str r0, [r1]
mov r0, #0x28
mov r1, #0x34
bl FUN_020219F4
add r1, r6, #0
add r1, #0xc0
str r0, [r1]
mov r0, #0x3b
mov r1, #0
lsl r0, r0, #4
str r1, [r6, r0]
pop {r3, r4, r5, r6, r7, pc}
nop
_021D7A34: .word 0x00000251
thumb_func_end MOD55_021D7994
thumb_func_start MOD55_021D7A38
MOD55_021D7A38: ; 0x021D7A38
push {r4, r5, r6, lr}
add r6, r0, #0
ldr r0, [r6, #0x10]
bl FUN_0200A8B8
ldr r0, [r6, #0xc]
bl FUN_0200AB18
mov r4, #0
add r5, r6, #0
_021D7A4C:
ldr r0, [r5, #0x38]
bl FUN_02021A20
add r4, r4, #1
add r5, r5, #4
cmp r4, #0x20
blt _021D7A4C
add r0, r6, #0
add r0, #0xb8
ldr r0, [r0]
bl FUN_02021A20
add r0, r6, #0
add r0, #0xbc
ldr r0, [r0]
bl FUN_02021A20
add r0, r6, #0
add r0, #0xc0
ldr r0, [r0]
bl FUN_02021A20
mov r5, #0
add r4, r6, #0
_021D7A7C:
add r0, r4, #0
add r0, #0xc4
ldr r0, [r0]
bl FUN_02021A20
add r5, r5, #1
add r4, r4, #4
cmp r5, #4
blt _021D7A7C
add r0, r6, #0
add r0, #0xd4
ldr r0, [r0]
bl FUN_02021A20
add r6, #0xd8
ldr r0, [r6]
bl FUN_02021A20
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_end MOD55_021D7A38
thumb_func_start MOD55_021D7AA4
MOD55_021D7AA4: ; 0x021D7AA4
push {r4, lr}
add r4, r0, #0
mov r1, #5
bl FUN_020178A0
add r0, r4, #0
mov r1, #4
bl FUN_020178A0
add r0, r4, #0
mov r1, #3
bl FUN_020178A0
add r0, r4, #0
mov r1, #2
bl FUN_020178A0
add r0, r4, #0
mov r1, #1
bl FUN_020178A0
add r0, r4, #0
mov r1, #0
bl FUN_020178A0
add r0, r4, #0
bl FreeToHeap
pop {r4, pc}
.align 2, 0
thumb_func_end MOD55_021D7AA4
thumb_func_start MOD55_021D7AE0
MOD55_021D7AE0: ; 0x021D7AE0
push {r4, r5, lr}
sub sp, #0x14
add r5, r0, #0
ldr r4, [r5, #4]
mov r2, #0
str r2, [sp]
mov r0, #0x34
str r0, [sp, #4]
mov r0, #0x59
mov r1, #3
add r3, r2, #0
bl FUN_02006930
mov r3, #0
str r3, [sp]
mov r0, #0x34
str r0, [sp, #4]
mov r0, #0x59
mov r1, #3
mov r2, #4
bl FUN_02006930
mov r1, #0x1a
mov r0, #0
lsl r1, r1, #4
mov r2, #0x34
bl FUN_02002EEC
mov r1, #6
mov r0, #0
lsl r1, r1, #6
mov r2, #0x34
bl FUN_02002EEC
ldr r1, _021D7BE4 ; =0x000052D8
add r0, sp, #0x10
strh r1, [r0]
mov r1, #0x6f
add r0, sp, #0x10
lsl r1, r1, #2
mov r2, #2
bl GX_LoadBGPltt
mov r3, #0
str r3, [sp]
str r3, [sp, #4]
str r3, [sp, #8]
mov r0, #0x34
str r0, [sp, #0xc]
mov r0, #0x59
mov r1, #2
add r2, r4, #0
bl FUN_0200687C
mov r3, #0
str r3, [sp]
str r3, [sp, #4]
str r3, [sp, #8]
mov r0, #0x34
str r0, [sp, #0xc]
mov r0, #0x59
mov r1, #8
add r2, r4, #0
bl FUN_020068C8
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0x34
str r0, [sp, #0xc]
ldr r2, [r5, #4]
mov r0, #0x59
mov r1, #4
mov r3, #1
bl FUN_020068C8
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0x34
str r0, [sp, #0xc]
mov r0, #0x59
mov r1, #0xa
add r2, r4, #0
mov r3, #4
bl FUN_0200687C
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0x34
str r0, [sp, #0xc]
mov r0, #0x59
mov r1, #0xb
add r2, r4, #0
mov r3, #4
bl FUN_020068C8
ldr r0, [r5, #8]
bl LoadPlayerDataAddress
bl FUN_02025084
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp]
mov r0, #0x34
str r0, [sp, #4]
ldr r2, _021D7BE8 ; =0x000001E2
add r0, r4, #0
mov r1, #2
mov r3, #0xa
bl FUN_0200CD68
mov r0, #0
str r0, [sp]
mov r0, #0x34
str r0, [sp, #4]
ldr r2, _021D7BEC ; =0x000001D9
add r0, r4, #0
mov r1, #2
mov r3, #0xb
bl FUN_0200CB00
add sp, #0x14
pop {r4, r5, pc}
nop
_021D7BE4: .word 0x000052D8
_021D7BE8: .word 0x000001E2
_021D7BEC: .word 0x000001D9
thumb_func_end MOD55_021D7AE0
thumb_func_start MOD55_021D7BF0
MOD55_021D7BF0: ; 0x021D7BF0
push {r4, lr}
sub sp, #0x10
ldr r4, _021D7C1C ; =0x021DA2E8
add r3, sp, #0
add r2, r3, #0
ldmia r4!, {r0, r1}
stmia r3!, {r0, r1}
ldmia r4!, {r0, r1}
stmia r3!, {r0, r1}
add r0, r2, #0
bl FUN_0201D040
mov r0, #0x14
mov r1, #0x34
bl FUN_0201E00C
bl FUN_0201D168
bl FUN_0201E0BC
add sp, #0x10
pop {r4, pc}
.align 2, 0
_021D7C1C: .word 0x021DA2E8
thumb_func_end MOD55_021D7BF0
thumb_func_start MOD55_021D7C20
MOD55_021D7C20: ; 0x021D7C20
push {r4, r5, r6, r7, lr}
sub sp, #0x14
add r5, r0, #0
bl FUN_020B0FC0
mov r0, #0
str r0, [sp]
mov r1, #0x7e
str r1, [sp, #4]
str r0, [sp, #8]
mov r3, #0x20
str r3, [sp, #0xc]
mov r2, #0x34
str r2, [sp, #0x10]
add r2, r0, #0
bl FUN_02009EAC
add r1, r5, #0
mov r0, #0x1e
add r1, #0xf0
mov r2, #0x34
bl FUN_02008C9C
add r1, r5, #0
add r1, #0xec
str r0, [r1]
add r0, r5, #0
mov r2, #1
add r0, #0xf0
mov r1, #0
lsl r2, r2, #0x14
bl FUN_02008D24
mov r7, #0x86
mov r6, #0
add r4, r5, #0
lsl r7, r7, #2
_021D7C6A:
mov r0, #2
add r1, r6, #0
mov r2, #0x34
bl FUN_02008DEC
str r0, [r4, r7]
add r6, r6, #1
add r4, r4, #4
cmp r6, #4
blt _021D7C6A
mov r3, #1
str r3, [sp]
str r3, [sp, #4]
mov r0, #0x34
str r0, [sp, #8]
mov r0, #0x86
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #0x56
mov r2, #9
bl FUN_02008F34
mov r1, #0x8e
lsl r1, r1, #2
str r0, [r5, r1]
mov r3, #0
str r3, [sp]
mov r0, #1
str r0, [sp, #4]
mov r0, #0x34
sub r1, #0x20
str r0, [sp, #8]
ldr r0, [r5, r1]
mov r1, #0x59
mov r2, #9
bl FUN_02008F34
mov r1, #0x8a
lsl r1, r1, #2
str r0, [r5, r1]
mov r0, #1
str r0, [sp]
str r0, [sp, #4]
mov r0, #5
str r0, [sp, #8]
mov r0, #0x34
sub r1, #0xc
str r0, [sp, #0xc]
ldr r0, [r5, r1]
mov r1, #0x56
mov r2, #7
mov r3, #0
bl FUN_02008FEC
mov r1, #0x8f
lsl r1, r1, #2
str r0, [r5, r1]
mov r3, #0
str r3, [sp]
mov r0, #1
str r0, [sp, #4]
mov r0, #5
str r0, [sp, #8]
mov r0, #0x34
sub r1, #0x20
str r0, [sp, #0xc]
ldr r0, [r5, r1]
mov r1, #0x59
mov r2, #3
bl FUN_02008FEC
mov r1, #0x8b
lsl r1, r1, #2
str r0, [r5, r1]
mov r3, #1
str r3, [sp]
mov r0, #2
str r0, [sp, #4]
mov r0, #0x34
sub r1, #0xc
str r0, [sp, #8]
ldr r0, [r5, r1]
mov r1, #0x56
mov r2, #0xa
bl FUN_020090AC
mov r1, #9
lsl r1, r1, #6
str r0, [r5, r1]
mov r3, #0
str r3, [sp]
mov r0, #2
str r0, [sp, #4]
mov r0, #0x34
sub r1, #0x20
str r0, [sp, #8]
ldr r0, [r5, r1]
mov r1, #0x59
mov r2, #1
bl FUN_020090AC
mov r1, #0x23
lsl r1, r1, #4
str r0, [r5, r1]
mov r3, #1
str r3, [sp]
mov r0, #3
str r0, [sp, #4]
mov r0, #0x34
sub r1, #0xc
str r0, [sp, #8]
ldr r0, [r5, r1]
mov r1, #0x56
mov r2, #0xb
bl FUN_020090AC
mov r1, #0x91
lsl r1, r1, #2
str r0, [r5, r1]
mov r2, #0
str r2, [sp]
mov r0, #3
str r0, [sp, #4]
mov r0, #0x34
sub r1, #0x20
str r0, [sp, #8]
ldr r0, [r5, r1]
mov r1, #0x59
add r3, r2, #0
bl FUN_020090AC
mov r1, #0x8d
lsl r1, r1, #2
str r0, [r5, r1]
add r0, r1, #4
ldr r0, [r5, r0]
bl FUN_02009A50
mov r0, #0x8a
lsl r0, r0, #2
ldr r0, [r5, r0]
bl FUN_02009A50
mov r0, #0x8f
lsl r0, r0, #2
ldr r0, [r5, r0]
bl FUN_02009CF0
mov r0, #0x8b
lsl r0, r0, #2
ldr r0, [r5, r0]
bl FUN_02009CF0
add sp, #0x14
pop {r4, r5, r6, r7, pc}
thumb_func_end MOD55_021D7C20
thumb_func_start MOD55_021D7DA0
MOD55_021D7DA0: ; 0x021D7DA0
push {r4, r5, r6, r7, lr}
sub sp, #0x5c
mov r1, #0
add r5, r0, #0
str r1, [sp]
sub r0, r1, #1
str r0, [sp, #4]
str r0, [sp, #8]
str r1, [sp, #0xc]
mov r2, #0x86
str r1, [sp, #0x10]
lsl r2, r2, #2
ldr r0, [r5, r2]
add r3, r1, #0
str r0, [sp, #0x14]
add r0, r2, #4
ldr r0, [r5, r0]
str r0, [sp, #0x18]
add r0, r2, #0
add r0, #8
ldr r0, [r5, r0]
str r0, [sp, #0x1c]
add r0, r2, #0
add r0, #0xc
ldr r0, [r5, r0]
add r2, #0x30
str r0, [sp, #0x20]
str r1, [sp, #0x24]
add r0, r5, r2
add r2, r1, #0
str r1, [sp, #0x28]
bl FUN_02008AA4
mov r1, #1
mov r3, #0x86
str r1, [sp]
sub r0, r1, #2
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0
str r0, [sp, #0xc]
str r0, [sp, #0x10]
lsl r3, r3, #2
ldr r2, [r5, r3]
str r2, [sp, #0x14]
add r2, r3, #4
ldr r2, [r5, r2]
str r2, [sp, #0x18]
add r2, r3, #0
add r2, #8
ldr r2, [r5, r2]
str r2, [sp, #0x1c]
add r2, r3, #0
add r2, #0xc
ldr r2, [r5, r2]
add r3, #0x54
str r2, [sp, #0x20]
str r0, [sp, #0x24]
str r0, [sp, #0x28]
add r0, r5, r3
add r2, r1, #0
add r3, r1, #0
bl FUN_02008AA4
add r0, r5, #0
add r0, #0xec
ldr r0, [r0]
mov r4, #0
str r0, [sp, #0x2c]
mov r0, #0x9b
lsl r0, r0, #2
add r0, r5, r0
str r0, [sp, #0x30]
mov r0, #1
lsl r0, r0, #0xc
mov r7, #0x62
str r4, [sp, #0x3c]
str r0, [sp, #0x40]
str r0, [sp, #0x44]
str r0, [sp, #0x48]
add r0, sp, #0x2c
strh r4, [r0, #0x20]
mov r0, #1
str r0, [sp, #0x50]
str r0, [sp, #0x54]
mov r0, #0x34
str r0, [sp, #0x58]
mov r0, #0x92
lsl r0, r0, #2
lsl r7, r7, #0xc
add r6, r5, r0
_021D7E56:
asr r0, r4, #1
lsr r0, r0, #0x1e
add r0, r4, r0
asr r1, r0, #2
mov r0, #0x78
mul r0, r1
add r0, #0x16
lsl r0, r0, #0xc
str r0, [sp, #0x34]
lsr r2, r4, #0x1f
lsl r1, r4, #0x1e
sub r1, r1, r2
mov r0, #0x1e
ror r1, r0
add r0, r2, r1
lsl r0, r0, #5
add r0, #0x2b
lsl r0, r0, #0xc
str r0, [sp, #0x38]
cmp r4, #8
bne _021D7E8C
mov r0, #6
lsl r0, r0, #0xc
str r0, [sp, #0x34]
str r7, [sp, #0x38]
str r6, [sp, #0x30]
b _021D7E9A
_021D7E8C:
cmp r4, #9
bne _021D7E9A
mov r0, #0xf9
lsl r0, r0, #0xc
str r0, [sp, #0x34]
str r7, [sp, #0x38]
str r6, [sp, #0x30]
_021D7E9A:
add r0, sp, #0x2c
bl FUN_0201FE94
mov r1, #0x29
lsl r1, r1, #4
str r0, [r5, r1]
add r0, r4, #0
sub r0, #8
cmp r0, #1
bhi _021D7EB8
add r0, r1, #0
ldr r0, [r5, r0]
mov r1, #1
bl FUN_020200BC
_021D7EB8:
mov r0, #0x29
lsl r0, r0, #4
ldr r0, [r5, r0]
mov r1, #2
bl FUN_02020238
mov r0, #0x29
lsl r0, r0, #4
ldr r0, [r5, r0]
mov r1, #0
bl FUN_020200A0
add r4, r4, #1
add r5, r5, #4
cmp r4, #0xa
blt _021D7E56
mov r0, #0x10
mov r1, #1
bl FUN_0201E6E4
add sp, #0x5c
pop {r4, r5, r6, r7, pc}
thumb_func_end MOD55_021D7DA0
thumb_func_start MOD55_021D7EE4
MOD55_021D7EE4: ; 0x021D7EE4
push {r4, r5, r6, r7, lr}
sub sp, #0x1c
add r5, r0, #0
mov r0, #0xe6
lsl r0, r0, #2
add r0, r5, r0
bl FUN_02019048
cmp r0, #0
beq _021D7F02
mov r0, #0xe6
lsl r0, r0, #2
add r0, r5, r0
bl FUN_02019178
_021D7F02:
mov r0, #0
str r0, [sp]
mov r0, #0xd
str r0, [sp, #4]
mov r2, #3
str r2, [sp, #8]
str r0, [sp, #0xc]
ldr r0, _021D8038 ; =0x00000171
mov r1, #0xe6
str r0, [sp, #0x10]
lsl r1, r1, #2
ldr r0, [r5, #4]
add r1, r5, r1
mov r3, #1
bl FUN_02019064
mov r0, #0xe6
lsl r0, r0, #2
add r0, r5, r0
mov r1, #0
bl FUN_02019620
add r2, r5, #0
add r2, #0xc0
ldr r0, [r5, #0x10]
ldr r2, [r2]
mov r1, #0
bl FUN_0200A8E0
mov r0, #4
str r0, [sp]
mov r0, #0xff
str r0, [sp, #4]
ldr r0, _021D803C ; =0x000F0E00
add r2, r5, #0
str r0, [sp, #8]
mov r3, #0
mov r0, #0xe6
lsl r0, r0, #2
str r3, [sp, #0xc]
add r2, #0xc0
ldr r2, [r2]
add r0, r5, r0
mov r1, #1
bl FUN_0201BDE0
mov r0, #0xe6
lsl r0, r0, #2
add r0, r5, r0
bl FUN_02019220
mov r6, #0
mov r0, #0xd2
lsl r0, r0, #2
add r4, r5, r0
str r6, [sp, #0x18]
str r6, [sp, #0x14]
add r7, r5, #0
_021D7F76:
add r0, r4, #0
bl FUN_02019048
cmp r0, #0
beq _021D7F86
add r0, r4, #0
bl FUN_02019178
_021D7F86:
ldr r0, [sp, #0x14]
ldr r1, [sp, #0x18]
add r0, r0, #5
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp]
mov r0, #0x15
str r0, [sp, #4]
mov r0, #2
str r0, [sp, #8]
mov r0, #0xd
str r0, [sp, #0xc]
ldr r0, _021D8038 ; =0x00000171
add r1, #0x3c
sub r0, r0, r1
lsl r0, r0, #0x10
lsr r0, r0, #0x10
str r0, [sp, #0x10]
ldr r0, [r5, #4]
add r1, r4, #0
mov r2, #3
mov r3, #7
bl FUN_02019064
add r0, r4, #0
mov r1, #0
bl FUN_02019620
cmp r6, #2
bne _021D7FF4
ldr r0, [r5, #8]
bl FUN_020238F4
add r2, r0, #0
ldr r0, [r5, #0xc]
mov r1, #0
bl FUN_0200ABC0
add r2, r5, #0
add r2, #0xb8
ldr r0, [r5, #0x10]
ldr r2, [r2]
add r1, r6, #1
bl FUN_0200A8E0
add r1, r7, #0
add r2, r5, #0
add r1, #0xc4
add r2, #0xb8
ldr r0, [r5, #0xc]
ldr r1, [r1]
ldr r2, [r2]
bl FUN_0200B7B8
b _021D8002
_021D7FF4:
add r2, r7, #0
add r2, #0xc4
ldr r0, [r5, #0x10]
ldr r2, [r2]
add r1, r6, #1
bl FUN_0200A8E0
_021D8002:
ldr r0, _021D8040 ; =0x00010200
add r1, r7, #0
str r0, [sp]
add r1, #0xc4
ldr r1, [r1]
add r0, r4, #0
mov r2, #0xff
mov r3, #0x90
bl MOD55_021D80F0
add r0, r4, #0
bl FUN_02019220
ldr r0, [sp, #0x18]
add r6, r6, #1
add r0, #0x3c
str r0, [sp, #0x18]
ldr r0, [sp, #0x14]
add r4, #0x10
add r0, r0, #5
add r7, r7, #4
str r0, [sp, #0x14]
cmp r6, #4
blt _021D7F76
add sp, #0x1c
pop {r4, r5, r6, r7, pc}
nop
_021D8038: .word 0x00000171
_021D803C: .word 0x000F0E00
_021D8040: .word 0x00010200
thumb_func_end MOD55_021D7EE4
thumb_func_start MOD55_021D8044
MOD55_021D8044: ; 0x021D8044
push {r4, r5, r6, r7, lr}
sub sp, #0x14
ldr r1, _021D80E8 ; =0x021DA298
str r0, [sp]
ldrb r2, [r1, #8]
add r0, sp, #0x10
strb r2, [r0]
ldrb r2, [r1, #9]
strb r2, [r0, #1]
ldrb r2, [r1, #0xa]
ldrb r1, [r1, #0xb]
strb r2, [r0, #2]
strb r1, [r0, #3]
ldr r0, [sp]
mov r1, #1
ldr r0, [r0, #4]
bl FUN_0201886C
mov ip, r0
mov r1, #0xf2
ldr r0, [sp]
lsl r1, r1, #2
ldrb r0, [r0, r1]
str r0, [sp, #0xc]
mov r0, #0
str r0, [sp, #8]
_021D8078:
ldr r1, [sp, #0xc]
ldr r0, [sp, #8]
cmp r1, r0
bne _021D8086
mov r3, #1
lsl r3, r3, #0xc
b _021D8088
_021D8086:
mov r3, #0
_021D8088:
add r1, sp, #0x10
ldrb r7, [r1, #1]
ldrb r0, [r1, #3]
add r0, r7, r0
str r0, [sp, #4]
cmp r7, r0
bge _021D80C6
ldrb r2, [r1]
ldrb r1, [r1, #2]
lsl r0, r7, #5
ldr r4, _021D80EC ; =0x00000FFF
add r6, r2, r0
_021D80A0:
mov r0, #0
cmp r1, #0
ble _021D80BC
lsl r5, r6, #1
mov r2, ip
add r2, r2, r5
_021D80AC:
ldrh r5, [r2]
add r0, r0, #1
and r5, r4
add r5, r3, r5
strh r5, [r2]
add r2, r2, #2
cmp r0, r1
blt _021D80AC
_021D80BC:
ldr r0, [sp, #4]
add r7, r7, #1
add r6, #0x20
cmp r7, r0
blt _021D80A0
_021D80C6:
add r0, sp, #0x10
ldrb r1, [r0, #1]
add r1, r1, #5
strb r1, [r0, #1]
ldr r0, [sp, #8]
add r0, r0, #1
str r0, [sp, #8]
cmp r0, #4
blt _021D8078
ldr r0, [sp]
mov r1, #1
ldr r0, [r0, #4]
bl FUN_02017CD0
add sp, #0x14
pop {r4, r5, r6, r7, pc}
nop
_021D80E8: .word 0x021DA298
_021D80EC: .word 0x00000FFF
thumb_func_end MOD55_021D8044
thumb_func_start MOD55_021D80F0
MOD55_021D80F0: ; 0x021D80F0
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x10
add r5, r0, #0
mov r0, #0
add r4, r2, #0
add r7, r3, #0
add r2, r0, #0
add r6, r1, #0
bl FUN_02002E14
sub r1, r7, r0
lsr r0, r1, #0x1f
add r0, r1, r0
ldr r1, [sp, #0x28]
asr r3, r0, #1
cmp r1, #0
bne _021D8128
mov r0, #1
str r0, [sp]
str r4, [sp, #4]
mov r1, #0
add r0, r5, #0
add r2, r6, #0
str r1, [sp, #8]
bl FUN_0201BD84
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
_021D8128:
mov r0, #1
str r0, [sp]
str r4, [sp, #4]
str r1, [sp, #8]
mov r1, #0
add r0, r5, #0
add r2, r6, #0
str r1, [sp, #0xc]
bl FUN_0201BDE0
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end MOD55_021D80F0
thumb_func_start MOD55_021D8140
MOD55_021D8140: ; 0x021D8140
push {r4, r5, r6, lr}
add r6, r0, #0
mov r0, #0xae
lsl r0, r0, #2
mov r4, #0
add r5, r6, r0
_021D814C:
add r0, r5, #0
bl FUN_02019048
cmp r0, #0
beq _021D815C
add r0, r5, #0
bl FUN_02019178
_021D815C:
add r4, r4, #1
add r5, #0x10
cmp r4, #8
blt _021D814C
mov r0, #0xd2
lsl r0, r0, #2
mov r5, #0
add r4, r6, r0
_021D816C:
add r0, r4, #0
bl FUN_02019048
cmp r0, #0
beq _021D817C
add r0, r4, #0
bl FUN_02019178
_021D817C:
add r5, r5, #1
add r4, #0x10
cmp r5, #4
blt _021D816C
mov r0, #0xce
lsl r0, r0, #2
add r0, r6, r0
bl FUN_02019048
cmp r0, #0
beq _021D819C
mov r0, #0xce
lsl r0, r0, #2
add r0, r6, r0
bl FUN_02019178
_021D819C:
mov r0, #0xe6
lsl r0, r0, #2
add r0, r6, r0
bl FUN_02019048
cmp r0, #0
beq _021D81B4
mov r0, #0xe6
lsl r0, r0, #2
add r0, r6, r0
bl FUN_02019178
_021D81B4:
mov r0, #0xe2
lsl r0, r0, #2
add r0, r6, r0
bl FUN_02019048
cmp r0, #0
beq _021D81CC
mov r0, #0xe2
lsl r0, r0, #2
add r0, r6, r0
bl FUN_02019178
_021D81CC:
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_end MOD55_021D8140
thumb_func_start MOD55_021D81D0
MOD55_021D81D0: ; 0x021D81D0
mov r2, #0x3b
mov r3, #1
lsl r2, r2, #4
str r3, [r0, r2]
add r0, r1, #0
bx lr
thumb_func_end MOD55_021D81D0
thumb_func_start MOD55_021D81DC
MOD55_021D81DC: ; 0x021D81DC
push {r3, r4, r5, lr}
add r4, r0, #0
add r5, r1, #0
bl FUN_0200E308
cmp r0, #0
bne _021D81EE
add r0, r5, #0
pop {r3, r4, r5, pc}
_021D81EE:
ldr r2, _021D82B8 ; =0x021C48B8
mov r1, #1
ldr r0, [r2, #0x48]
tst r1, r0
beq _021D824C
ldr r0, _021D82BC ; =0x000005DC
bl FUN_020054C8
mov r0, #0xf2
lsl r0, r0, #2
ldrb r1, [r4, r0]
cmp r1, #3
bhi _021D82B2
add r1, r1, r1
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_021D8214: ; jump table
.short _021D821C - _021D8214 - 2 ; case 0
.short _021D8234 - _021D8214 - 2 ; case 1
.short _021D823C - _021D8214 - 2 ; case 2
.short _021D8244 - _021D8214 - 2 ; case 3
_021D821C:
mov r2, #0
strb r2, [r4, r0]
add r1, r0, #3
strb r2, [r4, r1]
add r1, r0, #1
strb r2, [r4, r1]
add r1, r0, #2
strb r2, [r4, r1]
mov r1, #2
sub r0, #0x18
str r1, [r4, r0]
b _021D82B2
_021D8234:
mov r1, #7
sub r0, #0x18
str r1, [r4, r0]
b _021D82B2
_021D823C:
mov r1, #0x12
sub r0, #0x18
str r1, [r4, r0]
b _021D82B2
_021D8244:
mov r1, #0x11
sub r0, #0x18
str r1, [r4, r0]
b _021D82B2
_021D824C:
mov r1, #2
tst r0, r1
beq _021D8262
ldr r0, _021D82BC ; =0x000005DC
bl FUN_020054C8
mov r0, #0x3b
mov r1, #0x11
lsl r0, r0, #4
str r1, [r4, r0]
b _021D82B2
_021D8262:
ldr r1, [r2, #0x4c]
mov r0, #0x40
tst r0, r1
beq _021D828C
mov r0, #0xf2
lsl r0, r0, #2
ldrb r0, [r4, r0]
cmp r0, #0
beq _021D82B2
ldr r0, _021D82BC ; =0x000005DC
bl FUN_020054C8
mov r0, #0xf2
lsl r0, r0, #2
ldrb r1, [r4, r0]
sub r1, r1, #1
strb r1, [r4, r0]
add r0, r4, #0
bl MOD55_021D8044
b _021D82B2
_021D828C:
mov r0, #0x80
tst r0, r1
beq _021D82B2
mov r0, #0xf2
lsl r0, r0, #2
ldrb r0, [r4, r0]
cmp r0, #3
bhs _021D82B2
ldr r0, _021D82BC ; =0x000005DC
bl FUN_020054C8
mov r0, #0xf2
lsl r0, r0, #2
ldrb r1, [r4, r0]
add r1, r1, #1
strb r1, [r4, r0]
add r0, r4, #0
bl MOD55_021D8044
_021D82B2:
add r0, r5, #0
pop {r3, r4, r5, pc}
nop
_021D82B8: .word 0x021C48B8
_021D82BC: .word 0x000005DC
thumb_func_end MOD55_021D81DC
thumb_func_start MOD55_021D82C0
MOD55_021D82C0: ; 0x021D82C0
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x10
add r7, r0, #0
ldr r0, [r7, #8]
str r1, [sp, #0xc]
bl FUN_020286EC
mov r6, #0
add r4, r0, #0
add r5, r6, #0
_021D82D4:
add r0, r4, #0
add r1, r5, #0
bl FUN_0202842C
cmp r0, #0
bne _021D82E2
mov r6, #1
_021D82E2:
add r5, r5, #1
cmp r5, #0x20
blt _021D82D4
cmp r6, #0
beq _021D8308
mov r0, #6
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
mov r0, #0x34
str r0, [sp, #8]
mov r0, #0
mov r1, #0x10
add r2, r1, #0
add r3, r0, #0
bl FUN_0200E1D0
mov r1, #8
b _021D8312
_021D8308:
add r0, r7, #0
mov r1, #0x1d
bl MOD55_021DA0A4
mov r1, #0xf
_021D8312:
mov r0, #0x3b
lsl r0, r0, #4
str r1, [r7, r0]
ldr r0, [sp, #0xc]
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_end MOD55_021D82C0
thumb_func_start MOD55_021D8320
MOD55_021D8320: ; 0x021D8320
push {r3, r4, r5, lr}
add r5, r0, #0
add r4, r1, #0
bl FUN_0200E308
cmp r0, #0
beq _021D8366
mov r0, #0
bl MOD55_021DA27C
add r0, r5, #0
bl MOD55_021D778C
ldr r0, [r5, #8]
bl LoadPlayerDataAddress
mov r1, #7
str r0, [sp]
mov r0, #0x34
mov r2, #0
add r3, r1, #0
bl FUN_02077A84
str r0, [r5]
ldr r0, _021D836C ; =0x020FA5FC
ldr r1, [r5]
mov r2, #0x34
bl FUN_02006234
mov r1, #0x3d
lsl r1, r1, #4
str r0, [r5, r1]
mov r0, #9
sub r1, #0x20
str r0, [r5, r1]
_021D8366:
add r0, r4, #0
pop {r3, r4, r5, pc}
nop
_021D836C: .word 0x020FA5FC
thumb_func_end MOD55_021D8320
thumb_func_start MOD55_021D8370
MOD55_021D8370: ; 0x021D8370
push {r4, r5, lr}
sub sp, #0xc
add r5, r0, #0
mov r0, #0x3d
lsl r0, r0, #4
ldr r0, [r5, r0]
add r4, r1, #0
bl FUN_02006290
cmp r0, #0
beq _021D83FC
mov r0, #0x3d
lsl r0, r0, #4
ldr r0, [r5, r0]
bl FUN_02006260
ldr r1, [r5]
ldr r0, [r1, #0x14]
cmp r0, #0
bne _021D83A8
add r0, r5, #0
add r0, #0xd4
ldr r0, [r0]
ldr r1, [r1, #0x18]
bl FUN_02021A74
mov r1, #0xa
b _021D83F0
_021D83A8:
mov r0, #0
add r1, r0, #0
bl FUN_0200E3A0
mov r0, #1
mov r1, #0
bl FUN_0200E3A0
mov r0, #0
bl MOD55_021DA27C
mov r0, #6
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
mov r0, #0x34
str r0, [sp, #8]
mov r0, #0
mov r1, #0x11
add r2, r1, #0
add r3, r0, #0
bl FUN_0200E1D0
add r0, r5, #0
bl MOD55_021D7504
add r0, r5, #0
bl MOD55_021D7EE4
add r0, r5, #0
bl MOD55_021D8044
mov r0, #1
bl MOD55_021DA27C
mov r1, #6
_021D83F0:
mov r0, #0x3b
lsl r0, r0, #4
str r1, [r5, r0]
ldr r0, [r5]
bl FUN_02077AC4
_021D83FC:
add r0, r4, #0
add sp, #0xc
pop {r4, r5, pc}
.align 2, 0
thumb_func_end MOD55_021D8370
thumb_func_start MOD55_021D8404
MOD55_021D8404: ; 0x021D8404
push {r3, r4, r5, lr}
add r5, r0, #0
ldr r0, [r5, #8]
add r4, r1, #0
bl LoadPlayerDataAddress
str r0, [sp]
mov r0, #0x34
mov r1, #4
mov r2, #0
mov r3, #0xc
bl FUN_02077A84
str r0, [r5]
ldr r0, _021D843C ; =0x020FA5FC
ldr r1, [r5]
mov r2, #0x34
bl FUN_02006234
mov r1, #0x3d
lsl r1, r1, #4
str r0, [r5, r1]
mov r0, #0xb
sub r1, #0x20
str r0, [r5, r1]
add r0, r4, #0
pop {r3, r4, r5, pc}
nop
_021D843C: .word 0x020FA5FC
thumb_func_end MOD55_021D8404
thumb_func_start MOD55_021D8440
MOD55_021D8440: ; 0x021D8440
push {r4, r5, lr}
sub sp, #0xc
add r5, r0, #0
mov r0, #0x3d
lsl r0, r0, #4
ldr r0, [r5, r0]
add r4, r1, #0
bl FUN_02006290
cmp r0, #0
beq _021D84C2
mov r0, #0x3d
lsl r0, r0, #4
ldr r0, [r5, r0]
bl FUN_02006260
add r0, r5, #0
ldr r1, [r5]
add r0, #0xd8
ldr r0, [r0]
ldr r1, [r1, #0x18]
bl FUN_02021A74
ldr r0, [r5]
bl FUN_02077AC4
mov r0, #0
add r1, r0, #0
bl FUN_0200E3A0
mov r0, #1
mov r1, #0
bl FUN_0200E3A0
mov r0, #0
bl MOD55_021DA27C
mov r0, #6
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
mov r0, #0x34
str r0, [sp, #8]
mov r0, #0
mov r1, #0x11
add r2, r1, #0
add r3, r0, #0
bl FUN_0200E1D0
add r0, r5, #0
bl MOD55_021D7504
add r0, r5, #0
bl MOD55_021D7EE4
add r0, r5, #0
bl MOD55_021D8044
mov r0, #1
bl MOD55_021DA27C
mov r0, #0x3b
mov r1, #0xc
lsl r0, r0, #4
str r1, [r5, r0]
_021D84C2:
add r0, r4, #0
add sp, #0xc
pop {r4, r5, pc}
thumb_func_end MOD55_021D8440
thumb_func_start MOD55_021D84C8
MOD55_021D84C8: ; 0x021D84C8
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
add r5, r0, #0
add r6, r1, #0
bl FUN_0200E308
cmp r0, #0
beq _021D853C
add r0, r5, #0
add r0, #0xd8
ldr r0, [r0]
add r1, sp, #4
bl FUN_02021C38
str r0, [sp]
ldr r0, [sp, #4]
add r7, r1, #0
cmp r0, #0
beq _021D8534
mov r0, #0x34
bl FUN_02023928
add r4, r0, #0
add r0, r5, #0
add r0, #0xd4
ldr r0, [r0]
bl FUN_02021F2C
add r1, r0, #0
add r0, r4, #0
bl FUN_0202395C
ldr r0, [r5, #0xc]
mov r1, #0
add r2, r4, #0
bl FUN_0200ABC0
ldr r1, [sp]
add r0, r5, #0
add r2, r7, #0
bl MOD55_021D93F8
add r0, r5, #0
mov r1, #0x19
bl MOD55_021DA0A4
add r0, r4, #0
bl FreeToHeap
mov r0, #0x3b
mov r1, #0xd
lsl r0, r0, #4
str r1, [r5, r0]
b _021D853C
_021D8534:
mov r0, #0x3b
mov r1, #0xf
lsl r0, r0, #4
str r1, [r5, r0]
_021D853C:
add r0, r6, #0
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_end MOD55_021D84C8
thumb_func_start MOD55_021D8544
MOD55_021D8544: ; 0x021D8544
push {r3, r4, r5, lr}
add r5, r0, #0
add r0, #0xe4
ldr r0, [r0]
add r4, r1, #0
lsl r0, r0, #0x18
lsr r0, r0, #0x18
bl FUN_0201BD70
cmp r0, #0
bne _021D8578
mov r0, #0x34
str r0, [sp]
ldr r0, [r5, #4]
ldr r1, _021D857C ; =0x021DA2AC
ldr r2, _021D8580 ; =0x000001D9
mov r3, #0xb
bl FUN_02002198
add r1, r5, #0
add r1, #0xe8
str r0, [r1]
mov r0, #0x3b
mov r1, #0xe
lsl r0, r0, #4
str r1, [r5, r0]
_021D8578:
add r0, r4, #0
pop {r3, r4, r5, pc}
.align 2, 0
_021D857C: .word 0x021DA2AC
_021D8580: .word 0x000001D9
thumb_func_end MOD55_021D8544
thumb_func_start MOD55_021D8584
MOD55_021D8584: ; 0x021D8584
push {r4, r5, r6, r7, lr}
sub sp, #0xc
add r5, r0, #0
add r0, #0xe8
str r1, [sp]
ldr r0, [r0]
mov r1, #0x34
bl FUN_020021AC
mov r1, #0
mvn r1, r1
cmp r0, r1
bne _021D85A4
ldr r0, [sp]
add sp, #0xc
pop {r4, r5, r6, r7, pc}
_021D85A4:
cmp r0, #0
bne _021D866C
ldr r0, [r5, #8]
bl FUN_020286EC
str r0, [sp, #4]
mov r4, #0
_021D85B2:
ldr r0, [sp, #4]
add r1, r4, #0
bl FUN_0202842C
cmp r0, #0
bne _021D8666
add r0, r5, #0
add r0, #0xd8
ldr r0, [r0]
add r1, sp, #8
bl FUN_02021C38
add r7, r0, #0
ldr r0, [sp, #4]
add r6, r1, #0
bl FUN_02028228
bl DWC_CreateFriendKey
eor r1, r6
eor r0, r7
orr r0, r1
bne _021D85E4
mov r0, #0
str r0, [sp, #8]
_021D85E4:
ldr r0, [sp, #8]
cmp r0, #0
beq _021D8650
ldr r0, [r5, #8]
add r1, r4, #0
add r2, r7, #0
add r3, r6, #0
bl MOD55_021DA224
cmp r0, #0
bne _021D8616
add r2, r5, #0
add r2, #0xd4
ldr r0, [sp, #4]
ldr r2, [r2]
add r1, r4, #0
bl FUN_020283C0
ldr r0, [sp, #4]
add r1, r4, #0
mov r2, #8
mov r3, #2
bl FUN_020282E8
b _021D866C
_021D8616:
mov r1, #0
mvn r1, r1
cmp r0, r1
bne _021D8634
add r0, r5, #0
mov r1, #0x1a
bl MOD55_021DA0A4
mov r0, #0x3b
mov r1, #0xf
lsl r0, r0, #4
str r1, [r5, r0]
ldr r0, [sp]
add sp, #0xc
pop {r4, r5, r6, r7, pc}
_021D8634:
sub r1, r1, #1
cmp r0, r1
bne _021D8666
add r0, r5, #0
mov r1, #0x1e
bl MOD55_021DA0A4
mov r0, #0x3b
mov r1, #0xf
lsl r0, r0, #4
str r1, [r5, r0]
ldr r0, [sp]
add sp, #0xc
pop {r4, r5, r6, r7, pc}
_021D8650:
add r0, r5, #0
mov r1, #0x1a
bl MOD55_021DA0A4
mov r0, #0x3b
mov r1, #0xf
lsl r0, r0, #4
str r1, [r5, r0]
ldr r0, [sp]
add sp, #0xc
pop {r4, r5, r6, r7, pc}
_021D8666:
add r4, r4, #1
cmp r4, #0x20
blt _021D85B2
_021D866C:
add r0, r5, #0
bl MOD55_021DA214
mov r0, #0x3b
mov r1, #6
lsl r0, r0, #4
str r1, [r5, r0]
ldr r0, [sp]
add sp, #0xc
pop {r4, r5, r6, r7, pc}
thumb_func_end MOD55_021D8584
thumb_func_start MOD55_021D8680
MOD55_021D8680: ; 0x021D8680
mov r2, #0x3b
mov r3, #0x10
lsl r2, r2, #4
str r3, [r0, r2]
add r0, r1, #0
bx lr
thumb_func_end MOD55_021D8680
thumb_func_start MOD55_021D868C
MOD55_021D868C: ; 0x021D868C
push {r3, r4, r5, lr}
add r5, r0, #0
add r0, #0xe4
ldr r0, [r0]
add r4, r1, #0
lsl r0, r0, #0x18
lsr r0, r0, #0x18
bl FUN_0201BD70
cmp r0, #0
bne _021D86CA
ldr r0, _021D86D0 ; =0x021C48B8
ldr r1, [r0, #0x48]
mov r0, #1
tst r0, r1
beq _021D86CA
mov r0, #0xce
lsl r0, r0, #2
add r0, r5, r0
mov r1, #0
bl FUN_0200D0E0
mov r0, #0xce
lsl r0, r0, #2
add r0, r5, r0
bl FUN_02019570
mov r0, #0x3b
mov r1, #6
lsl r0, r0, #4
str r1, [r5, r0]
_021D86CA:
add r0, r4, #0
pop {r3, r4, r5, pc}
nop
_021D86D0: .word 0x021C48B8
thumb_func_end MOD55_021D868C
thumb_func_start MOD55_021D86D4
MOD55_021D86D4: ; 0x021D86D4
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x40
ldr r1, _021D88C4 ; =0x021DA298
str r0, [sp]
ldrb r2, [r1]
add r0, sp, #0x28
strb r2, [r0, #0x14]
ldrb r2, [r1, #1]
strb r2, [r0, #0x15]
ldrb r2, [r1, #2]
strb r2, [r0, #0x16]
ldrb r2, [r1, #3]
strb r2, [r0, #0x17]
ldrb r2, [r1, #4]
strb r2, [r0, #0x10]
ldrb r2, [r1, #5]
strb r2, [r0, #0x11]
ldrb r2, [r1, #6]
strb r2, [r0, #0x12]
ldrb r1, [r1, #7]
strb r1, [r0, #0x13]
ldr r0, [sp]
mov r1, #1
ldr r0, [r0, #4]
bl FUN_0201886C
str r0, [sp, #0x24]
mov r1, #0xf2
ldr r0, [sp]
lsl r1, r1, #2
ldrb r3, [r0, r1]
mov r0, #0x1d
lsr r2, r3, #0x1f
lsl r1, r3, #0x1d
sub r1, r1, r2
ror r1, r0
add r0, r2, r1
str r0, [sp, #0x20]
lsr r0, r3, #3
str r0, [sp, #0xc]
ldr r0, [sp]
ldr r0, [r0, #8]
bl FUN_020286EC
ldr r1, _021D88C4 ; =0x021DA298
str r0, [sp, #0x18]
ldrh r2, [r1, #0x1c]
add r0, sp, #0x28
strh r2, [r0, #8]
ldrh r2, [r1, #0x1e]
strh r2, [r0, #0xa]
ldrh r2, [r1, #0x20]
strh r2, [r0, #0xc]
ldrh r2, [r1, #0x22]
strh r2, [r0, #0xe]
ldrh r2, [r1, #0xc]
strh r2, [r0]
ldrh r2, [r1, #0xe]
strh r2, [r0, #2]
ldrh r2, [r1, #0x10]
strh r2, [r0, #4]
ldrh r1, [r1, #0x12]
strh r1, [r0, #6]
mov r0, #0
str r0, [sp, #0x1c]
ldr r0, [sp, #0xc]
lsl r1, r0, #3
ldr r0, [sp]
add r0, r0, r1
str r0, [sp, #0x14]
_021D8760:
ldr r1, [sp, #0x14]
ldr r0, [sp, #0x18]
ldrb r1, [r1, #0x18]
mov r2, #8
sub r1, r1, #1
bl FUN_0202822C
ldr r1, [sp, #0x14]
ldrb r1, [r1, #0x18]
cmp r1, #0
beq _021D877E
cmp r0, #2
beq _021D877E
add r3, sp, #0x28
b _021D8780
_021D877E:
add r3, sp, #0x30
_021D8780:
add r1, sp, #0x28
ldrb r7, [r1, #0x11]
ldrb r0, [r1, #0x13]
add r0, r7, r0
str r0, [sp, #0x10]
cmp r7, r0
bge _021D87BE
ldrb r2, [r1, #0x10]
ldrb r4, [r1, #0x12]
lsl r0, r7, #5
add r2, r2, r0
_021D8796:
add r0, r2, #0
mov r1, #0
cmp r4, #0
ble _021D87B4
ldr r5, [sp, #0x24]
lsl r6, r2, #1
add r6, r5, r6
_021D87A4:
ldrh r5, [r3]
add r1, r1, #1
add r3, r3, #2
strh r5, [r6]
add r6, r6, #2
add r0, r0, #1
cmp r1, r4
blt _021D87A4
_021D87B4:
ldr r0, [sp, #0x10]
add r7, r7, #1
add r2, #0x20
cmp r7, r0
blt _021D8796
_021D87BE:
add r1, sp, #0x28
ldrb r0, [r1, #0x11]
add r0, r0, #4
strb r0, [r1, #0x11]
ldr r0, [sp, #0x1c]
cmp r0, #3
bne _021D87D4
mov r0, #5
strb r0, [r1, #0x11]
mov r0, #0x11
strb r0, [r1, #0x10]
_021D87D4:
ldr r0, [sp, #0x14]
add r0, r0, #1
str r0, [sp, #0x14]
ldr r0, [sp, #0x1c]
add r0, r0, #1
str r0, [sp, #0x1c]
cmp r0, #8
blt _021D8760
mov r0, #0x3f
mov r4, #0x17
mov r3, #0
mov r7, #0x16
mov r2, #2
lsl r0, r0, #0xa
_021D87F0:
ldr r5, [sp, #0xc]
add r1, r4, #0
add r1, #0x20
cmp r3, r5
bne _021D87FE
add r5, r2, #0
b _021D8800
_021D87FE:
add r5, r7, #0
_021D8800:
ldr r6, [sp, #0x24]
lsl r1, r1, #1
ldrh r6, [r6, r1]
add r3, r3, #1
add r4, r4, #2
and r6, r0
add r6, r5, r6
ldr r5, [sp, #0x24]
cmp r3, #4
strh r6, [r5, r1]
blt _021D87F0
ldr r1, _021D88C8 ; =0x000003CB
ldr r0, [sp]
ldrb r0, [r0, r1]
cmp r0, #0
beq _021D8824
mov r0, #8
str r0, [sp, #0x20]
_021D8824:
mov r0, #0
str r0, [sp, #8]
_021D8828:
ldr r1, [sp, #0x20]
ldr r0, [sp, #8]
cmp r1, r0
bne _021D8836
mov r4, #1
lsl r4, r4, #0xc
b _021D8838
_021D8836:
mov r4, #0
_021D8838:
add r0, sp, #0x28
ldrb r1, [r0, #0x15]
ldrb r2, [r0, #0x17]
str r1, [sp, #4]
add r1, r1, r2
ldr r2, [sp, #4]
mov ip, r1
cmp r2, r1
bge _021D8884
ldrb r2, [r0, #0x14]
ldr r1, [sp, #4]
ldrb r0, [r0, #0x16]
lsl r1, r1, #5
ldr r6, _021D88CC ; =0x00000FFF
add r7, r2, r1
_021D8856:
add r2, r7, #0
mov r3, #0
cmp r0, #0
ble _021D8876
ldr r1, [sp, #0x24]
lsl r5, r7, #1
add r1, r1, r5
_021D8864:
ldrh r5, [r1]
add r3, r3, #1
add r2, r2, #1
and r5, r6
add r5, r4, r5
strh r5, [r1]
add r1, r1, #2
cmp r3, r0
blt _021D8864
_021D8876:
ldr r1, [sp, #4]
add r7, #0x20
add r2, r1, #1
mov r1, ip
str r2, [sp, #4]
cmp r2, r1
blt _021D8856
_021D8884:
add r1, sp, #0x28
ldrb r0, [r1, #0x15]
add r0, r0, #4
strb r0, [r1, #0x15]
ldr r0, [sp, #8]
cmp r0, #3
bne _021D889A
mov r0, #4
strb r0, [r1, #0x15]
mov r0, #0x10
strb r0, [r1, #0x14]
_021D889A:
ldr r0, [sp, #8]
cmp r0, #7
bne _021D88AA
mov r1, #0x14
add r0, sp, #0x28
strb r1, [r0, #0x15]
mov r1, #9
strb r1, [r0, #0x14]
_021D88AA:
ldr r0, [sp, #8]
add r0, r0, #1
str r0, [sp, #8]
cmp r0, #9
blt _021D8828
ldr r0, [sp]
mov r1, #1
ldr r0, [r0, #4]
bl FUN_02017CD0
add sp, #0x40
pop {r3, r4, r5, r6, r7, pc}
nop
_021D88C4: .word 0x021DA298
_021D88C8: .word 0x000003CB
_021D88CC: .word 0x00000FFF
thumb_func_end MOD55_021D86D4
thumb_func_start MOD55_021D88D0
MOD55_021D88D0: ; 0x021D88D0
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x10
str r0, [sp]
ldr r0, [r0, #8]
bl FUN_020286EC
mov r1, #0xf2
ldr r5, [sp]
add r7, r0, #0
lsl r1, r1, #2
add r0, r5, #0
ldrb r0, [r0, r1]
mov r4, #0
lsr r0, r0, #3
lsl r1, r0, #3
add r0, r5, #0
add r6, r0, r1
_021D88F2:
mov r0, #0x29
lsl r0, r0, #4
ldr r0, [r5, r0]
mov r1, #0
bl FUN_020200A0
ldrb r0, [r6, #0x18]
cmp r0, #0
beq _021D8968
sub r0, r0, #1
str r0, [sp, #4]
ldr r1, [sp, #4]
add r0, r7, #0
mov r2, #7
bl FUN_0202822C
str r0, [sp, #8]
ldr r1, [sp, #4]
add r0, r7, #0
mov r2, #8
bl FUN_0202822C
cmp r0, #2
beq _021D8968
ldr r1, [sp, #8]
mov r2, #0
bl FUN_020536D0
str r0, [sp, #0xc]
mov r0, #0xeb
ldr r1, [sp]
lsl r0, r0, #2
ldr r1, [r1, r0]
ldr r0, [sp, #0xc]
mov r2, #0x20
lsl r0, r0, #5
add r0, r1, r0
add r1, r4, #7
lsl r1, r1, #5
bl GX_LoadOBJPltt
mov r0, #0x29
lsl r0, r0, #4
ldr r0, [r5, r0]
add r1, r4, #7
bl FUN_02020248
mov r0, #0x29
lsl r0, r0, #4
ldr r0, [r5, r0]
ldr r1, [sp, #0xc]
bl FUN_02020130
mov r0, #0x29
lsl r0, r0, #4
ldr r0, [r5, r0]
mov r1, #1
bl FUN_020200A0
_021D8968:
add r4, r4, #1
add r5, r5, #4
add r6, r6, #1
cmp r4, #8
blt _021D88F2
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_end MOD55_021D88D0
thumb_func_start MOD55_021D8978
MOD55_021D8978: ; 0x021D8978
push {r4, r5, r6, r7, lr}
sub sp, #0x2c
str r0, [sp, #0x10]
ldr r0, [r0, #8]
bl FUN_020286EC
add r2, sp, #0x20
ldr r3, _021D8A24 ; =0x021DA2BC
str r0, [sp, #0x18]
ldmia r3!, {r0, r1}
str r2, [sp, #0x1c]
stmia r2!, {r0, r1}
ldr r0, [r3]
mov r1, #0xf2
str r0, [r2]
mov r0, #0
str r0, [sp, #0x14]
ldr r0, [sp, #0x10]
lsl r1, r1, #2
ldrb r0, [r0, r1]
lsr r0, r0, #3
lsl r1, r0, #3
ldr r0, [sp, #0x10]
add r4, r0, r1
mov r1, #0xae
lsl r1, r1, #2
add r5, r0, r1
_021D89AE:
ldrb r0, [r4, #0x18]
mov r7, #0
cmp r0, #0
beq _021D8A00
sub r6, r0, #1
ldr r0, [sp, #0x18]
add r1, r6, #0
bl FUN_0202842C
cmp r0, #0
beq _021D8A00
ldr r0, [sp, #0x18]
add r1, r6, #0
mov r2, #8
bl FUN_0202822C
add r7, r0, #0
add r0, r5, #0
mov r1, #0
bl FUN_02019620
mov r0, #1
str r0, [sp]
mov r0, #0xff
str r0, [sp, #4]
ldr r0, [sp, #0x1c]
lsl r1, r7, #2
ldr r0, [r0, r1]
ldr r2, [sp, #0x10]
str r0, [sp, #8]
mov r0, #0
lsl r3, r6, #2
str r0, [sp, #0xc]
add r2, r2, r3
ldr r2, [r2, #0x38]
add r0, r5, #0
mov r1, #0
mov r3, #1
bl FUN_0201BDE0
mov r7, #1
_021D8A00:
cmp r7, #0
bne _021D8A0C
add r0, r5, #0
bl FUN_0201958C
b _021D8A12
_021D8A0C:
add r0, r5, #0
bl FUN_02019220
_021D8A12:
ldr r0, [sp, #0x14]
add r4, r4, #1
add r0, r0, #1
add r5, #0x10
str r0, [sp, #0x14]
cmp r0, #8
blt _021D89AE
add sp, #0x2c
pop {r4, r5, r6, r7, pc}
.align 2, 0
_021D8A24: .word 0x021DA2BC
thumb_func_end MOD55_021D8978
thumb_func_start MOD55_021D8A28
MOD55_021D8A28: ; 0x021D8A28
push {r3, r4, r5, r6, r7, lr}
str r0, [sp]
ldr r0, [r0, #8]
bl FUN_020286EC
add r7, r0, #0
ldr r0, [sp]
mov r6, #0
add r0, #0x18
add r1, r6, #0
mov r2, #0x20
bl MI_CpuFill8
ldr r5, [sp]
add r4, r6, #0
_021D8A46:
ldr r0, [r5, #0x38]
bl FUN_02021A4C
add r0, r7, #0
add r1, r4, #0
bl FUN_0202842C
cmp r0, #0
beq _021D8A72
add r0, r7, #0
add r1, r4, #0
bl FUN_020283A4
add r1, r0, #0
ldr r0, [r5, #0x38]
bl FUN_02021E28
ldr r0, [sp]
add r1, r4, #1
add r0, r0, r6
strb r1, [r0, #0x18]
add r6, r6, #1
_021D8A72:
add r4, r4, #1
add r5, r5, #4
cmp r4, #0x20
blt _021D8A46
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end MOD55_021D8A28
thumb_func_start MOD55_021D8A7C
MOD55_021D8A7C: ; 0x021D8A7C
push {r4, r5, r6, r7, lr}
sub sp, #0x1c
add r5, r0, #0
ldr r0, [r5, #8]
str r1, [sp, #0x14]
bl FUN_020286EC
ldr r0, [r5, #4]
mov r1, #3
bl FUN_02018744
mov r3, #0
str r3, [sp]
str r3, [sp, #4]
str r3, [sp, #8]
mov r0, #0x34
str r0, [sp, #0xc]
ldr r2, [r5, #4]
mov r0, #0x59
mov r1, #2
bl FUN_0200687C
mov r3, #0
str r3, [sp]
str r3, [sp, #4]
str r3, [sp, #8]
mov r0, #0x34
str r0, [sp, #0xc]
ldr r2, [r5, #4]
mov r0, #0x59
mov r1, #8
bl FUN_020068C8
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0x34
str r0, [sp, #0xc]
ldr r2, [r5, #4]
mov r0, #0x59
mov r1, #5
mov r3, #1
bl FUN_020068C8
mov r0, #0xe6
lsl r0, r0, #2
add r0, r5, r0
bl FUN_02019048
cmp r0, #0
beq _021D8AEE
mov r0, #0xe6
lsl r0, r0, #2
add r0, r5, r0
bl FUN_02019178
_021D8AEE:
mov r0, #0
str r0, [sp]
mov r0, #0xd
str r0, [sp, #4]
mov r2, #3
str r2, [sp, #8]
str r0, [sp, #0xc]
ldr r0, _021D8CAC ; =0x00000171
mov r1, #0xe6
str r0, [sp, #0x10]
lsl r1, r1, #2
ldr r0, [r5, #4]
add r1, r5, r1
mov r3, #1
bl FUN_02019064
mov r0, #0xe6
lsl r0, r0, #2
add r0, r5, r0
mov r1, #0
bl FUN_02019620
add r2, r5, #0
add r2, #0xc0
ldr r0, [r5, #0x10]
ldr r2, [r2]
mov r1, #5
bl FUN_0200A8E0
mov r0, #4
str r0, [sp]
mov r0, #0xff
str r0, [sp, #4]
ldr r0, _021D8CB0 ; =0x000F0E00
add r2, r5, #0
str r0, [sp, #8]
mov r3, #0
mov r0, #0xe6
lsl r0, r0, #2
str r3, [sp, #0xc]
add r2, #0xc0
ldr r2, [r2]
add r0, r5, r0
mov r1, #1
bl FUN_0201BDE0
mov r0, #0xe6
lsl r0, r0, #2
add r0, r5, r0
bl FUN_02019220
mov r0, #0xde
lsl r0, r0, #2
add r0, r5, r0
bl FUN_02019048
cmp r0, #0
beq _021D8B6C
mov r0, #0xde
lsl r0, r0, #2
add r0, r5, r0
bl FUN_02019178
_021D8B6C:
mov r0, #0x15
str r0, [sp]
mov r0, #8
str r0, [sp, #4]
mov r0, #2
str r0, [sp, #8]
mov r0, #0xd
str r0, [sp, #0xc]
ldr r0, _021D8CB4 ; =0x00000135
mov r1, #0xde
str r0, [sp, #0x10]
lsl r1, r1, #2
ldr r0, [r5, #4]
add r1, r5, r1
mov r2, #3
mov r3, #0xf
bl FUN_02019064
mov r0, #0xde
lsl r0, r0, #2
add r0, r5, r0
mov r1, #0
bl FUN_02019620
add r2, r5, #0
add r2, #0xd0
ldr r0, [r5, #0x10]
ldr r2, [r2]
mov r1, #7
bl FUN_0200A8E0
mov r1, #0
add r2, r5, #0
str r1, [sp]
mov r0, #0xff
str r0, [sp, #4]
ldr r0, _021D8CB8 ; =0x00010200
add r2, #0xd0
str r0, [sp, #8]
str r1, [sp, #0xc]
mov r0, #0xde
lsl r0, r0, #2
ldr r2, [r2]
add r0, r5, r0
add r3, r1, #0
bl FUN_0201BDE0
mov r0, #0xde
lsl r0, r0, #2
add r0, r5, r0
bl FUN_02019220
add r0, r5, #0
bl MOD55_021D8A28
mov r0, #0xae
mov r6, #0
lsl r0, r0, #2
add r4, r5, r0
add r7, r6, #0
_021D8BE4:
cmp r6, #4
bge _021D8BEE
mov r0, #5
str r0, [sp, #0x18]
b _021D8BF2
_021D8BEE:
mov r0, #0x14
str r0, [sp, #0x18]
_021D8BF2:
add r0, r4, #0
bl FUN_02019048
cmp r0, #0
beq _021D8C02
add r0, r4, #0
bl FUN_02019178
_021D8C02:
lsr r2, r6, #0x1f
lsl r1, r6, #0x1e
sub r1, r1, r2
mov r0, #0x1e
ror r1, r0
add r0, r2, r1
lsl r0, r0, #2
add r0, r0, #5
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp]
mov r0, #8
str r0, [sp, #4]
mov r0, #2
str r0, [sp, #8]
mov r0, #0xd
str r0, [sp, #0xc]
add r1, r7, #0
ldr r3, [sp, #0x18]
ldr r0, _021D8CB4 ; =0x00000135
add r1, #0x18
sub r0, r0, r1
lsl r0, r0, #0x10
lsr r0, r0, #0x10
str r0, [sp, #0x10]
lsl r3, r3, #0x18
ldr r0, [r5, #4]
add r1, r4, #0
mov r2, #3
lsr r3, r3, #0x18
bl FUN_02019064
add r0, r4, #0
mov r1, #0
bl FUN_02019620
add r0, r4, #0
bl FUN_02019220
add r6, r6, #1
add r4, #0x10
add r7, #0x18
cmp r6, #8
blt _021D8BE4
add r0, r5, #0
bl MOD55_021D86D4
add r0, r5, #0
bl MOD55_021D8978
add r0, r5, #0
bl MOD55_021D88D0
mov r0, #0x2b
lsl r0, r0, #4
ldr r0, [r5, r0]
mov r1, #0
bl FUN_02020130
mov r0, #0xad
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #1
bl FUN_02020130
mov r0, #0x2b
lsl r0, r0, #4
ldr r0, [r5, r0]
mov r1, #1
bl FUN_020200A0
mov r0, #0xad
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #1
bl FUN_020200A0
mov r0, #0x3b
mov r1, #3
lsl r0, r0, #4
str r1, [r5, r0]
ldr r0, [sp, #0x14]
add sp, #0x1c
pop {r4, r5, r6, r7, pc}
nop
_021D8CAC: .word 0x00000171
_021D8CB0: .word 0x000F0E00
_021D8CB4: .word 0x00000135
_021D8CB8: .word 0x00010200
thumb_func_end MOD55_021D8A7C
thumb_func_start MOD55_021D8CBC
MOD55_021D8CBC: ; 0x021D8CBC
push {r3, r4, r5, lr}
mov r3, #0xf2
lsl r3, r3, #2
add r5, r0, #0
add r2, r3, #1
ldrb r0, [r5, r3]
ldrb r2, [r5, r2]
lsr r4, r0, #3
cmp r2, #4
bne _021D8CD8
mov r1, #1
add r0, r3, #3
strb r1, [r5, r0]
b _021D8CF4
_021D8CD8:
add r2, r3, #3
ldrb r2, [r5, r2]
cmp r2, #1
bne _021D8CE8
mov r1, #0
add r0, r3, #3
strb r1, [r5, r0]
b _021D8CF4
_021D8CE8:
add r0, r0, r1
strb r0, [r5, r3]
ldrb r1, [r5, r3]
mov r0, #0x1f
and r0, r1
strb r0, [r5, r3]
_021D8CF4:
add r0, r5, #0
bl MOD55_021D86D4
mov r0, #0xf2
lsl r0, r0, #2
ldrb r0, [r5, r0]
lsr r0, r0, #3
cmp r4, r0
beq _021D8D12
add r0, r5, #0
bl MOD55_021D8978
add r0, r5, #0
bl MOD55_021D88D0
_021D8D12:
pop {r3, r4, r5, pc}
thumb_func_end MOD55_021D8CBC
thumb_func_start MOD55_021D8D14
MOD55_021D8D14: ; 0x021D8D14
push {r3, r4, r5, lr}
add r4, r1, #0
mov r1, #0xf3
add r5, r0, #0
lsl r1, r1, #2
ldrb r1, [r5, r1]
cmp r1, #0
beq _021D8D52
ldr r1, _021D8E5C ; =0x021C48B8
ldr r1, [r1, #0x48]
cmp r1, #0
beq _021D8D52
bl MOD55_021DA214
mov r0, #0x2b
lsl r0, r0, #4
ldr r0, [r5, r0]
mov r1, #1
bl FUN_020200A0
mov r0, #0xad
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #1
bl FUN_020200A0
mov r0, #0xf3
mov r1, #0
lsl r0, r0, #2
strb r1, [r5, r0]
b _021D8E36
_021D8D52:
ldr r2, _021D8E5C ; =0x021C48B8
mov r0, #1
ldr r3, [r2, #0x48]
add r1, r3, #0
tst r1, r0
beq _021D8D88
ldr r0, _021D8E60 ; =0x000005DC
bl FUN_020054C8
ldr r1, _021D8E64 ; =0x000003CB
ldrb r0, [r5, r1]
cmp r0, #0
beq _021D8D74
mov r0, #6
sub r1, #0x1b
str r0, [r5, r1]
b _021D8E36
_021D8D74:
sub r0, r1, #3
ldrb r0, [r5, r0]
add r0, r5, r0
ldrb r0, [r0, #0x18]
cmp r0, #0
beq _021D8E36
mov r0, #4
sub r1, #0x1b
str r0, [r5, r1]
b _021D8E36
_021D8D88:
mov r1, #2
tst r1, r3
beq _021D8D9E
ldr r0, _021D8E60 ; =0x000005DC
bl FUN_020054C8
mov r0, #0x3b
mov r1, #6
lsl r0, r0, #4
str r1, [r5, r0]
b _021D8E36
_021D8D9E:
ldr r1, [r2, #0x4c]
mov r2, #0x40
tst r2, r1
beq _021D8DC4
ldr r0, _021D8E68 ; =0x000003C9
ldrb r1, [r5, r0]
cmp r1, #0
beq _021D8E36
sub r1, r1, #1
strb r1, [r5, r0]
ldr r0, _021D8E60 ; =0x000005DC
bl FUN_020054C8
mov r1, #0
add r0, r5, #0
mvn r1, r1
bl MOD55_021D8CBC
b _021D8E36
_021D8DC4:
mov r2, #0x80
tst r2, r1
beq _021D8DE6
ldr r0, _021D8E68 ; =0x000003C9
ldrb r1, [r5, r0]
cmp r1, #4
bhs _021D8E36
add r1, r1, #1
strb r1, [r5, r0]
ldr r0, _021D8E60 ; =0x000005DC
bl FUN_020054C8
add r0, r5, #0
mov r1, #1
bl MOD55_021D8CBC
b _021D8E36
_021D8DE6:
mov r2, #0x20
tst r2, r1
beq _021D8E10
ldr r2, _021D8E64 ; =0x000003CB
ldrb r1, [r5, r2]
cmp r1, #0
bne _021D8E36
sub r1, r2, #1
ldrb r1, [r5, r1]
sub r1, r0, r1
sub r0, r2, #1
strb r1, [r5, r0]
ldr r0, _021D8E60 ; =0x000005DC
bl FUN_020054C8
mov r1, #3
add r0, r5, #0
mvn r1, r1
bl MOD55_021D8CBC
b _021D8E36
_021D8E10:
mov r2, #0x10
tst r1, r2
beq _021D8E36
ldr r2, _021D8E64 ; =0x000003CB
ldrb r1, [r5, r2]
cmp r1, #0
bne _021D8E36
sub r1, r2, #1
ldrb r1, [r5, r1]
sub r1, r0, r1
sub r0, r2, #1
strb r1, [r5, r0]
ldr r0, _021D8E60 ; =0x000005DC
bl FUN_020054C8
add r0, r5, #0
mov r1, #4
bl MOD55_021D8CBC
_021D8E36:
mov r0, #0x3b
lsl r0, r0, #4
ldr r0, [r5, r0]
cmp r0, #3
beq _021D8E58
mov r0, #0x2b
lsl r0, r0, #4
ldr r0, [r5, r0]
mov r1, #0
bl FUN_020200A0
mov r0, #0xad
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #0
bl FUN_020200A0
_021D8E58:
add r0, r4, #0
pop {r3, r4, r5, pc}
.align 2, 0
_021D8E5C: .word 0x021C48B8
_021D8E60: .word 0x000005DC
_021D8E64: .word 0x000003CB
_021D8E68: .word 0x000003C9
thumb_func_end MOD55_021D8D14
thumb_func_start MOD55_021D8E6C
MOD55_021D8E6C: ; 0x021D8E6C
push {r4, r5, r6, r7, lr}
sub sp, #0x3c
add r5, r0, #0
ldr r0, [r5, #8]
str r1, [sp, #0x14]
bl FUN_020286EC
mov r1, #0xf2
lsl r1, r1, #2
ldrb r1, [r5, r1]
mov r2, #8
str r0, [sp, #0x18]
add r1, r5, r1
ldrb r1, [r1, #0x18]
sub r1, r1, #1
bl FUN_0202822C
cmp r0, #2
add r2, sp, #0x1c
bne _021D8ECC
ldr r3, _021D8FCC ; =0x021DA418
mov r7, #4
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
add r0, r7, #0
mov r1, #0x34
bl FUN_02012838
ldr r4, _021D8FD0 ; =0x021DA3D8
str r0, [r5, #0x14]
mov r6, #0
_021D8EB6:
ldr r0, [r5, #0x14]
ldr r1, [r5, #0x10]
ldr r2, [r4]
ldr r3, [r4, #4]
bl FUN_02012880
add r6, r6, #1
add r4, #8
cmp r6, #4
blt _021D8EB6
b _021D8F02
_021D8ECC:
ldr r3, _021D8FD4 ; =0x021DA3F8
mov r7, #4
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
add r0, r7, #0
mov r1, #0x34
bl FUN_02012838
ldr r4, _021D8FD8 ; =0x021DA438
str r0, [r5, #0x14]
mov r6, #0
_021D8EEE:
ldr r0, [r5, #0x14]
ldr r1, [r5, #0x10]
ldr r2, [r4]
ldr r3, [r4, #4]
bl FUN_02012880
add r6, r6, #1
add r4, #8
cmp r6, #4
blt _021D8EEE
_021D8F02:
mov r0, #0xe2
lsl r0, r0, #2
add r0, r5, r0
bl FUN_02019048
cmp r0, #0
beq _021D8F1A
mov r0, #0xe2
lsl r0, r0, #2
add r0, r5, r0
bl FUN_02019178
_021D8F1A:
mov r1, #9
str r1, [sp]
mov r1, #0xf
lsl r0, r7, #1
str r1, [sp, #4]
lsl r1, r0, #0x18
lsr r1, r1, #0x18
str r1, [sp, #8]
mov r1, #0xd
str r1, [sp, #0xc]
mov r1, #0x3b
sub r0, r1, r0
lsl r0, r0, #0x10
lsr r0, r0, #0x10
mov r1, #0xe2
str r0, [sp, #0x10]
lsl r1, r1, #2
ldr r0, [r5, #4]
add r1, r5, r1
mov r2, #2
mov r3, #0x10
bl FUN_02019064
mov r0, #0xe2
lsl r0, r0, #2
ldr r2, _021D8FDC ; =0x000001D9
add r0, r5, r0
mov r1, #1
mov r3, #0xb
bl FUN_0200CCA4
ldr r0, [r5, #0x14]
mov r1, #0
str r0, [sp, #0x1c]
mov r0, #0xe2
lsl r0, r0, #2
add r0, r5, r0
str r0, [sp, #0x28]
add r0, sp, #0x1c
add r2, r1, #0
mov r3, #0x34
bl FUN_020010A8
mov r1, #0xea
lsl r1, r1, #2
str r0, [r5, r1]
sub r1, #0x20
add r0, r5, r1
bl FUN_02019220
mov r0, #0x34
bl FUN_02023928
mov r1, #0xf2
lsl r1, r1, #2
ldrb r1, [r5, r1]
add r4, r0, #0
ldr r0, [sp, #0x18]
add r1, r5, r1
ldrb r1, [r1, #0x18]
sub r1, r1, #1
bl FUN_020283A4
add r1, r0, #0
add r0, r4, #0
bl FUN_0202395C
ldr r0, [r5, #0xc]
mov r1, #0
add r2, r4, #0
bl FUN_0200ABC0
add r0, r5, #0
mov r1, #0xc
bl MOD55_021DA0A4
add r0, r4, #0
bl FreeToHeap
ldr r0, _021D8FE0 ; =0x00000418
mov r1, #0
strh r1, [r5, r0]
mov r1, #5
sub r0, #0x68
str r1, [r5, r0]
ldr r0, [sp, #0x14]
add sp, #0x3c
pop {r4, r5, r6, r7, pc}
nop
_021D8FCC: .word 0x021DA418
_021D8FD0: .word 0x021DA3D8
_021D8FD4: .word 0x021DA3F8
_021D8FD8: .word 0x021DA438
_021D8FDC: .word 0x000001D9
_021D8FE0: .word 0x00000418
thumb_func_end MOD55_021D8E6C
thumb_func_start MOD55_021D8FE4
MOD55_021D8FE4: ; 0x021D8FE4
push {r4, r5, r6, r7, lr}
sub sp, #0xc
add r5, r0, #0
add r0, #0xe4
ldr r0, [r0]
add r6, r1, #0
lsl r0, r0, #0x18
lsr r0, r0, #0x18
bl FUN_0201BD70
cmp r0, #0
beq _021D9002
add sp, #0xc
add r0, r6, #0
pop {r4, r5, r6, r7, pc}
_021D9002:
mov r0, #0xea
lsl r0, r0, #2
ldr r0, [r5, r0]
bl FUN_02001204
ldr r1, _021D90D0 ; =0x00000418
add r4, r0, #0
add r0, r1, #0
sub r0, #0x70
ldrh r7, [r5, r1]
ldr r0, [r5, r0]
add r1, r5, r1
bl FUN_0200143C
ldr r0, _021D90D0 ; =0x00000418
ldrh r0, [r5, r0]
cmp r7, r0
beq _021D902C
ldr r0, _021D90D4 ; =0x000005DC
bl FUN_020054C8
_021D902C:
mov r0, #1
mvn r0, r0
cmp r4, r0
beq _021D9040
add r0, r0, #1
cmp r4, r0
bne _021D9068
add sp, #0xc
add r0, r6, #0
pop {r4, r5, r6, r7, pc}
_021D9040:
ldr r0, _021D90D4 ; =0x000005DC
bl FUN_020054C8
mov r0, #0x2b
lsl r0, r0, #4
ldr r0, [r5, r0]
mov r1, #1
bl FUN_020200A0
mov r0, #0xad
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #1
bl FUN_020200A0
mov r0, #0x3b
mov r1, #3
lsl r0, r0, #4
str r1, [r5, r0]
b _021D9098
_021D9068:
ldr r0, _021D90D4 ; =0x000005DC
bl FUN_020054C8
cmp r4, #0x14
bne _021D9092
ldr r0, [r5, #4]
mov r1, #3
bl FUN_02018744
mov r0, #6
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
mov r0, #0x34
str r0, [sp, #8]
mov r0, #0
add r1, r0, #0
add r2, r0, #0
add r3, r0, #0
bl FUN_0200E1D0
_021D9092:
mov r0, #0x3b
lsl r0, r0, #4
str r4, [r5, r0]
_021D9098:
add r0, r5, #0
bl MOD55_021DA214
mov r0, #0xe2
lsl r0, r0, #2
add r0, r5, r0
mov r1, #0
bl FUN_0200CCF8
mov r0, #0xe2
lsl r0, r0, #2
add r0, r5, r0
bl FUN_02019178
mov r0, #0xea
lsl r0, r0, #2
mov r1, #0
ldr r0, [r5, r0]
add r2, r1, #0
bl FUN_02001300
ldr r0, [r5, #0x14]
bl FUN_02012870
add r0, r6, #0
add sp, #0xc
pop {r4, r5, r6, r7, pc}
nop
_021D90D0: .word 0x00000418
_021D90D4: .word 0x000005DC
thumb_func_end MOD55_021D8FE4
thumb_func_start MOD55_021D90D8
MOD55_021D90D8: ; 0x021D90D8
push {r4, r5, r6, r7, lr}
sub sp, #0xc
add r5, r0, #0
mov r0, #0xf2
lsl r0, r0, #2
ldrb r0, [r5, r0]
add r7, r1, #0
add r0, r5, r0
ldrb r0, [r0, #0x18]
cmp r0, #0
beq _021D9170
ldr r0, [r5, #8]
bl FUN_020286EC
mov r1, #0xf2
lsl r1, r1, #2
ldrb r1, [r5, r1]
str r0, [sp, #8]
add r1, r5, r1
ldrb r1, [r1, #0x18]
sub r1, r1, #1
bl FUN_0202838C
bl DWC_GetFriendKey
str r1, [sp, #4]
add r4, r0, #0
ldr r0, [sp, #4]
mov r1, #0
eor r1, r0
mov r2, #0
add r0, r4, #0
eor r0, r2
orr r0, r1
beq _021D9170
mov r0, #0x34
bl FUN_02023928
mov r1, #0xf2
lsl r1, r1, #2
ldrb r1, [r5, r1]
add r6, r0, #0
ldr r0, [sp, #8]
add r1, r5, r1
ldrb r1, [r1, #0x18]
sub r1, r1, #1
bl FUN_020283A4
add r1, r0, #0
add r0, r6, #0
bl FUN_0202395C
ldr r0, _021D9180 ; =0x000005DC
bl FUN_020054C8
ldr r2, [sp, #4]
add r0, r5, #0
add r1, r4, #0
bl MOD55_021D93F8
ldr r0, [r5, #0xc]
mov r1, #0
add r2, r6, #0
bl FUN_0200ABC0
add r0, r5, #0
mov r1, #0x1f
bl MOD55_021DA15C
mov r0, #0xf3
mov r1, #1
lsl r0, r0, #2
strb r1, [r5, r0]
add r0, r6, #0
bl FreeToHeap
_021D9170:
mov r0, #0x3b
mov r1, #3
lsl r0, r0, #4
str r1, [r5, r0]
add r0, r7, #0
add sp, #0xc
pop {r4, r5, r6, r7, pc}
nop
_021D9180: .word 0x000005DC
thumb_func_end MOD55_021D90D8
thumb_func_start MOD55_021D9184
MOD55_021D9184: ; 0x021D9184
push {r4, r5, r6, r7, lr}
sub sp, #0x14
add r5, r0, #0
ldr r0, [r5, #8]
add r7, r1, #0
bl FUN_020286EC
bl FUN_02028228
bl DWC_CreateFriendKey
add r6, r0, #0
add r4, r1, #0
ldr r0, [r5, #4]
mov r1, #3
bl FUN_02018744
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0x34
str r0, [sp, #0xc]
ldr r2, [r5, #4]
mov r0, #0x59
mov r1, #7
mov r3, #1
bl FUN_020068C8
mov r0, #0xe6
lsl r0, r0, #2
add r0, r5, r0
bl FUN_02019048
cmp r0, #0
beq _021D91D6
mov r0, #0xe6
lsl r0, r0, #2
add r0, r5, r0
bl FUN_02019178
_021D91D6:
mov r0, #0
str r0, [sp]
mov r0, #0x14
str r0, [sp, #4]
mov r2, #3
mov r1, #0xe6
lsl r1, r1, #2
str r2, [sp, #8]
mov r0, #0xd
str r0, [sp, #0xc]
ldr r0, _021D93D0 ; =0x00000139
add r1, r5, r1
str r0, [sp, #0x10]
ldr r0, [r5, #4]
mov r3, #1
bl FUN_02019064
mov r0, #0xe6
lsl r0, r0, #2
add r0, r5, r0
mov r1, #0
bl FUN_02019620
ldr r0, [r5, #8]
bl FUN_020238F4
add r2, r0, #0
ldr r0, [r5, #0xc]
mov r1, #0
bl FUN_0200ABC0
add r2, r5, #0
add r2, #0xb8
ldr r0, [r5, #0x10]
ldr r2, [r2]
mov r1, #0x16
bl FUN_0200A8E0
add r1, r5, #0
add r2, r5, #0
add r1, #0xc0
add r2, #0xb8
ldr r0, [r5, #0xc]
ldr r1, [r1]
ldr r2, [r2]
bl FUN_0200B7B8
mov r0, #4
str r0, [sp]
mov r0, #0xff
str r0, [sp, #4]
ldr r0, _021D93D4 ; =0x000F0E00
add r2, r5, #0
str r0, [sp, #8]
mov r3, #0
mov r0, #0xe6
lsl r0, r0, #2
str r3, [sp, #0xc]
add r2, #0xc0
ldr r2, [r2]
add r0, r5, r0
mov r1, #1
bl FUN_0201BDE0
mov r0, #0xe6
lsl r0, r0, #2
add r0, r5, r0
bl FUN_02019220
mov r0, #0xce
lsl r0, r0, #2
add r0, r5, r0
bl FUN_02019048
cmp r0, #0
beq _021D9278
mov r0, #0xce
lsl r0, r0, #2
add r0, r5, r0
bl FUN_02019178
_021D9278:
mov r1, #0xd
str r1, [sp]
mov r0, #0x15
str r0, [sp, #4]
mov r0, #8
str r0, [sp, #8]
str r1, [sp, #0xc]
mov r0, #0x64
mov r1, #0xce
str r0, [sp, #0x10]
lsl r1, r1, #2
ldr r0, [r5, #4]
add r1, r5, r1
mov r2, #3
mov r3, #6
bl FUN_02019064
mov r0, #0xce
lsl r0, r0, #2
add r0, r5, r0
mov r1, #0
bl FUN_02019620
mov r1, #0
mov r0, #0
eor r1, r4
eor r0, r6
orr r0, r1
ldr r0, [r5, #0x10]
bne _021D92C2
add r2, r5, #0
add r2, #0xbc
ldr r2, [r2]
mov r1, #0x18
bl FUN_0200A8E0
b _021D92CE
_021D92C2:
add r2, r5, #0
add r2, #0xbc
ldr r2, [r2]
mov r1, #0x17
bl FUN_0200A8E0
_021D92CE:
add r1, r5, #0
add r1, #0xbc
mov r0, #0
ldr r1, [r1]
add r2, r0, #0
bl FUN_02002F08
mov r1, #0xa8
sub r0, r1, r0
mov r1, #0
lsr r3, r0, #1
add r2, r5, #0
str r1, [sp]
mov r0, #0xff
str r0, [sp, #4]
ldr r0, _021D93D8 ; =0x00010200
add r2, #0xbc
str r0, [sp, #8]
str r1, [sp, #0xc]
mov r0, #0xce
lsl r0, r0, #2
ldr r2, [r2]
add r0, r5, r0
bl FUN_0201BDE0
mov r0, #0xce
lsl r0, r0, #2
add r0, r5, r0
bl FUN_02019220
mov r1, #0
mov r0, #0
eor r1, r4
eor r0, r6
orr r0, r1
beq _021D93C2
add r0, r5, #0
add r1, r6, #0
add r2, r4, #0
bl MOD55_021D93F8
mov r0, #0xe2
lsl r0, r0, #2
add r0, r5, r0
bl FUN_02019048
cmp r0, #0
beq _021D9338
mov r0, #0xe2
lsl r0, r0, #2
add r0, r5, r0
bl FUN_02019178
_021D9338:
mov r0, #8
str r0, [sp]
mov r0, #0xe
str r0, [sp, #4]
mov r0, #2
str r0, [sp, #8]
mov r0, #0xd
str r0, [sp, #0xc]
mov r0, #0x32
mov r1, #0xe2
str r0, [sp, #0x10]
lsl r1, r1, #2
ldr r0, [r5, #4]
add r1, r5, r1
mov r2, #3
mov r3, #9
bl FUN_02019064
add r2, r5, #0
add r2, #0xb8
ldr r0, [r5, #0x10]
ldr r2, [r2]
mov r1, #0x1b
bl FUN_0200A8E0
add r1, r5, #0
add r2, r5, #0
add r1, #0xbc
add r2, #0xb8
ldr r0, [r5, #0xc]
ldr r1, [r1]
ldr r2, [r2]
bl FUN_0200B7B8
mov r0, #0xe2
lsl r0, r0, #2
add r0, r5, r0
mov r1, #0
bl FUN_02019620
add r1, r5, #0
add r1, #0xbc
mov r0, #0
ldr r1, [r1]
add r2, r0, #0
mov r3, #0x70
bl FUN_02002F40
mov r1, #0
add r3, r0, #0
add r2, r5, #0
str r1, [sp]
mov r0, #0xff
str r0, [sp, #4]
ldr r0, _021D93D8 ; =0x00010200
add r2, #0xbc
str r0, [sp, #8]
str r1, [sp, #0xc]
mov r0, #0xe2
lsl r0, r0, #2
ldr r2, [r2]
add r0, r5, r0
bl FUN_0201BDE0
mov r0, #0xe2
lsl r0, r0, #2
add r0, r5, r0
bl FUN_02019220
_021D93C2:
mov r0, #0x3b
mov r1, #0x13
lsl r0, r0, #4
str r1, [r5, r0]
add r0, r7, #0
add sp, #0x14
pop {r4, r5, r6, r7, pc}
.align 2, 0
_021D93D0: .word 0x00000139
_021D93D4: .word 0x000F0E00
_021D93D8: .word 0x00010200
thumb_func_end MOD55_021D9184
thumb_func_start MOD55_021D93DC
MOD55_021D93DC: ; 0x021D93DC
ldr r2, _021D93F4 ; =0x021C48B8
ldr r3, [r2, #0x48]
mov r2, #3
tst r2, r3
beq _021D93EE
mov r2, #0x3b
mov r3, #6
lsl r2, r2, #4
str r3, [r0, r2]
_021D93EE:
add r0, r1, #0
bx lr
nop
_021D93F4: .word 0x021C48B8
thumb_func_end MOD55_021D93DC
thumb_func_start MOD55_021D93F8
MOD55_021D93F8: ; 0x021D93F8
push {r4, r5, r6, lr}
sub sp, #8
add r6, r2, #0
add r4, r1, #0
add r5, r0, #0
ldr r2, _021D946C ; =0x05F5E100
add r0, r4, #0
add r1, r6, #0
mov r3, #0
bl _ll_udiv
add r2, r0, #0
mov r0, #2
str r0, [sp]
mov r1, #1
str r1, [sp, #4]
ldr r0, [r5, #0xc]
mov r3, #4
bl FUN_0200AD38
ldr r2, _021D9470 ; =0x00002710
add r0, r4, #0
add r1, r6, #0
mov r3, #0
bl _ll_udiv
ldr r2, _021D9470 ; =0x00002710
mov r3, #0
bl _ull_mod
mov r1, #2
add r2, r0, #0
str r1, [sp]
mov r0, #1
str r0, [sp, #4]
ldr r0, [r5, #0xc]
mov r3, #4
bl FUN_0200AD38
ldr r2, _021D9470 ; =0x00002710
add r0, r4, #0
add r1, r6, #0
mov r3, #0
bl _ull_mod
add r2, r0, #0
mov r0, #2
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
ldr r0, [r5, #0xc]
mov r1, #3
mov r3, #4
bl FUN_0200AD38
add sp, #8
pop {r4, r5, r6, pc}
nop
_021D946C: .word 0x05F5E100
_021D9470: .word 0x00002710
thumb_func_end MOD55_021D93F8
thumb_func_start MOD55_021D9474
MOD55_021D9474: ; 0x021D9474
push {r4, r5, lr}
sub sp, #0x64
add r4, r0, #0
mov r0, #1
mov r1, #0
add r2, r0, #0
bl GX_SetGraphicsMode
ldr r5, _021D9564 ; =0x021DA2D8
add r3, sp, #0x54
add r2, r3, #0
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
add r0, r2, #0
bl FUN_02016BBC
ldr r5, _021D9568 ; =0x021DA2F8
add r3, sp, #0x38
ldmia r5!, {r0, r1}
add r2, r3, #0
stmia r3!, {r0, r1}
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
ldr r0, [r5]
mov r1, #1
str r0, [r3]
add r0, r4, #0
mov r3, #0
bl FUN_02016C18
mov r0, #1
mov r1, #0x20
mov r2, #0
mov r3, #0x34
bl FUN_02017F18
add r0, r4, #0
mov r1, #1
bl FUN_02018744
ldr r5, _021D956C ; =0x021DA330
add r3, sp, #0x1c
ldmia r5!, {r0, r1}
add r2, r3, #0
stmia r3!, {r0, r1}
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
ldr r0, [r5]
mov r1, #2
str r0, [r3]
add r0, r4, #0
mov r3, #0
bl FUN_02016C18
mov r0, #2
mov r1, #0x20
mov r2, #0
mov r3, #0x34
bl FUN_02017F18
add r0, r4, #0
mov r1, #2
bl FUN_02018744
ldr r5, _021D9570 ; =0x021DA314
add r3, sp, #0
ldmia r5!, {r0, r1}
add r2, r3, #0
stmia r3!, {r0, r1}
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
ldr r0, [r5]
mov r1, #3
str r0, [r3]
add r0, r4, #0
mov r3, #0
bl FUN_02016C18
mov r0, #3
mov r1, #0x20
mov r2, #0
mov r3, #0x34
bl FUN_02017F18
add r0, r4, #0
mov r1, #3
bl FUN_02018744
mov r0, #0
mov r1, #0x20
add r2, r0, #0
mov r3, #0x34
bl FUN_02017F18
mov r0, #1
mov r1, #3
bl FUN_020178BC
mov r0, #2
add r1, r0, #0
bl FUN_020178BC
mov r0, #0
mov r1, #1
bl FUN_020178BC
mov r0, #3
mov r1, #0
bl FUN_020178BC
add sp, #0x64
pop {r4, r5, pc}
.align 2, 0
_021D9564: .word 0x021DA2D8
_021D9568: .word 0x021DA2F8
_021D956C: .word 0x021DA330
_021D9570: .word 0x021DA314
thumb_func_end MOD55_021D9474
thumb_func_start MOD55_021D9574
MOD55_021D9574: ; 0x021D9574
push {r3, lr}
bl FUN_020BB7F4
bl G3X_InitMtxStack
mov r0, #1
add r1, r0, #0
bl FUN_0201E6E4
ldr r0, _021D95D8 ; =0x04000008
mov r1, #3
ldrh r2, [r0]
bic r2, r1
mov r1, #1
orr r1, r2
strh r1, [r0]
add r0, #0x58
ldrh r1, [r0]
ldr r2, _021D95DC ; =0xFFFFCFFD
and r1, r2
strh r1, [r0]
ldrh r3, [r0]
add r1, r2, #2
and r3, r1
mov r1, #0x10
orr r1, r3
strh r1, [r0]
ldrh r3, [r0]
ldr r1, _021D95E0 ; =0x0000CFFB
and r1, r3
strh r1, [r0]
add r1, r2, #2
ldrh r3, [r0]
lsr r2, r2, #0x11
and r3, r1
mov r1, #8
orr r1, r3
strh r1, [r0]
mov r0, #0
add r1, r0, #0
mov r3, #0x3f
str r0, [sp]
bl G3X_SetClearColor
ldr r1, _021D95E4 ; =0x04000540
mov r0, #2
str r0, [r1]
ldr r0, _021D95E8 ; =0xBFFF0000
str r0, [r1, #0x40]
pop {r3, pc}
.align 2, 0
_021D95D8: .word 0x04000008
_021D95DC: .word 0xFFFFCFFD
_021D95E0: .word 0x0000CFFB
_021D95E4: .word 0x04000540
_021D95E8: .word 0xBFFF0000
thumb_func_end MOD55_021D9574
thumb_func_start MOD55_021D95EC
MOD55_021D95EC: ; 0x021D95EC
push {r4, r5, r6, r7, lr}
sub sp, #0x34
add r4, r0, #0
ldr r0, [r4, #8]
str r1, [sp, #0x14]
bl FUN_020286EC
str r0, [sp, #0x1c]
mov r0, #0xf2
lsl r0, r0, #2
ldrb r0, [r4, r0]
add r0, r4, r0
ldrb r0, [r0, #0x18]
sub r0, r0, #1
str r0, [sp, #0x18]
bl FUN_0200E308
cmp r0, #0
bne _021D9618
ldr r0, [sp, #0x14]
add sp, #0x34
pop {r4, r5, r6, r7, pc}
_021D9618:
add r0, r4, #0
bl MOD55_021D7720
add r0, r4, #0
bl MOD55_021D8140
ldr r0, [r4, #4]
bl MOD55_021D7AA4
mov r0, #0x34
bl FUN_02016B94
str r0, [r4, #4]
bl MOD55_021D9474
bl MOD55_021D9574
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0x34
str r0, [sp, #0xc]
ldr r2, [r4, #4]
mov r0, #0x59
mov r1, #2
mov r3, #1
bl FUN_0200687C
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0x34
str r0, [sp, #0xc]
ldr r2, [r4, #4]
mov r0, #0x59
mov r1, #8
mov r3, #1
bl FUN_020068C8
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0x34
str r0, [sp, #0xc]
ldr r2, [r4, #4]
mov r0, #0x59
mov r1, #6
mov r3, #2
bl FUN_020068C8
mov r0, #0xe6
lsl r0, r0, #2
add r0, r4, r0
bl FUN_02019048
cmp r0, #0
beq _021D969A
mov r0, #0xe6
lsl r0, r0, #2
add r0, r4, r0
bl FUN_02019178
_021D969A:
mov r0, #0
str r0, [sp]
mov r0, #0x14
str r0, [sp, #4]
mov r2, #3
mov r1, #0xe6
lsl r1, r1, #2
str r2, [sp, #8]
mov r0, #0xd
str r0, [sp, #0xc]
ldr r0, _021D9A50 ; =0x0000019D
add r1, r4, r1
str r0, [sp, #0x10]
ldr r0, [r4, #4]
mov r3, #1
bl FUN_02019064
mov r0, #0xe6
lsl r0, r0, #2
add r0, r4, r0
mov r1, #0
bl FUN_02019620
mov r0, #0x34
bl FUN_02023928
str r0, [sp, #0x20]
ldr r0, [sp, #0x1c]
ldr r1, [sp, #0x18]
bl FUN_020283A4
add r1, r0, #0
ldr r0, [sp, #0x20]
bl FUN_0202395C
ldr r0, [r4, #0xc]
ldr r2, [sp, #0x20]
mov r1, #0
bl FUN_0200ABC0
add r2, r4, #0
add r2, #0xb8
ldr r0, [r4, #0x10]
ldr r2, [r2]
mov r1, #0xd
bl FUN_0200A8E0
add r1, r4, #0
add r2, r4, #0
add r1, #0xc0
add r2, #0xb8
ldr r0, [r4, #0xc]
ldr r1, [r1]
ldr r2, [r2]
bl FUN_0200B7B8
mov r0, #4
str r0, [sp]
mov r0, #0xff
str r0, [sp, #4]
ldr r0, _021D9A54 ; =0x000F0E00
add r2, r4, #0
str r0, [sp, #8]
mov r3, #0
mov r0, #0xe6
lsl r0, r0, #2
str r3, [sp, #0xc]
add r2, #0xc0
ldr r2, [r2]
add r0, r4, r0
mov r1, #1
bl FUN_0201BDE0
mov r0, #0xe6
lsl r0, r0, #2
add r0, r4, r0
bl FUN_02019220
mov r0, #0xe2
lsl r0, r0, #2
add r0, r4, r0
bl FUN_02019048
cmp r0, #0
beq _021D974E
mov r0, #0xe2
lsl r0, r0, #2
add r0, r4, r0
bl FUN_02019178
_021D974E:
mov r0, #0x12
str r0, [sp]
mov r0, #8
str r0, [sp, #4]
mov r3, #2
mov r1, #0xe2
lsl r1, r1, #2
str r3, [sp, #8]
mov r0, #0xd
str r0, [sp, #0xc]
ldr r0, _021D9A58 ; =0x00000141
add r1, r4, r1
str r0, [sp, #0x10]
ldr r0, [r4, #4]
mov r2, #3
bl FUN_02019064
mov r0, #0xe2
lsl r0, r0, #2
add r0, r4, r0
mov r1, #0
bl FUN_02019620
ldr r0, [r4, #0xc]
ldr r2, [sp, #0x20]
mov r1, #0
bl FUN_0200ABC0
add r2, r4, #0
add r2, #0xb8
ldr r0, [r4, #0x10]
ldr r2, [r2]
mov r1, #6
bl FUN_0200A8E0
add r1, r4, #0
add r2, r4, #0
add r1, #0xc0
add r2, #0xb8
ldr r0, [r4, #0xc]
ldr r1, [r1]
ldr r2, [r2]
bl FUN_0200B7B8
ldr r0, _021D9A54 ; =0x000F0E00
add r1, r4, #0
str r0, [sp]
mov r0, #0xe2
add r1, #0xc0
lsl r0, r0, #2
ldr r1, [r1]
add r0, r4, r0
mov r2, #0xff
mov r3, #0x40
bl MOD55_021D80F0
mov r0, #0xe2
lsl r0, r0, #2
add r0, r4, r0
bl FUN_02019220
mov r0, #0x34
bl FUN_02006D98
add r1, r4, #0
add r1, #0xdc
str r0, [r1]
ldr r0, [sp, #0x1c]
ldr r1, [sp, #0x18]
mov r2, #7
bl FUN_0202822C
add r6, r0, #0
ldr r0, [sp, #0x1c]
ldr r1, [sp, #0x18]
mov r2, #8
bl FUN_0202822C
add r1, r6, #0
mov r2, #1
add r5, r0, #0
bl FUN_020536D0
add r1, r0, #0
lsl r1, r1, #0x10
lsl r3, r5, #0x18
add r0, sp, #0x24
lsr r1, r1, #0x10
mov r2, #2
lsr r3, r3, #0x18
bl FUN_02068FE0
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
str r0, [sp, #0xc]
add r0, r4, #0
add r0, #0xdc
ldr r0, [r0]
add r1, sp, #0x24
mov r2, #0x36
mov r3, #0x54
bl FUN_020073A0
add r1, r4, #0
add r1, #0xe0
str r0, [r1]
cmp r5, #1
bne _021D9864
ldr r0, [r4, #4]
mov r1, #2
bl FUN_0201886C
ldr r2, _021D9A5C ; =0x00000FFF
mov r7, #0x10
mov ip, r0
lsl r6, r7, #5
add r3, r2, #1
_021D983C:
lsl r5, r6, #1
mov r1, ip
mov r0, #0
add r1, r1, r5
_021D9844:
ldrh r5, [r1]
add r0, r0, #1
and r5, r2
add r5, r5, r3
strh r5, [r1]
add r1, r1, #2
cmp r0, #0xc
blt _021D9844
add r7, r7, #1
add r6, #0x20
cmp r7, #0x15
blt _021D983C
ldr r0, [r4, #4]
mov r1, #2
bl FUN_02017CD0
_021D9864:
mov r0, #0xd2
lsl r0, r0, #2
add r0, r4, r0
bl FUN_02019048
cmp r0, #0
beq _021D987C
mov r0, #0xd2
lsl r0, r0, #2
add r0, r4, r0
bl FUN_02019178
_021D987C:
mov r0, #4
str r0, [sp]
mov r0, #0x10
str r0, [sp, #4]
mov r0, #0x13
str r0, [sp, #8]
mov r0, #0xd
str r0, [sp, #0xc]
mov r0, #2
mov r1, #0xd2
str r0, [sp, #0x10]
lsl r1, r1, #2
ldr r0, [r4, #4]
add r1, r4, r1
mov r2, #3
mov r3, #0xf
bl FUN_02019064
mov r0, #0xd2
lsl r0, r0, #2
add r0, r4, r0
mov r1, #0
bl FUN_02019620
add r2, r4, #0
add r2, #0xc4
ldr r0, [r4, #0x10]
ldr r2, [r2]
mov r1, #0xe
bl FUN_0200A8E0
mov r0, #2
str r0, [sp]
mov r0, #0xff
str r0, [sp, #4]
ldr r0, _021D9A60 ; =0x00010200
mov r1, #0
str r0, [sp, #8]
add r2, r4, #0
mov r0, #0xd2
lsl r0, r0, #2
str r1, [sp, #0xc]
add r2, #0xc4
ldr r2, [r2]
add r0, r4, r0
add r3, r1, #0
bl FUN_0201BDE0
mov r0, #0x34
bl FUN_02023928
add r5, r0, #0
ldr r0, [sp, #0x1c]
ldr r1, [sp, #0x18]
bl FUN_020283E8
add r1, r0, #0
add r0, r5, #0
bl FUN_0202395C
ldr r0, [r4, #0xc]
mov r1, #0
add r2, r5, #0
bl FUN_0200ABC0
add r0, r5, #0
bl FreeToHeap
add r2, r4, #0
add r2, #0xb8
ldr r0, [r4, #0x10]
ldr r2, [r2]
mov r1, #0x2a
bl FUN_0200A8E0
add r1, r4, #0
add r2, r4, #0
add r1, #0xc4
add r2, #0xb8
ldr r0, [r4, #0xc]
ldr r1, [r1]
ldr r2, [r2]
bl FUN_0200B7B8
add r1, r4, #0
add r1, #0xc4
mov r0, #0
ldr r1, [r1]
add r2, r0, #0
bl FUN_02002E14
mov r1, #0x78
sub r3, r1, r0
mov r0, #2
str r0, [sp]
mov r0, #0xff
str r0, [sp, #4]
ldr r0, _021D9A60 ; =0x00010200
add r2, r4, #0
str r0, [sp, #8]
mov r1, #0
mov r0, #0xd2
lsl r0, r0, #2
str r1, [sp, #0xc]
add r2, #0xc4
ldr r2, [r2]
add r0, r4, r0
bl FUN_0201BDE0
add r2, r4, #0
add r2, #0xc8
ldr r0, [r4, #0x10]
ldr r2, [r2]
mov r1, #0xf
bl FUN_0200A8E0
mov r0, #0x18
str r0, [sp]
mov r0, #0xff
str r0, [sp, #4]
ldr r0, _021D9A60 ; =0x00010200
mov r1, #0
str r0, [sp, #8]
add r2, r4, #0
mov r0, #0xd2
lsl r0, r0, #2
str r1, [sp, #0xc]
add r2, #0xc8
ldr r2, [r2]
add r0, r4, r0
add r3, r1, #0
bl FUN_0201BDE0
ldr r0, [sp, #0x1c]
ldr r1, [sp, #0x18]
mov r2, #1
bl FUN_0202822C
add r2, r0, #0
mov r0, #1
str r0, [sp]
str r0, [sp, #4]
ldr r0, [r4, #0xc]
mov r1, #0
mov r3, #4
bl FUN_0200AD38
add r2, r4, #0
add r2, #0xb8
ldr r0, [r4, #0x10]
ldr r2, [r2]
mov r1, #0x10
bl FUN_0200A8E0
add r1, r4, #0
add r2, r4, #0
add r1, #0xc0
add r2, #0xb8
ldr r0, [r4, #0xc]
ldr r1, [r1]
ldr r2, [r2]
bl FUN_0200B7B8
add r1, r4, #0
add r1, #0xc0
mov r0, #0
ldr r1, [r1]
add r2, r0, #0
bl FUN_02002E14
mov r1, #0x78
sub r3, r1, r0
mov r0, #0x27
str r0, [sp]
mov r0, #0xff
str r0, [sp, #4]
ldr r0, _021D9A60 ; =0x00010200
add r2, r4, #0
str r0, [sp, #8]
mov r1, #0
mov r0, #0xd2
lsl r0, r0, #2
str r1, [sp, #0xc]
add r2, #0xc0
ldr r2, [r2]
add r0, r4, r0
bl FUN_0201BDE0
ldr r0, [sp, #0x1c]
ldr r1, [sp, #0x18]
mov r2, #2
bl FUN_0202822C
add r2, r0, #0
mov r0, #1
str r0, [sp]
str r0, [sp, #4]
ldr r0, [r4, #0xc]
mov r1, #0
mov r3, #4
bl FUN_0200AD38
add r2, r4, #0
add r2, #0xb8
ldr r0, [r4, #0x10]
ldr r2, [r2]
mov r1, #0x11
bl FUN_0200A8E0
add r1, r4, #0
add r2, r4, #0
add r1, #0xc0
add r2, #0xb8
ldr r0, [r4, #0xc]
ldr r1, [r1]
ldr r2, [r2]
bl FUN_0200B7B8
add r1, r4, #0
add r1, #0xc0
mov r0, #0
ldr r1, [r1]
add r2, r0, #0
bl FUN_02002E14
mov r1, #0x78
sub r3, r1, r0
mov r0, #0x35
str r0, [sp]
mov r0, #0xff
str r0, [sp, #4]
ldr r0, _021D9A60 ; =0x00010200
b _021D9A64
nop
_021D9A50: .word 0x0000019D
_021D9A54: .word 0x000F0E00
_021D9A58: .word 0x00000141
_021D9A5C: .word 0x00000FFF
_021D9A60: .word 0x00010200
_021D9A64:
add r2, r4, #0
str r0, [sp, #8]
mov r1, #0
mov r0, #0xd2
lsl r0, r0, #2
str r1, [sp, #0xc]
add r2, #0xc0
ldr r2, [r2]
add r0, r4, r0
bl FUN_0201BDE0
add r2, r4, #0
add r2, #0xc0
ldr r0, [r4, #0x10]
ldr r2, [r2]
mov r1, #0x12
bl FUN_0200A8E0
mov r0, #0x4a
str r0, [sp]
mov r0, #0xff
str r0, [sp, #4]
ldr r0, _021D9C4C ; =0x00010200
mov r1, #0
str r0, [sp, #8]
add r2, r4, #0
mov r0, #0xd2
lsl r0, r0, #2
str r1, [sp, #0xc]
add r2, #0xc0
ldr r2, [r2]
add r0, r4, r0
add r3, r1, #0
bl FUN_0201BDE0
ldr r0, [sp, #0x1c]
ldr r1, [sp, #0x18]
mov r2, #3
bl FUN_0202822C
add r5, r0, #0
mov r0, #1
str r0, [sp]
str r0, [sp, #4]
ldr r0, [r4, #0xc]
mov r1, #0
add r2, r5, #0
mov r3, #4
bl FUN_0200AD38
cmp r5, #1
ldr r0, [r4, #0x10]
bne _021D9ADC
add r2, r4, #0
add r2, #0xb8
ldr r2, [r2]
mov r1, #0x13
bl FUN_0200A8E0
b _021D9AE8
_021D9ADC:
add r2, r4, #0
add r2, #0xb8
ldr r2, [r2]
mov r1, #0x2b
bl FUN_0200A8E0
_021D9AE8:
add r1, r4, #0
add r2, r4, #0
add r1, #0xc0
add r2, #0xb8
ldr r0, [r4, #0xc]
ldr r1, [r1]
ldr r2, [r2]
bl FUN_0200B7B8
add r1, r4, #0
add r1, #0xc0
mov r0, #0
ldr r1, [r1]
add r2, r0, #0
bl FUN_02002E14
mov r1, #0x78
sub r3, r1, r0
mov r0, #0x5c
str r0, [sp]
mov r0, #0xff
str r0, [sp, #4]
ldr r0, _021D9C4C ; =0x00010200
add r2, r4, #0
str r0, [sp, #8]
mov r1, #0
mov r0, #0xd2
lsl r0, r0, #2
str r1, [sp, #0xc]
add r2, #0xc0
ldr r2, [r2]
add r0, r4, r0
bl FUN_0201BDE0
add r2, r4, #0
add r2, #0xc0
ldr r0, [r4, #0x10]
ldr r2, [r2]
mov r1, #0x14
bl FUN_0200A8E0
mov r0, #0x71
str r0, [sp]
mov r0, #0xff
str r0, [sp, #4]
ldr r0, _021D9C4C ; =0x00010200
mov r1, #0
str r0, [sp, #8]
add r2, r4, #0
mov r0, #0xd2
lsl r0, r0, #2
str r1, [sp, #0xc]
add r2, #0xc0
ldr r2, [r2]
add r0, r4, r0
add r3, r1, #0
bl FUN_0201BDE0
ldr r0, [sp, #0x1c]
ldr r1, [sp, #0x18]
mov r2, #6
bl FUN_0202822C
add r2, r0, #0
beq _021D9C18
mov r0, #1
str r0, [sp]
str r0, [sp, #4]
mov r1, #2
ldr r0, [r4, #0xc]
add r3, r1, #0
bl FUN_0200AD38
ldr r0, [sp, #0x1c]
ldr r1, [sp, #0x18]
mov r2, #4
bl FUN_0202822C
add r2, r0, #0
mov r0, #1
str r0, [sp]
str r0, [sp, #4]
ldr r0, [r4, #0xc]
mov r1, #0
mov r3, #4
bl FUN_0200AD38
ldr r0, [sp, #0x1c]
ldr r1, [sp, #0x18]
mov r2, #5
bl FUN_0202822C
add r2, r0, #0
ldr r0, [r4, #0xc]
mov r1, #1
bl FUN_0200B764
ldr r0, [sp, #0x1c]
ldr r1, [sp, #0x18]
mov r2, #6
bl FUN_0202822C
add r2, r0, #0
mov r0, #1
str r0, [sp]
str r0, [sp, #4]
mov r1, #2
ldr r0, [r4, #0xc]
add r3, r1, #0
bl FUN_0200AD38
add r2, r4, #0
add r2, #0xb8
ldr r0, [r4, #0x10]
ldr r2, [r2]
mov r1, #0x15
bl FUN_0200A8E0
add r1, r4, #0
add r2, r4, #0
add r1, #0xc0
add r2, #0xb8
ldr r0, [r4, #0xc]
ldr r1, [r1]
ldr r2, [r2]
bl FUN_0200B7B8
add r1, r4, #0
add r1, #0xc0
mov r0, #0
ldr r1, [r1]
add r2, r0, #0
bl FUN_02002E14
mov r1, #0x78
sub r3, r1, r0
mov r1, #0x81
add r2, r4, #0
str r1, [sp]
mov r0, #0xff
str r0, [sp, #4]
lsl r0, r1, #9
str r0, [sp, #8]
mov r1, #0
mov r0, #0xd2
lsl r0, r0, #2
str r1, [sp, #0xc]
add r2, #0xc0
ldr r2, [r2]
add r0, r4, r0
bl FUN_0201BDE0
_021D9C18:
mov r0, #0xd2
lsl r0, r0, #2
add r0, r4, r0
bl FUN_02019220
ldr r0, [sp, #0x20]
bl FreeToHeap
mov r0, #0x3b
mov r1, #0x15
lsl r0, r0, #4
str r1, [r4, r0]
mov r0, #6
str r0, [sp]
mov r1, #1
str r1, [sp, #4]
mov r0, #0x34
str r0, [sp, #8]
mov r0, #0
add r2, r1, #0
add r3, r0, #0
bl FUN_0200E1D0
ldr r0, [sp, #0x14]
add sp, #0x34
pop {r4, r5, r6, r7, pc}
.align 2, 0
_021D9C4C: .word 0x00010200
thumb_func_end MOD55_021D95EC
thumb_func_start MOD55_021D9C50
MOD55_021D9C50: ; 0x021D9C50
push {r4, r5, lr}
sub sp, #0xc
add r5, r0, #0
add r4, r1, #0
bl G3X_ResetMtxStack
bl G3X_ResetMtxStack_2
bl FUN_020B02C8
add r0, r5, #0
add r0, #0xdc
ldr r0, [r0]
bl FUN_02006ED4
ldr r0, _021D9CB8 ; =0x04000540
mov r1, #0
str r1, [r0]
bl FUN_0200E308
cmp r0, #0
bne _021D9C82
add sp, #0xc
add r0, r4, #0
pop {r4, r5, pc}
_021D9C82:
ldr r0, _021D9CBC ; =0x021C48B8
ldr r1, [r0, #0x48]
mov r0, #3
tst r0, r1
beq _021D9CB2
ldr r0, _021D9CC0 ; =0x000005DC
bl FUN_020054C8
mov r0, #6
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
mov r0, #0x34
str r0, [sp, #8]
mov r0, #0
add r1, r0, #0
add r2, r0, #0
add r3, r0, #0
bl FUN_0200E1D0
mov r0, #0x3b
mov r1, #0x16
lsl r0, r0, #4
str r1, [r5, r0]
_021D9CB2:
add r0, r4, #0
add sp, #0xc
pop {r4, r5, pc}
.align 2, 0
_021D9CB8: .word 0x04000540
_021D9CBC: .word 0x021C48B8
_021D9CC0: .word 0x000005DC
thumb_func_end MOD55_021D9C50
thumb_func_start MOD55_021D9CC4
MOD55_021D9CC4: ; 0x021D9CC4
push {r3, r4, r5, lr}
sub sp, #0x10
add r5, r0, #0
add r4, r1, #0
bl G3X_ResetMtxStack
bl G3X_ResetMtxStack_2
bl FUN_020B02C8
add r0, r5, #0
add r0, #0xdc
ldr r0, [r0]
bl FUN_02006ED4
ldr r0, _021D9D84 ; =0x04000540
mov r1, #0
str r1, [r0]
bl FUN_0200E308
cmp r0, #0
bne _021D9CF6
add sp, #0x10
add r0, r4, #0
pop {r3, r4, r5, pc}
_021D9CF6:
add r0, r5, #0
add r0, #0xe0
ldr r0, [r0]
cmp r0, #0
beq _021D9D16
bl FUN_02007534
add r0, r5, #0
add r0, #0xdc
ldr r0, [r0]
bl FUN_020072E8
add r0, r5, #0
mov r1, #0
add r0, #0xe0
str r1, [r0]
_021D9D16:
ldr r0, [r5, #4]
bl MOD55_021D7AA4
mov r0, #0x34
bl FUN_02016B94
str r0, [r5, #4]
bl MOD55_021D781C
add r0, r5, #0
bl MOD55_021D74E0
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0x34
str r0, [sp, #0xc]
ldr r2, [r5, #4]
mov r0, #0x59
mov r1, #0xa
mov r3, #4
bl FUN_0200687C
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0x34
str r0, [sp, #0xc]
ldr r2, [r5, #4]
mov r0, #0x59
mov r1, #0xb
mov r3, #4
bl FUN_020068C8
mov r0, #3
str r0, [sp]
mov r1, #1
str r1, [sp, #4]
mov r0, #0x34
str r0, [sp, #8]
mov r0, #0
add r2, r1, #0
add r3, r0, #0
bl FUN_0200E1D0
mov r0, #0x3b
mov r1, #2
lsl r0, r0, #4
str r1, [r5, r0]
add r0, r4, #0
add sp, #0x10
pop {r3, r4, r5, pc}
nop
_021D9D84: .word 0x04000540
thumb_func_end MOD55_021D9CC4
thumb_func_start MOD55_021D9D88
MOD55_021D9D88: ; 0x021D9D88
push {r4, r5, r6, r7, lr}
sub sp, #0x14
add r6, r0, #0
ldr r0, [r6, #4]
str r1, [sp, #0x10]
mov r1, #3
bl FUN_02018744
mov r3, #0
str r3, [sp]
str r3, [sp, #4]
str r3, [sp, #8]
mov r0, #0x34
str r0, [sp, #0xc]
ldr r2, [r6, #4]
mov r0, #0x59
mov r1, #8
bl FUN_020068C8
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0x34
str r0, [sp, #0xc]
ldr r2, [r6, #4]
mov r0, #0x59
mov r1, #4
mov r3, #1
bl FUN_020068C8
mov r7, #0x29
mov r4, #0
add r5, r6, #0
lsl r7, r7, #4
_021D9DCE:
ldr r0, [r5, r7]
mov r1, #0
bl FUN_020200A0
add r4, r4, #1
add r5, r5, #4
cmp r4, #0xa
blt _021D9DCE
mov r0, #0xf2
mov r1, #0
lsl r0, r0, #2
strb r1, [r6, r0]
add r0, r0, #3
strb r1, [r6, r0]
add r0, r6, #0
bl MOD55_021D7EE4
add r0, r6, #0
bl MOD55_021D8044
mov r0, #0x3b
mov r1, #1
lsl r0, r0, #4
str r1, [r6, r0]
ldr r0, [sp, #0x10]
add sp, #0x14
pop {r4, r5, r6, r7, pc}
thumb_func_end MOD55_021D9D88
thumb_func_start MOD55_021D9E04
MOD55_021D9E04: ; 0x021D9E04
push {r4, r5, lr}
sub sp, #0xc
add r5, r0, #0
mov r0, #6
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
mov r0, #0x34
add r4, r1, #0
str r0, [sp, #8]
mov r0, #0
mov r1, #0x10
add r2, r1, #0
add r3, r0, #0
bl FUN_0200E1D0
mov r0, #0x3b
mov r1, #0x18
lsl r0, r0, #4
str r1, [r5, r0]
add r0, r4, #0
add sp, #0xc
pop {r4, r5, pc}
.align 2, 0
thumb_func_end MOD55_021D9E04
thumb_func_start MOD55_021D9E34
MOD55_021D9E34: ; 0x021D9E34
ldr r3, _021D9E3C ; =FUN_0201C78C
ldrh r0, [r0]
bx r3
nop
_021D9E3C: .word FUN_0201C78C
thumb_func_end MOD55_021D9E34
thumb_func_start MOD55_021D9E40
MOD55_021D9E40: ; 0x021D9E40
push {r3, r4, r5, r6, lr}
sub sp, #4
add r4, r0, #0
ldr r0, [r4, #8]
add r6, r1, #0
bl FUN_020286EC
add r5, r0, #0
bl FUN_0200E308
cmp r0, #0
beq _021D9EBE
mov r0, #0
bl MOD55_021DA27C
add r0, r4, #0
bl MOD55_021D778C
ldr r0, [r4, #8]
bl LoadPlayerDataAddress
mov r1, #7
str r0, [sp]
mov r0, #0x34
mov r2, #0
add r3, r1, #0
bl FUN_02077A84
str r0, [r4]
ldr r0, _021D9EC4 ; =0x020FA5FC
ldr r1, [r4]
mov r2, #0x34
bl FUN_02006234
mov r1, #0x3d
lsl r1, r1, #4
str r0, [r4, r1]
add r0, r1, #0
mov r2, #0x19
sub r0, #0x20
str r2, [r4, r0]
sub r1, #8
ldrb r1, [r4, r1]
add r0, r5, #0
add r1, r4, r1
ldrb r1, [r1, #0x18]
sub r1, r1, #1
bl FUN_020283A4
add r5, r0, #0
bl MOD55_021D9E34
cmp r0, #0
ldr r0, [r4]
bne _021D9EB8
ldr r0, [r0, #0x18]
add r1, r5, #0
bl FUN_02021E28
b _021D9EBE
_021D9EB8:
ldr r0, [r0, #0x18]
bl FUN_02021A4C
_021D9EBE:
add r0, r6, #0
add sp, #4
pop {r3, r4, r5, r6, pc}
.align 2, 0
_021D9EC4: .word 0x020FA5FC
thumb_func_end MOD55_021D9E40
thumb_func_start MOD55_021D9EC8
MOD55_021D9EC8: ; 0x021D9EC8
push {r4, r5, lr}
sub sp, #0xc
add r5, r0, #0
mov r0, #0x3d
lsl r0, r0, #4
ldr r0, [r5, r0]
add r4, r1, #0
bl FUN_02006290
cmp r0, #0
beq _021D9F68
mov r0, #0x3d
lsl r0, r0, #4
ldr r0, [r5, r0]
bl FUN_02006260
ldr r1, [r5]
ldr r0, [r1, #0x14]
cmp r0, #0
bne _021D9F18
add r0, r5, #0
add r0, #0xd4
ldr r0, [r0]
ldr r1, [r1, #0x18]
bl FUN_02021A74
ldr r0, [r5, #8]
bl FUN_020286EC
mov r1, #0xf2
lsl r1, r1, #2
ldrb r1, [r5, r1]
add r2, r5, #0
add r2, #0xd4
add r1, r5, r1
ldrb r1, [r1, #0x18]
ldr r2, [r2]
sub r1, r1, #1
bl FUN_020283C0
_021D9F18:
ldr r0, [r5]
bl FUN_02077AC4
mov r0, #0
add r1, r0, #0
bl FUN_0200E3A0
mov r0, #1
mov r1, #0
bl FUN_0200E3A0
mov r0, #0
bl MOD55_021DA27C
mov r0, #6
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
mov r0, #0x34
str r0, [sp, #8]
mov r0, #0
mov r1, #0x11
add r2, r1, #0
add r3, r0, #0
bl FUN_0200E1D0
add r0, r5, #0
bl MOD55_021D7504
add r0, r5, #0
add r1, r4, #0
bl MOD55_021D8A7C
mov r0, #1
bl MOD55_021DA27C
mov r0, #0x3b
mov r1, #0x1a
lsl r0, r0, #4
str r1, [r5, r0]
_021D9F68:
add r0, r4, #0
add sp, #0xc
pop {r4, r5, pc}
.align 2, 0
thumb_func_end MOD55_021D9EC8
thumb_func_start MOD55_021D9F70
MOD55_021D9F70: ; 0x021D9F70
push {r3, r4, r5, lr}
add r5, r0, #0
add r4, r1, #0
bl FUN_0200E308
cmp r0, #0
beq _021D9F86
mov r0, #0x3b
mov r1, #3
lsl r0, r0, #4
str r1, [r5, r0]
_021D9F86:
add r0, r4, #0
pop {r3, r4, r5, pc}
.align 2, 0
thumb_func_end MOD55_021D9F70
thumb_func_start MOD55_021D9F8C
MOD55_021D9F8C: ; 0x021D9F8C
push {r4, r5, r6, lr}
add r5, r0, #0
mov r0, #0x34
add r6, r1, #0
bl FUN_02023928
add r4, r0, #0
ldr r0, [r5, #8]
bl FUN_020286EC
mov r1, #0xf2
lsl r1, r1, #2
ldrb r1, [r5, r1]
add r1, r5, r1
ldrb r1, [r1, #0x18]
sub r1, r1, #1
bl FUN_020283A4
add r1, r0, #0
add r0, r4, #0
bl FUN_0202395C
ldr r0, [r5, #0xc]
mov r1, #0
add r2, r4, #0
bl FUN_0200ABC0
add r0, r5, #0
mov r1, #0x1c
bl MOD55_021DA0A4
add r0, r4, #0
bl FreeToHeap
mov r0, #0x3b
mov r1, #0x1c
lsl r0, r0, #4
str r1, [r5, r0]
add r0, r6, #0
pop {r4, r5, r6, pc}
thumb_func_end MOD55_021D9F8C
thumb_func_start MOD55_021D9FDC
MOD55_021D9FDC: ; 0x021D9FDC
push {r3, r4, r5, lr}
add r5, r0, #0
add r0, #0xe4
ldr r0, [r0]
add r4, r1, #0
lsl r0, r0, #0x18
lsr r0, r0, #0x18
bl FUN_0201BD70
cmp r0, #0
bne _021DA010
mov r0, #0x34
str r0, [sp]
ldr r0, [r5, #4]
ldr r1, _021DA014 ; =0x021DA2AC
ldr r2, _021DA018 ; =0x000001D9
mov r3, #0xb
bl FUN_02002198
add r1, r5, #0
add r1, #0xe8
str r0, [r1]
mov r0, #0x3b
mov r1, #0x1d
lsl r0, r0, #4
str r1, [r5, r0]
_021DA010:
add r0, r4, #0
pop {r3, r4, r5, pc}
.align 2, 0
_021DA014: .word 0x021DA2AC
_021DA018: .word 0x000001D9
thumb_func_end MOD55_021D9FDC
thumb_func_start MOD55_021DA01C
MOD55_021DA01C: ; 0x021DA01C
push {r3, r4, r5, lr}
add r5, r0, #0
add r0, #0xe8
add r4, r1, #0
ldr r0, [r0]
mov r1, #0x34
bl FUN_020021AC
mov r1, #0
mvn r1, r1
cmp r0, r1
bne _021DA038
add r0, r4, #0
pop {r3, r4, r5, pc}
_021DA038:
cmp r0, #0
bne _021DA056
ldr r0, [r5, #8]
bl FUN_020286EC
mov r1, #0xf2
lsl r1, r1, #2
ldrb r1, [r5, r1]
add r1, r5, r1
ldrb r1, [r1, #0x18]
sub r1, r1, #1
bl FUN_02028468
mov r1, #2
b _021DA070
_021DA056:
mov r0, #0x2b
lsl r0, r0, #4
ldr r0, [r5, r0]
mov r1, #1
bl FUN_020200A0
mov r0, #0xad
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #1
bl FUN_020200A0
mov r1, #3
_021DA070:
mov r0, #0x3b
lsl r0, r0, #4
str r1, [r5, r0]
add r0, r5, #0
bl MOD55_021DA214
add r0, r4, #0
pop {r3, r4, r5, pc}
thumb_func_end MOD55_021DA01C
thumb_func_start MOD55_021DA080
MOD55_021DA080: ; 0x021DA080
push {lr}
sub sp, #0xc
mov r0, #6
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
mov r0, #0x34
str r0, [sp, #8]
mov r0, #0
mov r1, #0x10
add r2, r1, #0
add r3, r0, #0
bl FUN_0200E1D0
mov r0, #2
add sp, #0xc
pop {pc}
.align 2, 0
thumb_func_end MOD55_021DA080
thumb_func_start MOD55_021DA0A4
MOD55_021DA0A4: ; 0x021DA0A4
push {r3, r4, r5, r6, lr}
sub sp, #0x14
add r5, r0, #0
ldr r0, [r5, #8]
add r6, r1, #0
bl LoadPlayerDataAddress
bl FUN_02024FF4
add r4, r0, #0
mov r0, #0xce
lsl r0, r0, #2
add r0, r5, r0
bl FUN_02019048
cmp r0, #0
beq _021DA0D0
mov r0, #0xce
lsl r0, r0, #2
add r0, r5, r0
bl FUN_02019178
_021DA0D0:
mov r0, #0x13
str r0, [sp]
mov r0, #0x1b
str r0, [sp, #4]
mov r0, #4
str r0, [sp, #8]
mov r0, #0xc
str r0, [sp, #0xc]
ldr r0, _021DA154 ; =0x0000012D
mov r1, #0xce
str r0, [sp, #0x10]
lsl r1, r1, #2
mov r2, #2
ldr r0, [r5, #4]
add r1, r5, r1
add r3, r2, #0
bl FUN_02019064
add r2, r5, #0
add r2, #0xb8
ldr r0, [r5, #0x10]
ldr r2, [r2]
add r1, r6, #0
bl FUN_0200A8E0
add r1, r5, #0
add r2, r5, #0
add r1, #0xbc
add r2, #0xb8
ldr r0, [r5, #0xc]
ldr r1, [r1]
ldr r2, [r2]
bl FUN_0200B7B8
mov r0, #0xce
lsl r0, r0, #2
add r0, r5, r0
mov r1, #0xf
bl FUN_02019620
mov r0, #0xce
lsl r0, r0, #2
ldr r2, _021DA158 ; =0x000001E2
add r0, r5, r0
mov r1, #1
mov r3, #0xa
bl FUN_0200D0BC
mov r3, #0
str r3, [sp]
str r4, [sp, #4]
add r2, r5, #0
mov r0, #0xce
lsl r0, r0, #2
str r3, [sp, #8]
add r2, #0xbc
ldr r2, [r2]
add r0, r5, r0
mov r1, #1
bl FUN_0201BD84
add r5, #0xe4
str r0, [r5]
add sp, #0x14
pop {r3, r4, r5, r6, pc}
nop
_021DA154: .word 0x0000012D
_021DA158: .word 0x000001E2
thumb_func_end MOD55_021DA0A4
thumb_func_start MOD55_021DA15C
MOD55_021DA15C: ; 0x021DA15C
push {r4, r5, lr}
sub sp, #0x14
add r5, r0, #0
mov r0, #0xce
lsl r0, r0, #2
add r0, r5, r0
add r4, r1, #0
bl FUN_02019048
cmp r0, #0
beq _021DA17C
mov r0, #0xce
lsl r0, r0, #2
add r0, r5, r0
bl FUN_02019178
_021DA17C:
mov r0, #0x13
str r0, [sp]
mov r0, #0x1b
str r0, [sp, #4]
mov r0, #4
str r0, [sp, #8]
mov r0, #0xc
str r0, [sp, #0xc]
ldr r0, _021DA20C ; =0x0000012D
mov r1, #0xce
str r0, [sp, #0x10]
lsl r1, r1, #2
mov r2, #2
ldr r0, [r5, #4]
add r1, r5, r1
add r3, r2, #0
bl FUN_02019064
add r2, r5, #0
add r2, #0xb8
ldr r0, [r5, #0x10]
ldr r2, [r2]
add r1, r4, #0
bl FUN_0200A8E0
add r1, r5, #0
add r2, r5, #0
add r1, #0xbc
add r2, #0xb8
ldr r0, [r5, #0xc]
ldr r1, [r1]
ldr r2, [r2]
bl FUN_0200B7B8
mov r0, #0xce
lsl r0, r0, #2
add r0, r5, r0
mov r1, #0xf
bl FUN_02019620
mov r0, #0xce
lsl r0, r0, #2
ldr r2, _021DA210 ; =0x000001E2
add r0, r5, r0
mov r1, #1
mov r3, #0xa
bl FUN_0200D0BC
mov r3, #0
add r2, r5, #0
str r3, [sp]
mov r0, #0xff
str r0, [sp, #4]
mov r0, #0xce
lsl r0, r0, #2
str r3, [sp, #8]
add r2, #0xbc
ldr r2, [r2]
add r0, r5, r0
mov r1, #1
bl FUN_0201BD84
add r1, r5, #0
add r1, #0xe4
str r0, [r1]
mov r0, #0xce
lsl r0, r0, #2
add r0, r5, r0
bl FUN_02019220
add sp, #0x14
pop {r4, r5, pc}
.align 2, 0
_021DA20C: .word 0x0000012D
_021DA210: .word 0x000001E2
thumb_func_end MOD55_021DA15C
thumb_func_start MOD55_021DA214
MOD55_021DA214: ; 0x021DA214
mov r1, #0xce
lsl r1, r1, #2
add r0, r0, r1
ldr r3, _021DA220 ; =FUN_0200D0E0
mov r1, #0
bx r3
.align 2, 0
_021DA220: .word FUN_0200D0E0
thumb_func_end MOD55_021DA214
thumb_func_start MOD55_021DA224
MOD55_021DA224: ; 0x021DA224
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r7, r1, #0
add r4, r2, #0
add r6, r3, #0
cmp r5, #0
beq _021DA276
bl FUN_020286EC
bl FUN_02028228
add r1, r4, #0
add r2, r6, #0
bl DWC_CheckFriendKey
cmp r0, #0
bne _021DA24C
mov r0, #0
mvn r0, r0
pop {r3, r4, r5, r6, r7, pc}
_021DA24C:
add r0, r5, #0
add r1, r4, #0
add r2, r6, #0
add r3, sp, #0
bl FUN_02033918
cmp r0, #0
bne _021DA262
mov r0, #1
mvn r0, r0
pop {r3, r4, r5, r6, r7, pc}
_021DA262:
add r0, r5, #0
bl FUN_020286EC
add r1, r7, #0
bl FUN_0202838C
add r1, r4, #0
add r2, r6, #0
bl DWC_CreateFriendKeyToken
_021DA276:
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_end MOD55_021DA224
thumb_func_start MOD55_021DA27C
MOD55_021DA27C: ; 0x021DA27C
push {r4, lr}
add r4, r0, #0
lsl r1, r4, #0x18
mov r0, #0xf
lsr r1, r1, #0x18
bl FUN_0201E6E4
lsl r1, r4, #0x18
mov r0, #1
lsr r1, r1, #0x18
bl FUN_0201E74C
pop {r4, pc}
.align 2, 0
thumb_func_end MOD55_021DA27C
.section .rodata
; 0x021DA298
.byte 0x01, 0x04, 0x0F, 0x04, 0x02, 0x05, 0x02, 0x02, 0x02, 0x04, 0x1C, 0x04, 0x08, 0x00, 0x42, 0x00
.byte 0x08, 0x08, 0x42, 0x08, 0x02, 0x19, 0x0D, 0x06, 0x04, 0x0D, 0x15, 0x01, 0x2E, 0x00, 0x2F, 0x00
.byte 0x33, 0x00, 0x34, 0x00, 0x00, 0x06, 0x05, 0x00, 0x00, 0x04, 0x03, 0x00, 0x00, 0x02, 0x01, 0x00
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0x14, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x18, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1F, 0x00
.byte 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1A, 0x01, 0x00, 0x01, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x18, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x1A, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1C, 0x02
.byte 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1F, 0x00, 0x01, 0x03, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1E, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x20, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00
.byte 0x0A, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x04, 0x00, 0x04, 0x00, 0x00, 0x08, 0x00, 0x10, 0x2F, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x04, 0x00, 0x04, 0x00, 0x00, 0x08, 0x00, 0x10, 0x2F, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x08, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00
.byte 0x0A, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF
.byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00
.section .data
; 0x021DA4A0
.byte 0xD1, 0x81, 0x1D, 0x02, 0xDD, 0x81, 0x1D, 0x02, 0x7D, 0x8A, 0x1D, 0x02, 0x15, 0x8D, 0x1D, 0x02
.byte 0x6D, 0x8E, 0x1D, 0x02, 0xE5, 0x8F, 0x1D, 0x02, 0x89, 0x9D, 0x1D, 0x02, 0xC1, 0x82, 0x1D, 0x02
.byte 0x21, 0x83, 0x1D, 0x02, 0x71, 0x83, 0x1D, 0x02, 0x05, 0x84, 0x1D, 0x02, 0x41, 0x84, 0x1D, 0x02
.byte 0xC9, 0x84, 0x1D, 0x02, 0x45, 0x85, 0x1D, 0x02, 0x85, 0x85, 0x1D, 0x02, 0x81, 0x86, 0x1D, 0x02
.byte 0x8D, 0x86, 0x1D, 0x02, 0x81, 0xA0, 0x1D, 0x02, 0x85, 0x91, 0x1D, 0x02, 0xDD, 0x93, 0x1D, 0x02
.byte 0xED, 0x95, 0x1D, 0x02, 0x51, 0x9C, 0x1D, 0x02, 0xC5, 0x9C, 0x1D, 0x02, 0x05, 0x9E, 0x1D, 0x02
.byte 0x41, 0x9E, 0x1D, 0x02, 0xC9, 0x9E, 0x1D, 0x02, 0x71, 0x9F, 0x1D, 0x02, 0x8D, 0x9F, 0x1D, 0x02
.byte 0xDD, 0x9F, 0x1D, 0x02, 0x1D, 0xA0, 0x1D, 0x02, 0xD9, 0x90, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00