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

2058 lines
37 KiB
ArmAsm

.include "asm/macros.inc"
.include "global.inc"
.section .text
.balign 4, 0
thumb_func_start MOD74_021D74E0
MOD74_021D74E0: ; 0x021D74E0
push {r3, r4, r5, lr}
add r4, r0, #0
bl FUN_0200628C
mov r2, #1
add r5, r0, #0
mov r0, #3
mov r1, #0x4a
lsl r2, r2, #0x10
bl FUN_0201681C
mov r1, #0xad
add r0, r4, #0
lsl r1, r1, #2
mov r2, #0x4a
bl FUN_02006268
mov r2, #0xad
mov r1, #0
lsl r2, r2, #2
add r4, r0, #0
bl memset
ldrh r0, [r5, #4]
strh r0, [r4, #8]
ldrh r0, [r5, #6]
strb r0, [r4, #0xa]
ldr r0, [r5]
bl LoadPlayerDataAddress
str r0, [r4, #0x18]
ldr r0, [r5]
bl FUN_02029FC8
str r0, [r4, #0x1c]
ldr r0, [r5]
bl FUN_0202A8D8
str r0, [r4, #0x20]
ldr r0, [r5]
bl FUN_0202A8E4
str r0, [r4, #0x24]
mov r0, #0x4a
str r0, [r4]
mov r0, #1
pop {r3, r4, r5, pc}
.align 2, 0
thumb_func_end MOD74_021D74E0
thumb_func_start MOD74_021D7540
MOD74_021D7540: ; 0x021D7540
push {r3, r4, r5, lr}
add r5, r0, #0
bl FUN_02006278
add r4, r0, #0
add r0, r5, #0
bl FUN_0200627C
ldr r0, [r4]
bl FUN_020168D0
mov r0, #1
pop {r3, r4, r5, pc}
.align 2, 0
thumb_func_end MOD74_021D7540
thumb_func_start MOD74_021D755C
MOD74_021D755C: ; 0x021D755C
push {r4, r5, lr}
sub sp, #0xc
add r4, r1, #0
bl FUN_02006278
ldr r1, [r4]
add r5, r0, #0
cmp r1, #4
bhi _021D760C
add r1, r1, r1
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_021D757A: ; jump table
.short _021D7584 - _021D757A - 2 ; case 0
.short _021D75AA - _021D757A - 2 ; case 1
.short _021D75BA - _021D757A - 2 ; case 2
.short _021D75EE - _021D757A - 2 ; case 3
.short _021D75FE - _021D757A - 2 ; case 4
_021D7584:
bl MOD74_021D7624
cmp r0, #0
beq _021D760C
mov r0, #6
mov r1, #1
str r0, [sp]
str r1, [sp, #4]
ldr r0, [r5]
add r2, r1, #0
str r0, [sp, #8]
mov r0, #3
mov r3, #0
bl FUN_0200E1D0
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021D760C
_021D75AA:
bl FUN_0200E308
cmp r0, #0
beq _021D760C
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021D760C
_021D75BA:
ldrh r1, [r5, #8]
cmp r1, #0
bne _021D75C6
bl MOD74_021D77AC
b _021D75CA
_021D75C6:
bl MOD74_021D790C
_021D75CA:
cmp r0, #0
beq _021D760C
mov r0, #6
str r0, [sp]
mov r0, #1
mov r1, #0
str r0, [sp, #4]
ldr r0, [r5]
add r2, r1, #0
str r0, [sp, #8]
mov r0, #3
add r3, r1, #0
bl FUN_0200E1D0
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021D760C
_021D75EE:
bl FUN_0200E308
cmp r0, #0
beq _021D760C
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021D760C
_021D75FE:
bl MOD74_021D76E8
cmp r0, #0
beq _021D760C
add sp, #0xc
mov r0, #1
pop {r4, r5, pc}
_021D760C:
ldr r0, [r4]
cmp r0, #1
blt _021D761C
cmp r0, #3
bgt _021D761C
add r0, r5, #0
bl MOD74_021D82D4
_021D761C:
mov r0, #0
add sp, #0xc
pop {r4, r5, pc}
.align 2, 0
thumb_func_end MOD74_021D755C
thumb_func_start MOD74_021D7624
MOD74_021D7624: ; 0x021D7624
push {r4, lr}
add r4, r0, #0
ldr r1, [r4, #4]
cmp r1, #4
bhi _021D76D2
add r1, r1, r1
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_021D763A: ; jump table
.short _021D7644 - _021D763A - 2 ; case 0
.short _021D7684 - _021D763A - 2 ; case 1
.short _021D7690 - _021D763A - 2 ; case 2
.short _021D76B6 - _021D763A - 2 ; case 3
.short _021D76C2 - _021D763A - 2 ; case 4
_021D7644:
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, _021D76DC ; =0xFFFFE0FF
and r1, r0
str r1, [r2]
ldr r2, _021D76E0 ; =0x04001000
ldr r1, [r2]
and r0, r1
str r0, [r2]
bl MOD74_021D7764
mov r0, #0
bl FUN_0200E388
mov r0, #1
bl FUN_0200E388
add r0, r4, #0
bl MOD74_021D7934
b _021D76D2
_021D7684:
bl MOD74_021D79F8
add r0, r4, #0
bl MOD74_021D7B20
b _021D76D2
_021D7690:
bl MOD74_021D7A88
ldrh r0, [r4, #8]
cmp r0, #0
bne _021D76A8
add r0, r4, #0
bl MOD74_021D7D1C
ldr r0, [r4, #4]
add r0, r0, #1
str r0, [r4, #4]
b _021D76D2
_021D76A8:
add r0, r4, #0
bl MOD74_021D7E9C
add r0, r4, #0
bl MOD74_021D8008
b _021D76D2
_021D76B6:
bl MOD74_021D8200
add r0, r4, #0
bl MOD74_021D82F0
b _021D76D2
_021D76C2:
ldr r0, _021D76E4 ; =MOD74_021D7784
add r1, r4, #0
bl FUN_02015F10
mov r0, #0
str r0, [r4, #4]
mov r0, #1
pop {r4, pc}
_021D76D2:
ldr r0, [r4, #4]
add r0, r0, #1
str r0, [r4, #4]
mov r0, #0
pop {r4, pc}
.align 2, 0
_021D76DC: .word 0xFFFFE0FF
_021D76E0: .word 0x04001000
_021D76E4: .word MOD74_021D7784
thumb_func_end MOD74_021D7624
thumb_func_start MOD74_021D76E8
MOD74_021D76E8: ; 0x021D76E8
push {r4, lr}
add r4, r0, #0
ldr r1, [r4, #4]
cmp r1, #0
beq _021D76F8
cmp r1, #1
beq _021D7722
b _021D7752
_021D76F8:
ldrh r1, [r4, #8]
cmp r1, #0
beq _021D770E
bl MOD74_021D836C
add r0, r4, #0
bl MOD74_021D82B0
add r0, r4, #0
bl MOD74_021D7F28
_021D770E:
add r0, r4, #0
bl MOD74_021D7AF0
add r0, r4, #0
bl MOD74_021D7BB4
add r0, r4, #0
bl MOD74_021D79C8
b _021D7752
_021D7722:
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, _021D775C ; =0xFFFFE0FF
and r1, r0
str r1, [r2]
ldr r2, _021D7760 ; =0x04001000
ldr r1, [r2]
and r0, r1
str r0, [r2]
mov r0, #0
str r0, [r4, #4]
mov r0, #1
pop {r4, pc}
_021D7752:
ldr r0, [r4, #4]
add r0, r0, #1
str r0, [r4, #4]
mov r0, #0
pop {r4, pc}
.align 2, 0
_021D775C: .word 0xFFFFE0FF
_021D7760: .word 0x04001000
thumb_func_end MOD74_021D76E8
thumb_func_start MOD74_021D7764
MOD74_021D7764: ; 0x021D7764
push {r4, lr}
sub sp, #0x28
ldr r4, _021D7780 ; =0x021D8518
add r3, sp, #0
mov r2, #5
_021D776E:
ldmia r4!, {r0, r1}
stmia r3!, {r0, r1}
sub r2, r2, #1
bne _021D776E
add r0, sp, #0
bl FUN_0201E66C
add sp, #0x28
pop {r4, pc}
.align 2, 0
_021D7780: .word 0x021D8518
thumb_func_end MOD74_021D7764
thumb_func_start MOD74_021D7784
MOD74_021D7784: ; 0x021D7784
push {r4, lr}
add r4, r0, #0
bl MOD74_021D82E8
bl FUN_020AEEB8
ldr r0, [r4, #0x10]
bl FUN_0201AB60
ldr r3, _021D77A4 ; =0x027E0000
ldr r1, _021D77A8 ; =0x00003FF8
mov r0, #1
ldr r2, [r3, r1]
orr r0, r2
str r0, [r3, r1]
pop {r4, pc}
.align 2, 0
_021D77A4: .word 0x027E0000
_021D77A8: .word 0x00003FF8
thumb_func_end MOD74_021D7784
thumb_func_start MOD74_021D77AC
MOD74_021D77AC: ; 0x021D77AC
ldr r0, _021D77C0 ; =0x021C48B8
ldr r1, [r0, #0x48]
mov r0, #3
tst r0, r1
beq _021D77BA
mov r0, #1
bx lr
_021D77BA:
mov r0, #0
bx lr
nop
_021D77C0: .word 0x021C48B8
thumb_func_end MOD74_021D77AC
thumb_func_start MOD74_021D77C4
MOD74_021D77C4: ; 0x021D77C4
push {r3, r4, r5, lr}
sub sp, #8
ldr r1, _021D78B8 ; =0x021C48B8
add r4, r0, #0
ldr r2, [r1, #0x48]
mov r1, #2
mov r3, #0
tst r1, r2
beq _021D77DC
add sp, #8
mov r0, #1
pop {r3, r4, r5, pc}
_021D77DC:
mov r1, #1
add r5, r2, #0
tst r5, r1
beq _021D7800
ldrb r2, [r4, #0xb]
cmp r2, #0xa
blo _021D77F0
add sp, #8
add r0, r1, #0
pop {r3, r4, r5, pc}
_021D77F0:
ldrb r1, [r4, #0xd]
add r1, r1, #1
strb r1, [r4, #0xd]
bl MOD74_021D80D0
add sp, #8
mov r0, #0
pop {r3, r4, r5, pc}
_021D7800:
mov r0, #0x40
tst r0, r2
beq _021D7828
ldrb r0, [r4, #0xb]
cmp r0, #0
beq _021D787A
sub r0, r0, #1
strb r0, [r4, #0xb]
ldrb r0, [r4, #0xf]
cmp r0, #0
bne _021D7820
ldrb r0, [r4, #0xe]
add r3, r1, #0
sub r0, r0, #1
strb r0, [r4, #0xe]
b _021D787A
_021D7820:
sub r0, r0, #1
strb r0, [r4, #0xf]
add r3, r1, #0
b _021D787A
_021D7828:
mov r0, #0x80
tst r0, r2
beq _021D7850
ldrb r0, [r4, #0xb]
cmp r0, #0xa
bhs _021D787A
add r0, r0, #1
strb r0, [r4, #0xb]
ldrb r0, [r4, #0xf]
cmp r0, #1
bls _021D7848
ldrb r0, [r4, #0xe]
add r3, r1, #0
add r0, r0, #1
strb r0, [r4, #0xe]
b _021D787A
_021D7848:
add r0, r0, #1
strb r0, [r4, #0xf]
add r3, r1, #0
b _021D787A
_021D7850:
mov r0, #0x20
tst r0, r2
beq _021D7866
ldrb r0, [r4, #0xc]
mov r1, #3
add r0, r0, #2
bl _s32_div_f
strb r1, [r4, #0xc]
mov r3, #1
b _021D787A
_021D7866:
mov r0, #0x10
tst r0, r2
beq _021D787A
ldrb r0, [r4, #0xc]
mov r1, #3
add r0, r0, #1
bl _s32_div_f
strb r1, [r4, #0xc]
mov r3, #1
_021D787A:
ldrb r0, [r4, #0xb]
cmp r0, #0xa
bne _021D7884
mov r0, #2
strb r0, [r4, #0xc]
_021D7884:
cmp r3, #0
bne _021D788E
add sp, #8
mov r0, #0
pop {r3, r4, r5, pc}
_021D788E:
ldrb r1, [r4, #0xb]
ldrb r2, [r4, #0xc]
ldrb r3, [r4, #0xf]
add r0, r4, #0
bl MOD74_021D83D4
ldrb r0, [r4, #0xb]
add r1, r4, #0
add r1, #0x7c
str r0, [sp]
ldrb r0, [r4, #0xc]
str r0, [sp, #4]
add r0, r4, #0
ldrb r3, [r4, #0xe]
ldr r2, [r4, #0x34]
add r0, #0xbc
bl MOD74_021D7F44
mov r0, #0
add sp, #8
pop {r3, r4, r5, pc}
.align 2, 0
_021D78B8: .word 0x021C48B8
thumb_func_end MOD74_021D77C4
thumb_func_start MOD74_021D78BC
MOD74_021D78BC: ; 0x021D78BC
push {r4, lr}
ldr r1, _021D78E8 ; =0x021C48B8
add r4, r0, #0
ldr r2, [r1, #0x48]
mov r1, #1
tst r1, r2
beq _021D78D6
bl MOD74_021D818C
ldrb r0, [r4, #0xd]
add r0, r0, #1
strb r0, [r4, #0xd]
b _021D78E4
_021D78D6:
mov r1, #2
tst r1, r2
beq _021D78E4
bl MOD74_021D81E0
mov r0, #0
strb r0, [r4, #0xd]
_021D78E4:
mov r0, #0
pop {r4, pc}
.align 2, 0
_021D78E8: .word 0x021C48B8
thumb_func_end MOD74_021D78BC
thumb_func_start MOD74_021D78EC
MOD74_021D78EC: ; 0x021D78EC
push {r4, lr}
ldr r1, _021D7908 ; =0x021C48B8
add r4, r0, #0
ldr r2, [r1, #0x48]
mov r1, #3
tst r1, r2
beq _021D7902
bl MOD74_021D81E0
mov r0, #0
strb r0, [r4, #0xd]
_021D7902:
mov r0, #0
pop {r4, pc}
nop
_021D7908: .word 0x021C48B8
thumb_func_end MOD74_021D78EC
thumb_func_start MOD74_021D790C
MOD74_021D790C: ; 0x021D790C
push {r3, lr}
ldrb r1, [r0, #0xd]
cmp r1, #0
beq _021D791E
cmp r1, #1
beq _021D7924
cmp r1, #2
beq _021D792A
b _021D7930
_021D791E:
bl MOD74_021D77C4
pop {r3, pc}
_021D7924:
bl MOD74_021D78BC
pop {r3, pc}
_021D792A:
bl MOD74_021D78EC
pop {r3, pc}
_021D7930:
mov r0, #0
pop {r3, pc}
thumb_func_end MOD74_021D790C
thumb_func_start MOD74_021D7934
MOD74_021D7934: ; 0x021D7934
push {r4, r5, r6, r7, lr}
sub sp, #0x64
add r5, r0, #0
ldr r0, [r5]
bl FUN_02016B94
add r3, sp, #0
ldr r4, _021D79C0 ; =0x021D84A0
str r0, [r5, #0x10]
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_02016BBC
ldr r4, _021D79C4 ; =0x021D8570
add r3, sp, #0x10
mov r2, #0xa
_021D795C:
ldmia r4!, {r0, r1}
stmia r3!, {r0, r1}
sub r2, r2, #1
bne _021D795C
ldr r0, [r4]
mov r4, #0
str r0, [r3]
ldrh r0, [r5, #8]
add r7, r4, #0
add r0, r0, #2
cmp r0, #0
ble _021D799C
add r6, sp, #0x10
_021D7976:
lsl r1, r4, #0x18
ldr r0, [r5, #0x10]
lsr r1, r1, #0x18
add r2, r6, #0
mov r3, #0
bl FUN_02016C18
lsl r1, r4, #0x18
ldr r0, [r5, #0x10]
lsr r1, r1, #0x18
bl FUN_02018744
ldrh r0, [r5, #8]
add r7, r7, #1
add r4, r4, #1
add r0, r0, #2
add r6, #0x1c
cmp r7, r0
blt _021D7976
_021D799C:
mov r0, #0
ldr r3, [r5]
mov r1, #0x20
add r2, r0, #0
bl FUN_02017F18
ldrh r0, [r5, #8]
cmp r0, #0
beq _021D79BA
ldr r3, [r5]
mov r0, #2
mov r1, #0x20
mov r2, #0
bl FUN_02017F18
_021D79BA:
add sp, #0x64
pop {r4, r5, r6, r7, pc}
nop
_021D79C0: .word 0x021D84A0
_021D79C4: .word 0x021D8570
thumb_func_end MOD74_021D7934
thumb_func_start MOD74_021D79C8
MOD74_021D79C8: ; 0x021D79C8
push {r4, r5, r6, lr}
add r6, r0, #0
ldrh r0, [r6, #8]
mov r5, #0
add r4, r5, #0
add r0, r0, #2
cmp r0, #0
ble _021D79EE
_021D79D8:
lsl r1, r5, #0x18
ldr r0, [r6, #0x10]
lsr r1, r1, #0x18
add r5, r5, #1
bl FUN_020178A0
ldrh r0, [r6, #8]
add r4, r4, #1
add r0, r0, #2
cmp r4, r0
blt _021D79D8
_021D79EE:
ldr r0, [r6, #0x10]
bl FreeToHeap
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_end MOD74_021D79C8
thumb_func_start MOD74_021D79F8
MOD74_021D79F8: ; 0x021D79F8
push {r4, r5, lr}
sub sp, #0x14
add r5, r0, #0
ldr r1, [r5]
mov r0, #0x7b
bl NARC_ctor
add r4, r0, #0
mov r0, #5
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
mov r0, #0
str r0, [sp, #8]
str r0, [sp, #0xc]
str r0, [sp, #0x10]
ldr r0, [r5, #0x10]
ldr r1, [r5]
add r2, r4, #0
mov r3, #0x7b
bl FUN_02079B60
mov r0, #4
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
mov r0, #2
str r0, [sp, #8]
mov r0, #0x40
str r0, [sp, #0xc]
mov r0, #0
str r0, [sp, #0x10]
ldr r0, [r5, #0x10]
ldr r1, [r5]
add r2, r4, #0
mov r3, #0x7b
bl FUN_02079B60
ldrh r0, [r5, #8]
cmp r0, #1
bne _021D7A4E
mov r0, #7
b _021D7A5A
_021D7A4E:
ldrb r0, [r5, #0xa]
cmp r0, #2
bne _021D7A58
mov r0, #8
b _021D7A5A
_021D7A58:
mov r0, #6
_021D7A5A:
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0
str r0, [sp, #0xc]
str r0, [sp, #0x10]
ldr r0, [r5, #0x10]
ldr r1, [r5]
add r2, r4, #0
mov r3, #0x7b
bl FUN_02079B60
add r0, r4, #0
bl NARC_dtor
ldr r0, [r5, #0x10]
mov r1, #1
bl FUN_0201AC68
add sp, #0x14
pop {r4, r5, pc}
.align 2, 0
thumb_func_end MOD74_021D79F8
thumb_func_start MOD74_021D7A88
MOD74_021D7A88: ; 0x021D7A88
push {r3, r4, r5, r6, r7, lr}
add r6, r0, #0
ldrh r0, [r6, #8]
cmp r0, #0
bne _021D7AB8
add r5, r6, #0
ldr r4, _021D7AE8 ; =0x021D8540
mov r7, #0
add r5, #0x6c
_021D7A9A:
ldr r0, [r6, #0x10]
add r1, r5, #0
add r2, r4, #0
bl FUN_02019150
add r0, r5, #0
mov r1, #0
bl FUN_02019620
add r7, r7, #1
add r4, #8
add r5, #0x10
cmp r7, #5
blt _021D7A9A
b _021D7ADC
_021D7AB8:
add r5, r6, #0
ldr r4, _021D7AEC ; =0x021D84C4
mov r7, #0
add r5, #0x6c
_021D7AC0:
ldr r0, [r6, #0x10]
add r1, r5, #0
add r2, r4, #0
bl FUN_02019150
add r0, r5, #0
mov r1, #0
bl FUN_02019620
add r7, r7, #1
add r4, #8
add r5, #0x10
cmp r7, #3
blt _021D7AC0
_021D7ADC:
ldr r2, [r6]
mov r0, #0
mov r1, #0x40
bl FUN_02002ED0
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
_021D7AE8: .word 0x021D8540
_021D7AEC: .word 0x021D84C4
thumb_func_end MOD74_021D7A88
thumb_func_start MOD74_021D7AF0
MOD74_021D7AF0: ; 0x021D7AF0
push {r4, r5, r6, lr}
ldrh r1, [r0, #8]
cmp r1, #0
bne _021D7AFC
mov r6, #5
b _021D7AFE
_021D7AFC:
mov r6, #3
_021D7AFE:
mov r4, #0
cmp r6, #0
ble _021D7B1C
add r5, r0, #0
add r5, #0x6c
_021D7B08:
add r0, r5, #0
bl FUN_02019570
add r0, r5, #0
bl FUN_02019178
add r4, r4, #1
add r5, #0x10
cmp r4, r6
blt _021D7B08
_021D7B1C:
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_end MOD74_021D7AF0
thumb_func_start MOD74_021D7B20
MOD74_021D7B20: ; 0x021D7B20
push {r4, r5, r6, lr}
add r5, r0, #0
ldr r3, [r5]
mov r0, #0
mov r1, #0x1a
mov r2, #0x11
bl FUN_0200A86C
str r0, [r5, #0x28]
ldr r2, [r5]
mov r0, #2
mov r1, #0x4c
bl FUN_0200AA90
str r0, [r5, #0x2c]
ldr r1, [r5]
mov r0, #0x4c
bl FUN_020219F4
str r0, [r5, #0x30]
mov r6, #0
add r4, r5, #0
_021D7B4C:
add r1, r6, #0
ldr r0, [r5, #0x28]
add r1, #9
bl FUN_0200A914
str r0, [r4, #0x4c]
add r6, r6, #1
add r4, r4, #4
cmp r6, #6
blt _021D7B4C
ldr r0, [r5, #0x28]
mov r1, #0xf
bl FUN_0200A914
str r0, [r5, #0x38]
ldr r0, [r5, #0x28]
mov r1, #0x11
bl FUN_0200A914
str r0, [r5, #0x3c]
ldr r0, [r5, #0x28]
mov r1, #0x12
bl FUN_0200A914
str r0, [r5, #0x34]
ldr r0, [r5, #0x28]
mov r1, #0x13
bl FUN_0200A914
str r0, [r5, #0x40]
ldr r0, [r5, #0x28]
mov r1, #0x14
bl FUN_0200A914
str r0, [r5, #0x44]
ldr r0, [r5, #0x28]
mov r1, #0x15
bl FUN_0200A914
str r0, [r5, #0x48]
ldr r0, [r5, #0x28]
mov r1, #0x16
bl FUN_0200A914
str r0, [r5, #0x64]
ldr r0, [r5, #0x28]
mov r1, #0x17
bl FUN_0200A914
str r0, [r5, #0x68]
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_end MOD74_021D7B20
thumb_func_start MOD74_021D7BB4
MOD74_021D7BB4: ; 0x021D7BB4
push {r4, r5, r6, lr}
add r6, r0, #0
ldr r0, [r6, #0x68]
bl FUN_02021A20
ldr r0, [r6, #0x64]
bl FUN_02021A20
ldr r0, [r6, #0x48]
bl FUN_02021A20
ldr r0, [r6, #0x44]
bl FUN_02021A20
ldr r0, [r6, #0x40]
bl FUN_02021A20
ldr r0, [r6, #0x34]
bl FUN_02021A20
ldr r0, [r6, #0x3c]
bl FUN_02021A20
ldr r0, [r6, #0x38]
bl FUN_02021A20
mov r4, #0
add r5, r6, #0
_021D7BEC:
ldr r0, [r5, #0x4c]
bl FUN_02021A20
add r4, r4, #1
add r5, r5, #4
cmp r4, #6
blt _021D7BEC
ldr r0, [r6, #0x30]
bl FUN_02021A20
ldr r0, [r6, #0x2c]
bl FUN_0200AB18
ldr r0, [r6, #0x28]
bl FUN_0200A8B8
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_end MOD74_021D7BB4
thumb_func_start MOD74_021D7C10
MOD74_021D7C10: ; 0x021D7C10
push {r4, r5, r6, r7, lr}
sub sp, #0x14
add r5, r0, #0
add r7, r3, #0
add r4, r1, #0
ldr r0, [r5, #0x1c]
add r1, r7, #0
add r6, r2, #0
bl FUN_0202A150
lsl r0, r0, #0x10
lsr r0, r0, #0x10
str r0, [sp, #0x10]
ldr r0, [r5, #0x1c]
add r1, r7, #1
bl FUN_0202A150
lsl r0, r0, #0x10
add r6, #8
lsr r7, r0, #0x10
lsl r1, r6, #0x10
ldr r0, [r5, #0x20]
lsr r1, r1, #0x10
mov r2, #0
bl FUN_0202A578
lsl r2, r0, #0x10
add r0, sp, #0x18
ldrb r6, [r0, #0x10]
lsr r2, r2, #0xe
mov r0, #0xff
str r6, [sp]
str r0, [sp, #4]
mov r0, #0xc1
lsl r0, r0, #0xa
str r0, [sp, #8]
mov r1, #0
str r1, [sp, #0xc]
add r2, r5, r2
ldr r2, [r2, #0x4c]
add r0, r4, #0
mov r3, #4
bl FUN_0201BDE0
mov r0, #1
str r0, [sp]
str r0, [sp, #4]
ldr r0, [r5, #0x2c]
mov r1, #0
add r2, r7, #0
mov r3, #4
bl FUN_0200AD38
ldr r0, [r5, #0x2c]
ldr r1, [r5, #0x30]
ldr r2, [r5, #0x5c]
bl FUN_0200B7B8
mov r0, #0
ldr r1, [r5, #0x30]
add r2, r0, #0
bl FUN_02002E14
mov r1, #0xa4
sub r3, r1, r0
str r6, [sp]
mov r0, #0xff
str r0, [sp, #4]
ldr r0, _021D7D18 ; =0x00010200
mov r1, #0
str r0, [sp, #8]
str r1, [sp, #0xc]
ldr r2, [r5, #0x30]
add r0, r4, #0
bl FUN_0201BDE0
add r0, sp, #0x18
ldrb r0, [r0, #0x10]
add r0, #0x18
lsl r0, r0, #0x18
lsr r6, r0, #0x18
str r6, [sp]
mov r0, #0xff
str r0, [sp, #4]
mov r0, #0xc1
lsl r0, r0, #0xa
str r0, [sp, #8]
mov r1, #0
str r1, [sp, #0xc]
ldr r2, [r5, #0x54]
add r0, r4, #0
mov r3, #4
bl FUN_0201BDE0
mov r0, #1
str r0, [sp]
str r0, [sp, #4]
ldr r0, [r5, #0x2c]
ldr r2, [sp, #0x10]
mov r1, #0
mov r3, #4
bl FUN_0200AD38
ldr r0, [r5, #0x2c]
ldr r1, [r5, #0x30]
ldr r2, [r5, #0x5c]
bl FUN_0200B7B8
mov r0, #0
ldr r1, [r5, #0x30]
add r2, r0, #0
bl FUN_02002E14
mov r1, #0xa4
sub r3, r1, r0
str r6, [sp]
mov r0, #0xff
str r0, [sp, #4]
ldr r0, _021D7D18 ; =0x00010200
mov r1, #0
str r0, [sp, #8]
str r1, [sp, #0xc]
ldr r2, [r5, #0x30]
add r0, r4, #0
bl FUN_0201BDE0
add r0, r4, #0
bl FUN_020191D0
add sp, #0x14
pop {r4, r5, r6, r7, pc}
nop
_021D7D18: .word 0x00010200
thumb_func_end MOD74_021D7C10
thumb_func_start MOD74_021D7D1C
MOD74_021D7D1C: ; 0x021D7D1C
push {r3, r4, r5, lr}
sub sp, #0x10
add r4, r0, #0
ldrb r1, [r4, #0xa]
ldr r0, [r4, #0x28]
ldr r2, [r4, #0x30]
bl FUN_0200A8E0
mov r0, #0
ldr r1, [r4, #0x30]
add r2, r0, #0
bl FUN_02002E14
mov r1, #0xc0
sub r3, r1, r0
mov r0, #8
str r0, [sp]
mov r1, #0
lsr r5, r3, #0x1f
add r5, r3, r5
ldr r0, _021D7E94 ; =0x000F0200
str r1, [sp, #4]
str r0, [sp, #8]
str r1, [sp, #0xc]
add r0, r4, #0
ldr r2, [r4, #0x30]
add r0, #0x6c
asr r3, r5, #1
bl FUN_0201BDE0
ldrb r1, [r4, #0xa]
ldr r0, [r4, #0x28]
ldr r2, [r4, #0x30]
add r1, r1, #3
bl FUN_0200A8E0
mov r1, #0
str r1, [sp]
mov r0, #0xc1
str r1, [sp, #4]
lsl r0, r0, #0xa
str r0, [sp, #8]
str r1, [sp, #0xc]
add r0, r4, #0
ldr r2, [r4, #0x30]
add r0, #0x7c
add r3, r1, #0
bl FUN_0201BDE0
ldrb r1, [r4, #0xa]
ldr r0, [r4, #0x28]
ldr r2, [r4, #0x30]
add r1, r1, #6
bl FUN_0200A8E0
mov r0, #3
str r0, [sp]
mov r1, #0
mov r0, #0xc1
str r1, [sp, #4]
lsl r0, r0, #0xa
str r0, [sp, #8]
str r1, [sp, #0xc]
add r0, r4, #0
ldr r2, [r4, #0x30]
add r0, #0x8c
add r3, r1, #0
bl FUN_0201BDE0
ldrb r0, [r4, #0xa]
cmp r0, #0
beq _021D7DB8
cmp r0, #1
beq _021D7DDE
cmp r0, #2
beq _021D7E04
add sp, #0x10
pop {r3, r4, r5, pc}
_021D7DB8:
add r1, r4, #0
mov r2, #0
add r0, r4, #0
add r1, #0x9c
mov r3, #0x35
str r2, [sp]
bl MOD74_021D7C10
mov r0, #3
str r0, [sp]
add r0, r4, #0
add r4, #0xac
add r1, r4, #0
mov r2, #1
mov r3, #0x37
bl MOD74_021D7C10
add sp, #0x10
pop {r3, r4, r5, pc}
_021D7DDE:
mov r0, #0
add r1, r4, #0
str r0, [sp]
add r0, r4, #0
add r1, #0x9c
mov r2, #2
mov r3, #0x39
bl MOD74_021D7C10
add r0, r4, #0
add r4, #0xac
mov r2, #3
add r1, r4, #0
mov r3, #0x3b
str r2, [sp]
bl MOD74_021D7C10
add sp, #0x10
pop {r3, r4, r5, pc}
_021D7E04:
ldr r0, [r4, #0x28]
ldr r2, [r4, #0x30]
mov r1, #0xc
bl FUN_0200A8E0
mov r0, #0xa
str r0, [sp]
mov r1, #0
mov r0, #0xc1
str r1, [sp, #4]
lsl r0, r0, #0xa
str r0, [sp, #8]
str r1, [sp, #0xc]
add r0, r4, #0
ldr r2, [r4, #0x30]
add r0, #0x9c
mov r3, #4
bl FUN_0201BDE0
ldr r0, [r4, #0x20]
mov r1, #0
bl FUN_0202A444
mov r1, #0
add r2, r0, #0
str r1, [sp]
mov r0, #1
str r0, [sp, #4]
ldr r0, [r4, #0x2c]
mov r3, #2
bl FUN_0200AD38
ldr r0, [r4, #0x2c]
ldr r1, [r4, #0x30]
ldr r2, [r4, #0x60]
bl FUN_0200B7B8
mov r0, #0
ldr r1, [r4, #0x30]
add r2, r0, #0
bl FUN_02002E14
mov r1, #0x40
sub r1, r1, r0
lsr r0, r1, #0x1f
add r0, r1, r0
asr r3, r0, #1
mov r0, #0xa
str r0, [sp]
mov r1, #0
ldr r0, _021D7E98 ; =0x00050600
str r1, [sp, #4]
str r0, [sp, #8]
str r1, [sp, #0xc]
add r0, r4, #0
ldr r2, [r4, #0x30]
add r3, #0x40
add r0, #0x9c
bl FUN_0201BDE0
mov r0, #3
str r0, [sp]
add r0, r4, #0
add r4, #0xac
add r1, r4, #0
mov r2, #4
mov r3, #0x3d
bl MOD74_021D7C10
add sp, #0x10
pop {r3, r4, r5, pc}
nop
_021D7E94: .word 0x000F0200
_021D7E98: .word 0x00050600
thumb_func_end MOD74_021D7D1C
thumb_func_start MOD74_021D7E9C
MOD74_021D7E9C: ; 0x021D7E9C
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
add r7, r0, #0
ldr r0, [r7, #0x24]
ldr r1, [r7]
bl FUN_0202A878
str r0, [sp]
ldr r5, [sp]
mov r0, #0
add r4, r7, #0
str r0, [sp, #4]
add r4, #0xbc
add r6, r5, #0
_021D7EB8:
add r0, r5, #0
add r0, #0x20
ldrb r0, [r0]
add r1, r4, #0
add r1, #8
lsl r0, r0, #0x1e
lsr r0, r0, #0x1f
strb r0, [r4, #4]
ldrb r0, [r5, #0x12]
mov r2, #8
strb r0, [r4, #5]
ldrb r0, [r5, #0x13]
strb r0, [r4, #6]
add r0, r5, #0
add r0, #0x20
ldrb r0, [r0]
lsl r0, r0, #0x1f
lsr r0, r0, #0x1f
strb r0, [r4, #7]
add r0, r5, #0
add r0, #0x18
bl MI_CpuCopy8
ldr r1, [r7]
mov r0, #8
bl FUN_020219F4
str r0, [r4]
ldrb r0, [r4, #7]
cmp r0, #0
ldr r0, [r4]
beq _021D7F06
ldrb r1, [r4, #4]
lsl r1, r1, #2
add r1, r7, r1
ldr r1, [r1, #0x64]
bl FUN_02021A74
b _021D7F0C
_021D7F06:
add r1, r6, #0
bl FUN_02021E28
_021D7F0C:
ldr r0, [sp, #4]
add r4, #0x10
add r0, r0, #1
add r5, #0x22
add r6, #0x22
str r0, [sp, #4]
cmp r0, #0x1e
blt _021D7EB8
ldr r0, [sp]
bl FreeToHeap
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_end MOD74_021D7E9C
thumb_func_start MOD74_021D7F28
MOD74_021D7F28: ; 0x021D7F28
push {r3, r4, r5, lr}
add r5, r0, #0
mov r4, #0
_021D7F2E:
add r0, r5, #0
add r0, #0xbc
ldr r0, [r0]
bl FUN_02021A20
add r4, r4, #1
add r5, #0x10
cmp r4, #0x1e
blt _021D7F2E
pop {r3, r4, r5, pc}
.align 2, 0
thumb_func_end MOD74_021D7F28
thumb_func_start MOD74_021D7F44
MOD74_021D7F44: ; 0x021D7F44
push {r4, r5, r6, r7, lr}
sub sp, #0x24
str r0, [sp, #0x10]
str r1, [sp, #0x14]
add r0, r1, #0
mov r1, #0
add r5, r2, #0
add r4, r3, #0
bl FUN_02019620
cmp r4, #8
blo _021D7F8C
mov r0, #2
str r0, [sp, #0x18]
mov r0, #0
add r1, r5, #0
add r2, r0, #0
bl FUN_02002E14
mov r1, #0x28
sub r0, r1, r0
lsr r3, r0, #1
mov r0, #0x34
str r0, [sp]
mov r0, #0xff
str r0, [sp, #4]
ldr r0, _021D7FFC ; =0x00010200
mov r1, #0
str r0, [sp, #8]
ldr r0, [sp, #0x14]
add r2, r5, #0
add r3, #0xa0
str r1, [sp, #0xc]
bl FUN_0201BDE0
b _021D7F90
_021D7F8C:
mov r0, #3
str r0, [sp, #0x18]
_021D7F90:
lsl r0, r4, #1
add r0, r4, r0
str r0, [sp, #0x1c]
mov r0, #0
str r0, [sp, #0x20]
ldr r0, [sp, #0x18]
cmp r0, #0
ble _021D7FF0
ldr r7, [sp, #0x20]
mov r6, #4
_021D7FA4:
mov r4, #0
add r5, r4, #0
_021D7FA8:
ldr r0, [sp, #0x1c]
add r1, r4, r7
add r0, r0, r1
lsl r1, r0, #4
ldr r0, [sp, #0x10]
add r2, r0, r1
ldrb r0, [r2, #4]
cmp r0, #0
beq _021D7FBE
ldr r1, _021D8000 ; =0x000B0C00
b _021D7FC0
_021D7FBE:
ldr r1, _021D8004 ; =0x00090A00
_021D7FC0:
str r6, [sp]
mov r0, #0xff
str r0, [sp, #4]
str r1, [sp, #8]
mov r0, #0
str r0, [sp, #0xc]
ldr r0, [sp, #0x14]
ldr r2, [r2]
mov r1, #0
add r3, r5, #0
bl FUN_0201BDE0
add r4, r4, #1
add r5, #0x48
cmp r4, #3
blt _021D7FA8
ldr r0, [sp, #0x20]
add r7, r7, #3
add r1, r0, #1
ldr r0, [sp, #0x18]
add r6, #0x18
str r1, [sp, #0x20]
cmp r1, r0
blt _021D7FA4
_021D7FF0:
ldr r0, [sp, #0x14]
bl FUN_020191D0
add sp, #0x24
pop {r4, r5, r6, r7, pc}
nop
_021D7FFC: .word 0x00010200
_021D8000: .word 0x000B0C00
_021D8004: .word 0x00090A00
thumb_func_end MOD74_021D7F44
thumb_func_start MOD74_021D8008
MOD74_021D8008: ; 0x021D8008
push {r4, r5, lr}
sub sp, #0x14
add r4, r0, #0
ldr r0, [r4, #0x24]
add r1, sp, #0x10
bl FUN_0202A864
ldr r0, [r4, #0x30]
bl FUN_02021A4C
mov r1, #0
str r1, [sp]
mov r0, #1
str r0, [sp, #4]
add r2, sp, #0x10
ldrb r2, [r2]
ldr r0, [r4, #0x2c]
mov r3, #2
bl FUN_0200AD38
mov r0, #2
str r0, [sp]
mov r1, #1
str r1, [sp, #4]
add r2, sp, #0x10
ldrb r2, [r2, #1]
ldr r0, [r4, #0x2c]
mov r3, #3
bl FUN_0200AD38
ldr r0, [r4, #0x2c]
ldr r1, [r4, #0x30]
ldr r2, [r4, #0x38]
bl FUN_0200B7B8
mov r0, #0
ldr r1, [r4, #0x30]
add r2, r0, #0
bl FUN_02002E14
mov r1, #0xc0
sub r3, r1, r0
mov r0, #4
str r0, [sp]
mov r0, #0xff
str r0, [sp, #4]
ldr r0, _021D80CC ; =0x000F0200
lsr r5, r3, #0x1f
str r0, [sp, #8]
mov r1, #0
str r1, [sp, #0xc]
add r0, r4, #0
add r5, r3, r5
ldr r2, [r4, #0x30]
add r0, #0x6c
asr r3, r5, #1
bl FUN_0201BDE0
ldrb r1, [r4, #0xa]
ldr r0, [r4, #0x28]
ldr r2, [r4, #0x30]
add r1, #0x10
bl FUN_0200A8E0
mov r0, #0
ldr r1, [r4, #0x30]
add r2, r0, #0
bl FUN_02002E14
mov r1, #0xc0
sub r3, r1, r0
mov r0, #0x14
str r0, [sp]
mov r1, #0
lsr r5, r3, #0x1f
add r5, r3, r5
ldr r0, _021D80CC ; =0x000F0200
str r1, [sp, #4]
str r0, [sp, #8]
str r1, [sp, #0xc]
add r0, r4, #0
ldr r2, [r4, #0x30]
add r0, #0x6c
asr r3, r5, #1
bl FUN_0201BDE0
mov r3, #0
str r3, [sp]
str r3, [sp, #4]
add r0, r4, #0
add r1, r4, #0
ldr r2, [r4, #0x34]
add r0, #0xbc
add r1, #0x7c
bl MOD74_021D7F44
add sp, #0x14
pop {r4, r5, pc}
.align 2, 0
_021D80CC: .word 0x000F0200
thumb_func_end MOD74_021D8008
thumb_func_start MOD74_021D80D0
MOD74_021D80D0: ; 0x021D80D0
push {r3, r4, r5, lr}
sub sp, #0x10
add r4, r0, #0
ldrb r2, [r4, #0xb]
ldrb r3, [r4, #0xc]
add r0, #0xbc
lsl r1, r2, #1
add r1, r2, r1
add r1, r3, r1
lsl r1, r1, #4
add r5, r0, r1
ldrb r2, [r5, #5]
cmp r2, #0
bne _021D8108
mov r0, #4
str r0, [sp]
mov r1, #0
ldr r0, _021D8188 ; =0x00010200
str r1, [sp, #4]
str r0, [sp, #8]
str r1, [sp, #0xc]
add r0, r4, #0
ldr r2, [r4, #0x48]
add r0, #0x8c
add r3, r1, #0
bl FUN_0201BDE0
b _021D8172
_021D8108:
ldrb r0, [r5, #6]
cmp r0, #0
ldr r0, [r4, #0x2c]
bne _021D813C
mov r1, #0
bl FUN_0200B4A0
ldr r0, [r4, #0x2c]
ldr r1, [r4, #0x30]
ldr r2, [r4, #0x44]
bl FUN_0200B7B8
mov r0, #4
str r0, [sp]
mov r1, #0
ldr r0, _021D8188 ; =0x00010200
str r1, [sp, #4]
str r0, [sp, #8]
str r1, [sp, #0xc]
add r0, r4, #0
ldr r2, [r4, #0x30]
add r0, #0x8c
add r3, r1, #0
bl FUN_0201BDE0
b _021D8172
_021D813C:
mov r1, #0
bl FUN_0200B4A0
ldrb r2, [r5, #5]
ldrb r3, [r5, #6]
ldr r0, [r4, #0x2c]
mov r1, #1
bl FUN_0200B4D8
ldr r0, [r4, #0x2c]
ldr r1, [r4, #0x30]
ldr r2, [r4, #0x40]
bl FUN_0200B7B8
mov r0, #4
str r0, [sp]
mov r1, #0
ldr r0, _021D8188 ; =0x00010200
str r1, [sp, #4]
str r0, [sp, #8]
str r1, [sp, #0xc]
add r0, r4, #0
ldr r2, [r4, #0x30]
add r0, #0x8c
add r3, r1, #0
bl FUN_0201BDE0
_021D8172:
add r0, r4, #0
add r0, #0x8c
bl FUN_020191D0
add r0, r4, #0
mov r1, #0
bl MOD74_021D8388
add sp, #0x10
pop {r3, r4, r5, pc}
nop
_021D8188: .word 0x00010200
thumb_func_end MOD74_021D80D0
thumb_func_start MOD74_021D818C
MOD74_021D818C: ; 0x021D818C
push {r3, r4, r5, lr}
sub sp, #0x10
add r4, r0, #0
ldrb r2, [r4, #0xb]
ldrb r3, [r4, #0xc]
add r0, #0xbc
lsl r1, r2, #1
add r1, r2, r1
add r1, r3, r1
lsl r1, r1, #4
add r0, r0, r1
ldr r1, [r4]
add r0, #8
bl FUN_020137D4
add r5, r0, #0
add r0, r4, #0
add r0, #0x8c
mov r1, #0
bl FUN_02019620
mov r0, #4
str r0, [sp]
mov r1, #0
ldr r0, _021D81DC ; =0x00010200
str r1, [sp, #4]
str r0, [sp, #8]
add r4, #0x8c
add r0, r4, #0
add r2, r5, #0
add r3, r1, #0
str r1, [sp, #0xc]
bl FUN_0201BDE0
add r0, r5, #0
bl FUN_02021A20
add sp, #0x10
pop {r3, r4, r5, pc}
nop
_021D81DC: .word 0x00010200
thumb_func_end MOD74_021D818C
thumb_func_start MOD74_021D81E0
MOD74_021D81E0: ; 0x021D81E0
push {r4, lr}
add r4, r0, #0
add r0, #0x8c
mov r1, #0
bl FUN_02019620
add r0, r4, #0
add r0, #0x8c
bl FUN_02019570
add r0, r4, #0
mov r1, #1
bl MOD74_021D8388
pop {r4, pc}
.align 2, 0
thumb_func_end MOD74_021D81E0
thumb_func_start MOD74_021D8200
MOD74_021D8200: ; 0x021D8200
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x50
add r4, r0, #0
ldr r1, [r4]
mov r0, #0x20
bl FUN_0201C24C
ldr r0, [r4]
bl FUN_0200BB14
mov r1, #0xa7
lsl r1, r1, #2
str r0, [r4, r1]
ldr r0, [r4, r1]
bl FUN_0200BB34
mov r7, #0x2a
lsl r7, r7, #4
add r2, sp, #0x30
ldr r3, _021D82A4 ; =0x021D84F8
str r0, [r4, r7]
ldmia r3!, {r0, r1}
add r6, r2, #0
stmia r2!, {r0, r1}
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldmia r3!, {r0, r1}
ldr r5, _021D82A8 ; =0x021D84B0
stmia r2!, {r0, r1}
add r3, sp, #0x1c
ldmia r5!, {r0, r1}
add r2, r3, #0
stmia r3!, {r0, r1}
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
ldr r0, [r5]
add r1, r6, #0
str r0, [r3]
sub r0, r7, #4
ldr r0, [r4, r0]
mov r3, #0x20
bl FUN_0200BB6C
sub r1, r7, #4
ldr r0, [r4, r1]
add r1, r1, #4
ldr r1, [r4, r1]
mov r2, #4
bl FUN_0200BBF0
ldr r0, [r4]
bl FUN_0200A064
ldr r0, [r4]
bl FUN_0200A06C
ldr r5, _021D82AC ; =0x021D84DC
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]
sub r1, r7, #4
str r0, [r3]
ldr r0, [r4, r1]
add r1, r1, #4
ldr r1, [r4, r1]
bl FUN_0200BD20
mov r0, #0x10
mov r1, #1
bl FUN_0201E6E4
add sp, #0x50
pop {r3, r4, r5, r6, r7, pc}
nop
_021D82A4: .word 0x021D84F8
_021D82A8: .word 0x021D84B0
_021D82AC: .word 0x021D84DC
thumb_func_end MOD74_021D8200
thumb_func_start MOD74_021D82B0
MOD74_021D82B0: ; 0x021D82B0
push {r4, lr}
mov r1, #0xa7
add r4, r0, #0
lsl r1, r1, #2
ldr r0, [r4, r1]
add r1, r1, #4
ldr r1, [r4, r1]
bl FUN_0200BCE0
mov r0, #0xa7
lsl r0, r0, #2
ldr r0, [r4, r0]
bl FUN_0200BD04
bl FUN_0201C29C
pop {r4, pc}
.align 2, 0
thumb_func_end MOD74_021D82B0
thumb_func_start MOD74_021D82D4
MOD74_021D82D4: ; 0x021D82D4
push {r3, lr}
mov r1, #0x2a
lsl r1, r1, #4
ldr r0, [r0, r1]
cmp r0, #0
beq _021D82E4
bl FUN_0200BC1C
_021D82E4:
pop {r3, pc}
.align 2, 0
thumb_func_end MOD74_021D82D4
thumb_func_start MOD74_021D82E8
MOD74_021D82E8: ; 0x021D82E8
ldr r3, _021D82EC ; =FUN_0200BC30
bx r3
.align 2, 0
_021D82EC: .word FUN_0200BC30
thumb_func_end MOD74_021D82E8
thumb_func_start MOD74_021D82F0
MOD74_021D82F0: ; 0x021D82F0
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
ldr r6, _021D8368 ; =0x021D85C4
mov r7, #0
add r4, r5, #0
_021D82FA:
mov r0, #0xa7
mov r1, #0x2a
lsl r0, r0, #2
lsl r1, r1, #4
ldr r0, [r5, r0]
ldr r1, [r5, r1]
add r2, r6, #0
bl FUN_0200BE38
mov r1, #0xa9
lsl r1, r1, #2
str r0, [r4, r1]
add r7, r7, #1
add r6, #0x28
add r4, r4, #4
cmp r7, #4
blt _021D82FA
add r0, r1, #0
add r0, #8
ldr r0, [r5, r0]
mov r1, #0
bl FUN_020200A0
mov r0, #0xaa
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #0
bl FUN_020200A0
mov r0, #0xa9
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #1
bl FUN_020200BC
mov r0, #0xab
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #1
bl FUN_020200BC
mov r0, #0x2b
lsl r0, r0, #4
ldr r0, [r5, r0]
mov r1, #1
bl FUN_020200BC
mov r0, #0xaa
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #3
bl FUN_02020238
pop {r3, r4, r5, r6, r7, pc}
nop
_021D8368: .word 0x021D85C4
thumb_func_end MOD74_021D82F0
thumb_func_start MOD74_021D836C
MOD74_021D836C: ; 0x021D836C
push {r4, r5, r6, lr}
mov r6, #0xa9
add r5, r0, #0
mov r4, #0
lsl r6, r6, #2
_021D8376:
ldr r0, [r5, r6]
bl FUN_0200BC14
add r4, r4, #1
add r5, r5, #4
cmp r4, #4
blt _021D8376
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_end MOD74_021D836C
thumb_func_start MOD74_021D8388
MOD74_021D8388: ; 0x021D8388
push {r3, r4, r5, lr}
add r5, r0, #0
cmp r1, #0
bne _021D83A0
mov r0, #0xa9
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #1
bl FUN_02020248
mov r4, #0
b _021D83AE
_021D83A0:
mov r0, #0xa9
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #0
bl FUN_02020248
mov r4, #1
_021D83AE:
mov r0, #0xa9
lsl r0, r0, #2
ldr r0, [r5, r0]
add r1, r4, #0
bl FUN_020200BC
mov r0, #0xab
lsl r0, r0, #2
ldr r0, [r5, r0]
add r1, r4, #0
bl FUN_020200BC
mov r0, #0x2b
lsl r0, r0, #4
ldr r0, [r5, r0]
add r1, r4, #0
bl FUN_020200BC
pop {r3, r4, r5, pc}
thumb_func_end MOD74_021D8388
thumb_func_start MOD74_021D83D4
MOD74_021D83D4: ; 0x021D83D4
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
ldrb r0, [r5, #0xe]
add r4, r1, #0
add r6, r2, #0
add r7, r3, #0
cmp r0, #8
bne _021D8428
mov r0, #0xaa
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #1
bl FUN_020200A0
cmp r4, #0xa
bne _021D840E
mov r0, #0xaa
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #1
bl FUN_02020208
mov r0, #0xa9
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #0
bl FUN_020200A0
b _021D8440
_021D840E:
mov r0, #0xaa
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #0
bl FUN_02020208
mov r0, #0xa9
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #1
bl FUN_020200A0
b _021D8440
_021D8428:
mov r0, #0xa9
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #1
bl FUN_020200A0
mov r0, #0xaa
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #0
bl FUN_020200A0
_021D8440:
ldrb r0, [r5, #0xe]
cmp r0, #0
beq _021D844C
cmp r0, #8
beq _021D845A
b _021D8468
_021D844C:
mov r0, #0xab
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #0
bl FUN_020200A0
b _021D8480
_021D845A:
mov r0, #0x2b
lsl r0, r0, #4
ldr r0, [r5, r0]
mov r1, #0
bl FUN_020200A0
b _021D8480
_021D8468:
mov r0, #0xab
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #1
bl FUN_020200A0
mov r0, #0x2b
lsl r0, r0, #4
ldr r0, [r5, r0]
mov r1, #1
bl FUN_020200A0
_021D8480:
mov r1, #0x48
mov r2, #0x18
mov r0, #0xa9
mul r1, r6
mul r2, r7
lsl r0, r0, #2
add r1, #0x36
add r2, #0x44
lsl r1, r1, #0x10
lsl r2, r2, #0x10
ldr r0, [r5, r0]
asr r1, r1, #0x10
asr r2, r2, #0x10
bl FUN_0200C6E4
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end MOD74_021D83D4
.section .rodata
; 0x021D84A0
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00
.byte 0x10, 0x00, 0x00, 0x00, 0x00, 0x04, 0x01, 0x18, 0x05, 0x02, 0xC0, 0x00, 0x02, 0x03, 0x07, 0x1A
.byte 0x09, 0x01, 0x01, 0x00, 0x00, 0x03, 0x12, 0x1A, 0x05, 0x02, 0x38, 0x01, 0x98, 0x86, 0x1D, 0x02
.byte 0x80, 0x86, 0x1D, 0x02, 0xB0, 0x86, 0x1D, 0x02, 0xC8, 0x86, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0xE0, 0x86, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x04, 0x01, 0x18, 0x05, 0x02, 0xC0, 0x00, 0x00, 0x01, 0x09, 0x08, 0x05, 0x01, 0x38, 0x01
.byte 0x00, 0x01, 0x11, 0x08, 0x05, 0x01, 0x60, 0x01, 0x00, 0x0A, 0x09, 0x15, 0x05, 0x01, 0x88, 0x01
.byte 0x00, 0x0A, 0x11, 0x15, 0x05, 0x01, 0xF1, 0x01, 0x00, 0x03, 0x12, 0x1A, 0x05, 0x02, 0x38, 0x01
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x1F, 0x00, 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, 0x1E, 0x00
.byte 0x00, 0x01, 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, 0x1D, 0x04, 0x00, 0x02, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x00, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0xCC, 0x00, 0x72, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x34, 0x00, 0x00, 0x00, 0x02, 0x00
.byte 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x80, 0x00, 0x84, 0x00, 0x00, 0x00, 0x03, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.section .data
; 0x021D8680
.byte 0x64, 0x61, 0x74, 0x61, 0x2F, 0x62, 0x74, 0x6F, 0x77, 0x65, 0x72, 0x5F, 0x70, 0x61, 0x6C, 0x2E
.byte 0x72, 0x65, 0x73, 0x64, 0x61, 0x74, 0x00, 0x00, 0x64, 0x61, 0x74, 0x61, 0x2F, 0x62, 0x74, 0x6F
.byte 0x77, 0x65, 0x72, 0x5F, 0x63, 0x68, 0x72, 0x2E, 0x72, 0x65, 0x73, 0x64, 0x61, 0x74, 0x00, 0x00
.byte 0x64, 0x61, 0x74, 0x61, 0x2F, 0x62, 0x74, 0x6F, 0x77, 0x65, 0x72, 0x5F, 0x63, 0x65, 0x6C, 0x6C
.byte 0x2E, 0x72, 0x65, 0x73, 0x64, 0x61, 0x74, 0x00, 0x64, 0x61, 0x74, 0x61, 0x2F, 0x62, 0x74, 0x6F
.byte 0x77, 0x65, 0x72, 0x5F, 0x63, 0x61, 0x6E, 0x6D, 0x2E, 0x72, 0x65, 0x73, 0x64, 0x61, 0x74, 0x00
.byte 0x64, 0x61, 0x74, 0x61, 0x2F, 0x62, 0x74, 0x6F, 0x77, 0x65, 0x72, 0x5F, 0x63, 0x65, 0x6C, 0x61
.byte 0x63, 0x74, 0x2E, 0x63, 0x6C, 0x64, 0x61, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00