mirror of
https://github.com/pret/pokediamond.git
synced 2026-08-20 07:44:54 -05:00
5632 lines
96 KiB
ArmAsm
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
|