Merge branch 'master' of github.com:pret/pokediamond into pikalax_work

This commit is contained in:
PikalaxALT
2020-07-28 12:40:48 -04:00
8 changed files with 9000 additions and 8941 deletions

View File

@@ -941,7 +941,11 @@ Overlay MODULE_63
{
### Title Demo ###
After arm9
Object module_63.o
Object mod63_021D74E0.o
Object mod63_021D8890.o
Object mod63_021DA640.o
Object mod63_021DAE5C.o
Object mod63_021DB450.o
}
Overlay MODULE_64

View File

@@ -7389,6 +7389,36 @@
.extern MOD62_02230F70
.extern MOD62_02230F80
.extern MOD62_022310CC
.extern MOD63_021D74E0
.extern MOD63_021D759C
.extern MOD63_021D77B4
.extern MOD63_021DA6E0
.extern MOD63_021DA6E8
.extern MOD63_021DAA04
.extern MOD63_021DAA5C
.extern MOD63_021DABCC
.extern MOD63_021DAC18
.extern MOD63_021DAC24
.extern MOD63_021DAC6C
.extern MOD63_021DAC80
.extern MOD63_021DACA0
.extern MOD63_021DACC0
.extern MOD63_021DAD18
.extern MOD63_021DAD6C
.extern MOD63_021DAEF8
.extern MOD63_021DAF20
.extern MOD63_021DAF4C
.extern MOD63_021DAF80
.extern MOD63_021DAF9C
.extern MOD63_021DB1AC
.extern MOD63_021DB38C
.extern MOD63_021DB498
.extern MOD63_021DB49C
.extern MOD63_021DB580
.extern MOD63_021DB598
.extern MOD63_021DB5A8
.extern MOD63_021DB5CC
.extern MOD63_021DBE18
.extern MOD64_021D74E0
.extern MOD64_021D7640
.extern MOD64_021D76F4

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,794 @@
.include "asm/macros.inc"
.include "global.inc"
.section .text
.balign 4, 0
thumb_func_start MOD63_021DAE5C
MOD63_021DAE5C: ; 0x021DAE5C
push {r4, lr}
sub sp, #0x10
ldr r4, _021DAE88 ; =MOD63_021DBEAC
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, #1
mov r1, #0x4c
bl FUN_0201E00C
bl FUN_0201D168
bl FUN_0201E0BC
add sp, #0x10
pop {r4, pc}
.align 2, 0
_021DAE88: .word MOD63_021DBEAC
thumb_func_end MOD63_021DAE5C
thumb_func_start MOD63_021DAE8C
MOD63_021DAE8C: ; 0x021DAE8C
push {r3, r4, r5, r6, lr}
sub sp, #0x2c
add r4, r1, #0
mov r1, #0
add r5, r0, #0
str r1, [sp]
sub r0, r1, #1
str r0, [sp, #4]
str r0, [sp, #8]
add r6, r2, #0
str r1, [sp, #0xc]
mov r2, #0x4b
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]
add r2, #0xc
str r0, [sp, #0x1c]
ldr r0, [r5, r2]
add r2, r1, #0
str r0, [sp, #0x20]
str r1, [sp, #0x24]
str r1, [sp, #0x28]
add r0, r6, #0
bl FUN_02008AA4
ldr r0, [r5]
mov r1, #0
str r0, [r4]
str r6, [r4, #4]
str r1, [r4, #8]
str r1, [r4, #0xc]
mov r0, #1
str r1, [r4, #0x10]
lsl r0, r0, #0xc
str r0, [r4, #0x14]
str r0, [r4, #0x18]
str r0, [r4, #0x1c]
strh r1, [r4, #0x20]
mov r0, #1
str r0, [r4, #0x24]
str r0, [r4, #0x28]
mov r0, #0x4c
str r0, [r4, #0x2c]
add sp, #0x2c
pop {r3, r4, r5, r6, pc}
.align 2, 0
thumb_func_end MOD63_021DAE8C
thumb_func_start MOD63_021DAEF8
MOD63_021DAEF8: ; 0x021DAEF8
push {r4, lr}
mov r1, #0x7d
mov r0, #0x4c
lsl r1, r1, #2
bl AllocFromHeap
mov r2, #0x7d
add r4, r0, #0
mov r1, #0
lsl r2, r2, #2
bl memset
add r0, r4, #0
bl MOD63_021DAFEC
add r0, r4, #0
bl MOD63_021DB150
add r0, r4, #0
pop {r4, pc}
thumb_func_end MOD63_021DAEF8
thumb_func_start MOD63_021DAF20
MOD63_021DAF20: ; 0x021DAF20
push {r4, r5, r6, lr}
add r5, r0, #0
mov r0, #0x4c
mov r1, #8
bl AllocFromHeap
add r4, r0, #0
mov r0, #0xc
add r6, r5, #0
mul r6, r0
mov r0, #0x4c
add r1, r6, #0
bl AllocFromHeap
mov r1, #0
add r2, r6, #0
str r0, [r4, #4]
bl memset
str r5, [r4]
add r0, r4, #0
pop {r4, r5, r6, pc}
thumb_func_end MOD63_021DAF20
thumb_func_start MOD63_021DAF4C
MOD63_021DAF4C: ; 0x021DAF4C
push {r4, r5, r6, lr}
add r5, r0, #0
ldr r0, [r5]
mov r6, #0
cmp r0, #0
ble _021DAF72
add r4, r6, #0
_021DAF5A:
ldr r0, [r5, #4]
add r0, r0, r4
ldr r0, [r0, #8]
cmp r0, #0
beq _021DAF68
bl FUN_0200CAB4
_021DAF68:
ldr r0, [r5]
add r6, r6, #1
add r4, #0xc
cmp r6, r0
blt _021DAF5A
_021DAF72:
ldr r0, [r5, #4]
bl FreeToHeap
add r0, r5, #0
bl FreeToHeap
pop {r4, r5, r6, pc}
thumb_func_end MOD63_021DAF4C
thumb_func_start MOD63_021DAF80
MOD63_021DAF80: ; 0x021DAF80
push {r3, r4, r5, lr}
add r5, r0, #0
ldr r0, [r5]
add r4, r1, #0
cmp r4, r0
blt _021DAF90
bl ErrorHandling
_021DAF90:
mov r0, #0xc
ldr r1, [r5, #4]
mul r0, r4
add r0, r1, r0
add r0, r0, #4
pop {r3, r4, r5, pc}
thumb_func_end MOD63_021DAF80
thumb_func_start MOD63_021DAF9C
MOD63_021DAF9C: ; 0x021DAF9C
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
bl MOD63_021DB108
mov r6, #0x73
mov r4, #0
lsl r6, r6, #2
_021DAFAA:
lsl r0, r4, #4
add r0, r5, r0
ldr r0, [r0, r6]
cmp r0, #0
beq _021DAFB8
bl FUN_0200CAB4
_021DAFB8:
add r0, r4, #1
lsl r0, r0, #0x18
lsr r4, r0, #0x18
cmp r4, #3
blo _021DAFAA
mov r6, #0x55
mov r4, #0
mov r7, #0xc
lsl r6, r6, #2
_021DAFCA:
add r0, r4, #0
mul r0, r7
add r0, r5, r0
ldr r0, [r0, r6]
cmp r0, #0
beq _021DAFDA
bl FUN_0200CAB4
_021DAFDA:
add r0, r4, #1
lsl r0, r0, #0x18
lsr r4, r0, #0x18
cmp r4, #0xa
blo _021DAFCA
add r0, r5, #0
bl FreeToHeap
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end MOD63_021DAF9C
thumb_func_start MOD63_021DAFEC
MOD63_021DAFEC: ; 0x021DAFEC
push {r4, r5, r6, r7, lr}
sub sp, #0x14
mov r2, #1
lsl r2, r2, #0x1a
ldr r1, [r2]
add r7, r0, #0
add r3, r1, #0
ldr r0, _021DB0FC ; =0xFFCFFFEF
mov r1, #0x10
and r3, r0
orr r3, r1
str r3, [r2]
ldr r3, _021DB100 ; =0x04001000
ldr r2, [r3]
and r0, r2
orr r0, r1
str r0, [r3]
bl MOD63_021DAE5C
bl FUN_020B0FC0
mov r0, #0
str r0, [sp]
mov r1, #0x80
str r1, [sp, #4]
str r0, [sp, #8]
mov r3, #0x20
str r3, [sp, #0xc]
mov r2, #0x4c
str r2, [sp, #0x10]
add r2, r0, #0
bl FUN_02009EAC
mov r0, #0xa
add r1, r7, #4
mov r2, #0x4c
bl FUN_02008C9C
ldr r4, _021DB104 ; =MOD63_021DBEBC
str r0, [r7]
mov r6, #0
add r5, r7, #0
_021DB040:
ldrb r0, [r4]
add r1, r6, #0
mov r2, #0x4c
bl FUN_02008DEC
mov r1, #0x4b
lsl r1, r1, #2
str r0, [r5, r1]
add r6, r6, #1
add r4, r4, #1
add r5, r5, #4
cmp r6, #4
blt _021DB040
mov r3, #0
str r3, [sp]
mov r0, #3
str r0, [sp, #4]
mov r0, #0x4c
str r0, [sp, #8]
add r0, #0xe0
ldr r0, [r7, r0]
mov r1, #0x80
mov r2, #4
bl FUN_02008F34
mov r1, #0x4f
lsl r1, r1, #2
str r0, [r7, r1]
mov r3, #0
str r3, [sp]
mov r2, #3
str r2, [sp, #4]
mov r0, #1
str r0, [sp, #8]
mov r0, #0x4c
str r0, [sp, #0xc]
add r0, #0xe4
ldr r0, [r7, r0]
mov r1, #0x80
bl FUN_02008FEC
mov r1, #5
lsl r1, r1, #6
str r0, [r7, r1]
mov r3, #0
str r3, [sp]
mov r0, #2
str r0, [sp, #4]
mov r0, #0x4c
str r0, [sp, #8]
add r0, #0xe8
ldr r0, [r7, r0]
mov r1, #0x80
mov r2, #5
bl FUN_020090AC
mov r1, #0x51
lsl r1, r1, #2
str r0, [r7, r1]
mov r3, #0
str r3, [sp]
mov r0, #3
str r0, [sp, #4]
mov r0, #0x4c
str r0, [sp, #8]
add r0, #0xec
ldr r0, [r7, r0]
mov r1, #0x80
mov r2, #6
bl FUN_020090AC
mov r1, #0x52
lsl r1, r1, #2
str r0, [r7, r1]
sub r1, #0xc
ldr r0, [r7, r1]
bl FUN_02009A50
mov r0, #5
lsl r0, r0, #6
ldr r0, [r7, r0]
bl FUN_02009CF0
mov r0, #0x10
mov r1, #1
bl FUN_0201E6E4
mov r0, #0x10
mov r1, #1
bl FUN_0201E74C
add sp, #0x14
pop {r4, r5, r6, r7, pc}
nop
_021DB0FC: .word 0xFFCFFFEF
_021DB100: .word 0x04001000
_021DB104: .word MOD63_021DBEBC
thumb_func_end MOD63_021DAFEC
thumb_func_start MOD63_021DB108
MOD63_021DB108: ; 0x021DB108
push {r4, r5, r6, lr}
add r5, r0, #0
mov r0, #0x4f
lsl r0, r0, #2
ldr r0, [r5, r0]
bl FUN_02009C0C
mov r0, #5
lsl r0, r0, #6
ldr r0, [r5, r0]
bl FUN_02009E04
mov r6, #0x4b
mov r4, #0
lsl r6, r6, #2
_021DB126:
lsl r0, r4, #2
add r0, r5, r0
ldr r0, [r0, r6]
bl FUN_02008E2C
add r0, r4, #1
lsl r0, r0, #0x18
lsr r4, r0, #0x18
cmp r4, #4
blo _021DB126
ldr r0, [r5]
bl FUN_0201FD58
bl FUN_02009FA0
bl FUN_0201D12C
bl FUN_0201E08C
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_end MOD63_021DB108
thumb_func_start MOD63_021DB150
MOD63_021DB150: ; 0x021DB150
push {r4, r5, r6, r7, lr}
sub sp, #0x54
add r7, r0, #0
mov r6, #0
add r4, r6, #0
add r5, r7, #0
_021DB15C:
add r0, r7, #0
add r1, sp, #0
add r2, sp, #0x30
bl MOD63_021DAE8C
add r0, sp, #0
str r4, [sp, #8]
str r4, [sp, #0xc]
bl FUN_0201FE94
mov r1, #0x15
lsl r1, r1, #4
str r0, [r5, r1]
add r0, r1, #0
ldr r0, [r5, r0]
mov r1, #0
bl FUN_020200BC
mov r0, #0x15
lsl r0, r0, #4
ldr r0, [r5, r0]
mov r1, #0
bl FUN_020200A0
mov r0, #2
lsl r0, r0, #0xc
add r6, r6, #1
add r4, r4, r0
add r5, #0xc
cmp r6, #0xa
blt _021DB15C
add sp, #0x54
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_end MOD63_021DB150
thumb_func_start MOD63_021DB1A0
MOD63_021DB1A0: ; 0x021DB1A0
ldr r3, _021DB1A8 ; =FUN_0201FDEC
ldr r0, [r0]
bx r3
nop
_021DB1A8: .word FUN_0201FDEC
thumb_func_end MOD63_021DB1A0
thumb_func_start MOD63_021DB1AC
MOD63_021DB1AC: ; 0x021DB1AC
push {r4, lr}
sub sp, #8
add r4, r0, #0
cmp r1, #0xb4
bne _021DB1CE
mov r2, #3
str r2, [sp]
mov r0, #0
str r0, [sp, #4]
mov r0, #0x71
lsl r0, r0, #2
add r0, r4, r0
add r1, r4, #0
add r3, r2, #0
bl MOD63_021DB1F8
b _021DB1E8
_021DB1CE:
ldr r0, _021DB1F4 ; =0x0000011D
cmp r1, r0
bne _021DB1E8
mov r2, #3
add r0, #0xb7
str r2, [sp]
mov r1, #1
str r1, [sp, #4]
add r0, r4, r0
add r1, r4, #0
add r3, r2, #0
bl MOD63_021DB1F8
_021DB1E8:
add r0, r4, #0
bl MOD63_021DB1A0
add sp, #8
pop {r4, pc}
nop
_021DB1F4: .word 0x0000011D
thumb_func_end MOD63_021DB1AC
thumb_func_start MOD63_021DB1F8
MOD63_021DB1F8: ; 0x021DB1F8
push {r4, lr}
add r4, r0, #0
strb r2, [r4]
ldr r2, _021DB228 ; =0xFFFFFFF8
strb r3, [r4, #1]
add r2, sp
ldrb r0, [r2, #0x10]
strb r0, [r4, #2]
mov r0, #0
strb r0, [r4, #4]
strb r0, [r4, #3]
mov r0, #0x53
lsl r0, r0, #2
add r0, r1, r0
str r0, [r4, #0xc]
ldrb r0, [r2, #0x14]
add r1, r4, #0
mov r2, #0xa
strb r0, [r4, #5]
ldr r0, _021DB22C ; =MOD63_021DB2F8
bl FUN_0200CA44
str r0, [r4, #8]
pop {r4, pc}
.align 2, 0
_021DB228: .word 0xFFFFFFF8
_021DB22C: .word MOD63_021DB2F8
thumb_func_end MOD63_021DB1F8
thumb_func_start MOD63_021DB230
MOD63_021DB230: ; 0x021DB230
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x10
add r6, r1, #0
str r0, [sp]
cmp r2, #0
bne _021DB240
mov r7, #0x40
b _021DB242
_021DB240:
mov r7, #0x20
_021DB242:
mov r5, #0
cmp r6, #0
bls _021DB2BE
_021DB248:
ldr r0, [sp]
mov r1, #0xa
bl MOD63_021DB2C8
add r4, r0, #0
ldr r0, [r4, #4]
bl FUN_0202011C
add r3, r0, #0
ldmia r3!, {r0, r1}
add r2, sp, #4
stmia r2!, {r0, r1}
ldr r0, [r3]
str r0, [r2]
bl LCRandom
lsr r1, r0, #0x1f
lsl r2, r0, #0x19
sub r2, r2, r1
mov r0, #0x19
ror r2, r0
add r0, r1, r2
add r0, #0x40
lsl r0, r0, #0xc
str r0, [sp, #4]
bl LCRandom
lsr r1, r0, #0x1f
lsl r2, r0, #0x1a
sub r2, r2, r1
mov r0, #0x1a
ror r2, r0
add r0, r1, r2
add r0, r7, r0
lsl r0, r0, #0xc
str r0, [sp, #8]
ldr r0, [r4, #4]
add r1, sp, #4
bl FUN_02020044
ldr r0, [r4, #4]
mov r1, #1
bl FUN_020200BC
ldr r0, [r4, #4]
mov r1, #1
bl FUN_020200A0
ldr r0, _021DB2C4 ; =MOD63_021DB334
add r1, r4, #0
mov r2, #0x14
bl FUN_0200CA44
str r0, [r4, #8]
add r0, r5, #1
lsl r0, r0, #0x18
lsr r5, r0, #0x18
cmp r5, r6
blo _021DB248
_021DB2BE:
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
nop
_021DB2C4: .word MOD63_021DB334
thumb_func_end MOD63_021DB230
thumb_func_start MOD63_021DB2C8
MOD63_021DB2C8: ; 0x021DB2C8
push {r4, lr}
mov r4, #0
mov r2, #0xc
_021DB2CE:
add r1, r4, #0
mul r1, r2
add r3, r0, r1
ldrb r1, [r0, r1]
cmp r1, #0
bne _021DB2E6
mov r0, #1
strb r0, [r3]
mov r0, #0
strb r0, [r3, #1]
add r0, r3, #0
pop {r4, pc}
_021DB2E6:
add r1, r4, #1
lsl r1, r1, #0x18
lsr r4, r1, #0x18
cmp r4, #0xa
blo _021DB2CE
bl ErrorHandling
mov r0, #0
pop {r4, pc}
thumb_func_end MOD63_021DB2C8
thumb_func_start MOD63_021DB2F8
MOD63_021DB2F8: ; 0x021DB2F8
push {r3, r4, r5, lr}
add r4, r1, #0
ldrb r1, [r4, #4]
add r5, r0, #0
add r0, r1, #1
strb r0, [r4, #4]
ldrb r0, [r4, #1]
cmp r1, r0
blo _021DB330
ldrb r1, [r4]
ldrb r2, [r4, #5]
ldr r0, [r4, #0xc]
bl MOD63_021DB230
mov r0, #0
strb r0, [r4, #4]
ldrb r0, [r4, #3]
add r0, r0, #1
strb r0, [r4, #3]
ldrb r1, [r4, #3]
ldrb r0, [r4, #2]
cmp r1, r0
blo _021DB330
add r0, r5, #0
bl FUN_0200CAB4
mov r0, #0
str r0, [r4, #8]
_021DB330:
pop {r3, r4, r5, pc}
.align 2, 0
thumb_func_end MOD63_021DB2F8
thumb_func_start MOD63_021DB334
MOD63_021DB334: ; 0x021DB334
push {r3, r4, r5, r6, lr}
sub sp, #0xc
add r4, r1, #0
add r5, r0, #0
ldr r0, [r4, #4]
bl FUN_0202011C
add r6, r0, #0
add r3, sp, #0
ldmia r6!, {r0, r1}
add r2, r3, #0
stmia r3!, {r0, r1}
ldr r0, [r6]
str r0, [r3]
mov r0, #3
ldr r1, [sp, #4]
lsl r0, r0, #0xc
add r0, r1, r0
str r0, [sp, #4]
ldr r0, [r4, #4]
add r1, r2, #0
bl FUN_02020044
ldrb r0, [r4, #1]
add r0, r0, #1
strb r0, [r4, #1]
ldrb r0, [r4, #1]
cmp r0, #0x50
blo _021DB388
add r0, r5, #0
bl FUN_0200CAB4
mov r1, #0
str r1, [r4, #8]
strb r1, [r4]
ldr r0, [r4, #4]
bl FUN_020200BC
ldr r0, [r4, #4]
mov r1, #0
bl FUN_020200A0
_021DB388:
add sp, #0xc
pop {r3, r4, r5, r6, pc}
thumb_func_end MOD63_021DB334
thumb_func_start MOD63_021DB38C
MOD63_021DB38C: ; 0x021DB38C
ldr r3, _021DB394 ; =MOD63_021DB398
mov r1, #2
bx r3
nop
_021DB394: .word MOD63_021DB398
thumb_func_end MOD63_021DB38C
thumb_func_start MOD63_021DB398
MOD63_021DB398: ; 0x021DB398
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x10
add r6, r0, #0
ldr r0, [r6, #4]
add r7, r1, #0
str r0, [sp]
ldr r5, _021DB418 ; =0x00000000
beq _021DB414
_021DB3A8:
ldr r0, [sp]
ldr r1, [r6]
bl MOD63_021DB2C8
add r4, r0, #0
ldr r0, [r4, #4]
bl FUN_0202011C
add r3, r0, #0
ldmia r3!, {r0, r1}
add r2, sp, #4
stmia r2!, {r0, r1}
ldr r0, [r3]
str r0, [r2]
bl LCRandom
mov r1, #0xe0
bl _s32_div_f
add r1, #0xa
lsl r0, r1, #0xc
str r0, [sp, #4]
bl LCRandom
mov r1, #0x38
bl _s32_div_f
ldr r0, _021DB41C ; =0x0000013A
add r0, r1, r0
lsl r0, r0, #0xc
str r0, [sp, #8]
ldr r0, [r4, #4]
add r1, sp, #4
bl FUN_02020044
ldr r0, [r4, #4]
mov r1, #1
bl FUN_020200BC
ldr r0, [r4, #4]
mov r1, #1
bl FUN_020200A0
ldr r0, _021DB420 ; =MOD63_021DB424
add r1, r4, #0
mov r2, #0x14
bl FUN_0200CA44
str r0, [r4, #8]
add r0, r5, #1
lsl r0, r0, #0x18
lsr r5, r0, #0x18
cmp r5, r7
blo _021DB3A8
_021DB414:
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
_021DB418: .word 0x00000000
_021DB41C: .word 0x0000013A
_021DB420: .word MOD63_021DB424
thumb_func_end MOD63_021DB398
thumb_func_start MOD63_021DB424
MOD63_021DB424: ; 0x021DB424
push {r4, lr}
add r4, r1, #0
ldrb r1, [r4, #1]
add r1, r1, #1
strb r1, [r4, #1]
ldrb r1, [r4, #1]
cmp r1, #8
blo _021DB44C
bl FUN_0200CAB4
mov r1, #0
str r1, [r4, #8]
strb r1, [r4]
ldr r0, [r4, #4]
bl FUN_020200BC
ldr r0, [r4, #4]
mov r1, #0
bl FUN_020200A0
_021DB44C:
pop {r4, pc}
.align 2, 0
thumb_func_end MOD63_021DB424
.section .rodata
.global MOD63_021DBEAC
MOD63_021DBEAC: ; 0x021DBEAC
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x4C, 0x00, 0x00, 0x00
.global MOD63_021DBEBC
MOD63_021DBEBC: ; 0x021DBEBC
.byte 0x01, 0x01, 0x01, 0x01

View File

@@ -0,0 +1,720 @@
.include "asm/macros.inc"
.include "global.inc"
.section .text
.balign 4, 0
thumb_func_start MOD63_021DB450
MOD63_021DB450: ; 0x021DB450
push {r4, lr}
ldr r3, _021DB470 ; =UNK_021064B8
mov r2, #0
ldr r3, [r3]
blx r3
add r4, r0, #0
bl FUN_0201327C
cmp r4, #0
bne _021DB468
bl ErrorHandling
_021DB468:
lsl r0, r4, #0x10
lsr r0, r0, #0xd
pop {r4, pc}
nop
_021DB470: .word UNK_021064B8
thumb_func_end MOD63_021DB450
thumb_func_start MOD63_021DB474
MOD63_021DB474: ; 0x021DB474
push {r4, lr}
ldr r3, _021DB494 ; =UNK_021064C0
mov r2, #1
ldr r3, [r3]
blx r3
add r4, r0, #0
bne _021DB486
bl ErrorHandling
_021DB486:
add r0, r4, #0
bl FUN_020132BC
lsl r0, r4, #0x10
lsr r0, r0, #0xd
pop {r4, pc}
nop
_021DB494: .word UNK_021064C0
thumb_func_end MOD63_021DB474
thumb_func_start MOD63_021DB498
MOD63_021DB498: ; 0x021DB498
mov r0, #0x20
bx lr
thumb_func_end MOD63_021DB498
thumb_func_start MOD63_021DB49C
MOD63_021DB49C: ; 0x021DB49C
push {r4, r5, r6, r7, lr}
sub sp, #0x2c
ldr r3, _021DB56C ; =MOD63_021DBECC
add r5, r0, #0
ldmia r3!, {r0, r1}
add r2, sp, #0x10
stmia r2!, {r0, r1}
ldr r0, [r3]
str r0, [r2]
mov r0, #0x4c
bl FUN_02006D98
ldr r7, _021DB570 ; =MOD63_021DBEF0
str r0, [r5]
mov r4, #0
_021DB4BA:
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
lsl r6, r4, #2
add r1, sp, #0x10
ldr r1, [r1, r6]
add r0, sp, #0x1c
lsl r1, r1, #0x10
lsr r1, r1, #0x10
mov r2, #0
mov r3, #2
bl FUN_02068C00
ldr r0, _021DB574 ; =0x000003FF
lsl r2, r4, #3
str r0, [sp]
str r4, [sp, #4]
mov r0, #0
str r0, [sp, #8]
str r0, [sp, #0xc]
add r3, r7, r2
ldr r0, [r5]
ldr r2, [r7, r2]
ldr r3, [r3, #4]
add r1, sp, #0x1c
add r6, r5, r6
bl FUN_020073A0
mov r1, #6
mov r2, #1
str r0, [r6, #4]
bl FUN_02007558
add r0, r4, #1
lsl r0, r0, #0x18
lsr r4, r0, #0x18
cmp r4, #3
blo _021DB4BA
ldr r0, [r5, #8]
mov r1, #0x23
mov r2, #1
bl FUN_02007558
mov r0, #1
str r0, [r5, #0x10]
bl FUN_02012CC8
mov r1, #0x12
mov r0, #0x4c
lsl r1, r1, #0xa
bl AllocFromHeap
str r0, [r5, #0x14]
mov r0, #1
str r0, [sp]
mov r0, #0x4c
str r0, [sp, #4]
mov r3, #0x12
ldr r0, _021DB578 ; =MOD63_021DB450
ldr r1, _021DB57C ; =MOD63_021DB474
ldr r2, [r5, #0x14]
lsl r3, r3, #0xa
bl FUN_02012CDC
str r0, [r5, #0x18]
bl FUN_0201343C
add r2, r0, #0
mov r0, #1
mov r1, #0xe1
lsl r0, r0, #0xc
lsl r1, r1, #0xe
bl FUN_0201EC94
mov r0, #0x3d
mov r1, #4
mov r2, #0x4c
bl FUN_0201318C
add r1, r0, #0
ldr r0, [r5, #0x18]
mov r2, #0xa
mov r3, #1
bl FUN_02013194
add sp, #0x2c
pop {r4, r5, r6, r7, pc}
nop
_021DB56C: .word MOD63_021DBECC
_021DB570: .word MOD63_021DBEF0
_021DB574: .word 0x000003FF
_021DB578: .word MOD63_021DB450
_021DB57C: .word MOD63_021DB474
thumb_func_end MOD63_021DB49C
thumb_func_start MOD63_021DB580
MOD63_021DB580: ; 0x021DB580
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #0x18]
bl FUN_02012DE4
ldr r0, [r4, #0x14]
bl FreeToHeap
ldr r0, [r4]
bl FUN_020072E8
pop {r4, pc}
thumb_func_end MOD63_021DB580
thumb_func_start MOD63_021DB598
MOD63_021DB598: ; 0x021DB598
push {r3, lr}
cmp r0, #0
beq _021DB5A4
ldr r0, [r0]
bl FUN_020081C4
_021DB5A4:
pop {r3, pc}
.align 2, 0
thumb_func_end MOD63_021DB598
thumb_func_start MOD63_021DB5A8
MOD63_021DB5A8: ; 0x021DB5A8
push {r4, lr}
add r4, r0, #0
beq _021DB5C8
bl FUN_020222AC
bl FUN_020B02C8
ldr r0, [r4]
bl FUN_02006ED4
bl MOD63_021DB934
mov r0, #1
mov r1, #0
bl FUN_020222B4
_021DB5C8:
pop {r4, pc}
.align 2, 0
thumb_func_end MOD63_021DB5A8
thumb_func_start MOD63_021DB5CC
MOD63_021DB5CC: ; 0x021DB5CC
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
add r4, r0, #0
add r7, r2, #0
ldrb r2, [r4, #0x1c]
add r5, r4, #0
add r6, r1, #0
add r5, #0x1c
cmp r2, #5
bls _021DB5E2
b _021DB6FC
_021DB5E2:
add r2, r2, r2
add r2, pc
ldrh r2, [r2, #6]
lsl r2, r2, #0x10
asr r2, r2, #0x10
add pc, r2
_021DB5EE: ; jump table
.short _021DB5FA - _021DB5EE - 2 ; case 0
.short _021DB63C - _021DB5EE - 2 ; case 1
.short _021DB658 - _021DB5EE - 2 ; case 2
.short _021DB690 - _021DB5EE - 2 ; case 3
.short _021DB6BE - _021DB5EE - 2 ; case 4
.short _021DB6E4 - _021DB5EE - 2 ; case 5
_021DB5FA:
ldr r0, _021DB704 ; =0x0400004A
mov r1, #0x3f
ldrh r2, [r0]
add r7, r4, #4
bic r2, r1
mov r1, #0x11
orr r1, r2
mov r2, #0x20
orr r1, r2
strh r1, [r0]
lsl r0, r6, #2
str r0, [sp]
ldr r0, [r7, r0]
mov r1, #0xc
lsl r2, r2, #5
bl FUN_02007558
ldr r0, [sp]
mov r2, #1
ldr r0, [r7, r0]
mov r1, #0xd
lsl r2, r2, #0xa
bl FUN_02007558
ldr r0, [sp]
mov r1, #6
ldr r0, [r7, r0]
mov r2, #0
bl FUN_02007558
ldrb r0, [r5]
add r0, r0, #1
strb r0, [r5]
_021DB63C:
ldr r2, _021DB708 ; =MOD63_021DBED8
lsl r3, r6, #3
ldr r2, [r2, r3]
add r0, r4, #0
add r1, r6, #0
blx r2
cmp r0, #0
beq _021DB6FC
mov r0, #0
strb r0, [r4, #0x1d]
ldrb r0, [r5]
add r0, r0, #1
strb r0, [r5]
b _021DB6FC
_021DB658:
ldr r0, [r4, #0x18]
mov r1, #1
bl FUN_02013440
lsl r0, r6, #2
str r0, [sp, #4]
ldr r1, _021DB70C ; =MOD63_021DBF08
lsl r6, r6, #3
ldr r3, [sp, #4]
add r7, r4, #4
ldr r0, [r4, #0x18]
ldr r1, [r1, r6]
ldr r2, _021DB710 ; =MOD63_021DB940
ldr r3, [r7, r3]
bl FUN_020133AC
ldr r1, _021DB714 ; =MOD63_021DBF0C
ldr r3, [sp, #4]
ldr r0, [r4, #0x18]
ldr r1, [r1, r6]
ldr r2, _021DB710 ; =MOD63_021DB940
ldr r3, [r7, r3]
bl FUN_020133AC
ldrb r0, [r5]
add r0, r0, #1
strb r0, [r5]
b _021DB6FC
_021DB690:
ldr r0, [r4, #0x18]
bl FUN_020133C8
cmp r0, #0
bne _021DB6FC
ldr r0, _021DB718 ; =MOD63_021DBEC0
lsl r1, r6, #2
ldr r0, [r0, r1]
cmp r7, r0
blt _021DB6FC
ldr r1, _021DB704 ; =0x0400004A
mov r0, #0x3f
ldrh r2, [r1]
bic r2, r0
mov r0, #0x10
orr r2, r0
mov r0, #0x20
orr r0, r2
strh r0, [r1]
ldrb r0, [r5]
add r0, r0, #1
strb r0, [r5]
b _021DB6FC
_021DB6BE:
ldr r2, _021DB71C ; =MOD63_021DBEDC
lsl r3, r6, #3
ldr r2, [r2, r3]
blx r2
cmp r0, #0
beq _021DB6FC
lsl r0, r6, #2
add r0, r4, r0
ldr r0, [r0, #4]
mov r1, #6
mov r2, #1
bl FUN_02007558
mov r0, #0
strb r0, [r4, #0x1d]
ldrb r0, [r5]
add r0, r0, #1
strb r0, [r5]
b _021DB6FC
_021DB6E4:
ldrb r0, [r4, #0x1d]
add r0, r0, #1
strb r0, [r4, #0x1d]
ldrb r0, [r4, #0x1d]
cmp r0, #0x14
blo _021DB6FC
mov r0, #0
strb r0, [r4, #0x1d]
strb r0, [r5]
add sp, #8
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021DB6FC:
mov r0, #0
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
nop
_021DB704: .word 0x0400004A
_021DB708: .word MOD63_021DBED8
_021DB70C: .word MOD63_021DBF08
_021DB710: .word MOD63_021DB940
_021DB714: .word MOD63_021DBF0C
_021DB718: .word MOD63_021DBEC0
_021DB71C: .word MOD63_021DBEDC
thumb_func_end MOD63_021DB5CC
thumb_func_start MOD63_021DB720
MOD63_021DB720: ; 0x021DB720
push {r3, r4, r5, lr}
add r5, r0, #0
lsl r0, r1, #2
add r0, r5, r0
ldr r4, [r0, #4]
mov r1, #0
add r0, r4, #0
mov r2, #6
bl FUN_020079E0
mov r1, #1
add r2, r1, #0
add r0, r4, #0
sub r2, #0x11
bl FUN_020079E0
mov r1, #0xc
add r2, r1, #0
add r0, r4, #0
sub r2, #0x8c
bl FUN_020079E0
mov r1, #0xd
add r2, r1, #0
add r0, r4, #0
sub r2, #0x8d
bl FUN_020079E0
ldrb r0, [r5, #0x1d]
add r0, r0, #1
strb r0, [r5, #0x1d]
ldrb r0, [r5, #0x1d]
cmp r0, #6
blo _021DB780
mov r1, #0xc
add r2, r1, #0
add r0, r4, #0
add r2, #0xf4
bl FUN_02007558
mov r1, #0xd
add r2, r1, #0
add r0, r4, #0
add r2, #0xf3
bl FUN_02007558
mov r0, #1
pop {r3, r4, r5, pc}
_021DB780:
mov r0, #0
pop {r3, r4, r5, pc}
thumb_func_end MOD63_021DB720
thumb_func_start MOD63_021DB784
MOD63_021DB784: ; 0x021DB784
push {r3, r4, r5, lr}
add r5, r0, #0
lsl r0, r1, #2
add r0, r5, r0
ldr r4, [r0, #4]
mov r1, #0
add r0, r4, #0
sub r2, r1, #3
bl FUN_020079E0
mov r1, #1
add r2, r1, #0
add r0, r4, #0
sub r2, #0x13
bl FUN_020079E0
ldrb r0, [r5, #0x1d]
add r0, r0, #1
strb r0, [r5, #0x1d]
ldrb r0, [r5, #0x1d]
cmp r0, #6
blo _021DB7CC
mov r1, #0xc
add r2, r1, #0
add r0, r4, #0
add r2, #0xf4
bl FUN_02007558
mov r1, #0xd
add r2, r1, #0
add r0, r4, #0
add r2, #0xf3
bl FUN_02007558
mov r0, #1
pop {r3, r4, r5, pc}
_021DB7CC:
mov r0, #0
pop {r3, r4, r5, pc}
thumb_func_end MOD63_021DB784
thumb_func_start MOD63_021DB7D0
MOD63_021DB7D0: ; 0x021DB7D0
push {r3, r4, r5, lr}
add r5, r0, #0
lsl r0, r1, #2
add r0, r5, r0
ldr r4, [r0, #4]
mov r1, #0
add r2, r1, #0
add r0, r4, #0
sub r2, #0x10
bl FUN_020079E0
mov r1, #1
add r2, r1, #0
add r0, r4, #0
sub r2, #0x11
bl FUN_020079E0
mov r1, #0xc
add r2, r1, #0
add r0, r4, #0
sub r2, #0x8c
bl FUN_020079E0
mov r1, #0xd
add r2, r1, #0
add r0, r4, #0
sub r2, #0x8d
bl FUN_020079E0
ldrb r0, [r5, #0x1d]
add r0, r0, #1
strb r0, [r5, #0x1d]
ldrb r0, [r5, #0x1d]
cmp r0, #6
blo _021DB832
mov r1, #0xc
add r2, r1, #0
add r0, r4, #0
add r2, #0xf4
bl FUN_02007558
mov r1, #0xd
add r2, r1, #0
add r0, r4, #0
add r2, #0xf3
bl FUN_02007558
mov r0, #1
pop {r3, r4, r5, pc}
_021DB832:
mov r0, #0
pop {r3, r4, r5, pc}
.align 2, 0
thumb_func_end MOD63_021DB7D0
thumb_func_start MOD63_021DB838
MOD63_021DB838: ; 0x021DB838
push {r3, r4, r5, lr}
add r5, r0, #0
lsl r0, r1, #2
add r0, r5, r0
ldr r4, [r0, #4]
mov r1, #0
add r0, r4, #0
sub r2, r1, #6
bl FUN_020079E0
mov r1, #1
add r2, r1, #0
add r0, r4, #0
sub r2, #0x11
bl FUN_020079E0
ldrb r0, [r5, #0x1d]
add r0, r0, #1
strb r0, [r5, #0x1d]
ldrb r0, [r5, #0x1d]
cmp r0, #6
blo _021DB880
mov r1, #0xc
add r2, r1, #0
add r0, r4, #0
add r2, #0xf4
bl FUN_02007558
mov r1, #0xd
add r2, r1, #0
add r0, r4, #0
add r2, #0xf3
bl FUN_02007558
mov r0, #1
pop {r3, r4, r5, pc}
_021DB880:
mov r0, #0
pop {r3, r4, r5, pc}
thumb_func_end MOD63_021DB838
thumb_func_start MOD63_021DB884
MOD63_021DB884: ; 0x021DB884
push {r3, r4, r5, lr}
add r5, r0, #0
lsl r0, r1, #2
add r0, r5, r0
ldr r4, [r0, #4]
mov r1, #0
add r0, r4, #0
mov r2, #8
bl FUN_020079E0
mov r1, #1
add r2, r1, #0
add r0, r4, #0
sub r2, #0x11
bl FUN_020079E0
mov r1, #0xc
add r2, r1, #0
add r0, r4, #0
sub r2, #0x8c
bl FUN_020079E0
mov r1, #0xd
add r2, r1, #0
add r0, r4, #0
sub r2, #0x8d
bl FUN_020079E0
ldrb r0, [r5, #0x1d]
add r0, r0, #1
strb r0, [r5, #0x1d]
ldrb r0, [r5, #0x1d]
cmp r0, #6
blo _021DB8E4
mov r1, #0xc
add r2, r1, #0
add r0, r4, #0
add r2, #0xf4
bl FUN_02007558
mov r1, #0xd
add r2, r1, #0
add r0, r4, #0
add r2, #0xf3
bl FUN_02007558
mov r0, #1
pop {r3, r4, r5, pc}
_021DB8E4:
mov r0, #0
pop {r3, r4, r5, pc}
thumb_func_end MOD63_021DB884
thumb_func_start MOD63_021DB8E8
MOD63_021DB8E8: ; 0x021DB8E8
push {r3, r4, r5, lr}
add r5, r0, #0
lsl r0, r1, #2
add r0, r5, r0
ldr r4, [r0, #4]
mov r1, #0
add r0, r4, #0
mov r2, #6
bl FUN_020079E0
mov r1, #1
add r2, r1, #0
add r0, r4, #0
sub r2, #0x15
bl FUN_020079E0
ldrb r0, [r5, #0x1d]
add r0, r0, #1
strb r0, [r5, #0x1d]
ldrb r0, [r5, #0x1d]
cmp r0, #6
blo _021DB930
mov r1, #0xc
add r2, r1, #0
add r0, r4, #0
add r2, #0xf4
bl FUN_02007558
mov r1, #0xd
add r2, r1, #0
add r0, r4, #0
add r2, #0xf3
bl FUN_02007558
mov r0, #1
pop {r3, r4, r5, pc}
_021DB930:
mov r0, #0
pop {r3, r4, r5, pc}
thumb_func_end MOD63_021DB8E8
thumb_func_start MOD63_021DB934
MOD63_021DB934: ; 0x021DB934
push {r3, lr}
bl FUN_02013364
bl FUN_02013388
pop {r3, pc}
thumb_func_end MOD63_021DB934
thumb_func_start MOD63_021DB940
MOD63_021DB940: ; 0x021DB940
push {r4, r5, lr}
sub sp, #0xc
add r5, r0, #0
bl FUN_0201341C
add r2, sp, #0
mov r1, #0
str r1, [r2]
str r1, [r2, #4]
add r4, r0, #0
str r1, [r2, #8]
bl FUN_0200782C
sub r0, #0x80
mov r1, #0xac
mul r1, r0
str r1, [sp]
add r0, r4, #0
mov r1, #1
bl FUN_0200782C
sub r0, #0x60
mov r1, #0xac
mul r1, r0
str r1, [sp, #4]
mov r0, #0x40
str r0, [sp, #8]
ldr r0, [r5, #0x20]
ldr r1, [sp]
ldr r0, [r0]
ldr r0, [r0, #4]
add r0, r1, r0
str r0, [r5, #0x28]
ldr r0, [r5, #0x20]
ldr r1, [sp, #4]
ldr r0, [r0]
ldr r0, [r0, #8]
add r0, r1, r0
str r0, [r5, #0x2c]
ldr r0, [r5, #0x20]
ldr r1, [sp, #8]
ldr r0, [r0]
ldr r0, [r0, #0xc]
add r0, r1, r0
str r0, [r5, #0x30]
add sp, #0xc
pop {r4, r5, pc}
.align 2, 0
thumb_func_end MOD63_021DB940
.section .rodata
.global MOD63_021DBEC0
MOD63_021DBEC0: ; 0x021DBEC0
.byte 0x03, 0x07, 0x00, 0x00, 0xCE, 0x07, 0x00, 0x00
.byte 0xA8, 0x08, 0x00, 0x00
.global MOD63_021DBECC
MOD63_021DBECC: ; 0x021DBECC
.byte 0x83, 0x01, 0x00, 0x00, 0x86, 0x01, 0x00, 0x00, 0x89, 0x01, 0x00, 0x00
.global MOD63_021DBED8
MOD63_021DBED8: ; 0x021DBED8
.word MOD63_021DB720
.global MOD63_021DBEDC
MOD63_021DBEDC: ; 0x021DBEDC
.word MOD63_021DB784, MOD63_021DB7D0, MOD63_021DB838, MOD63_021DB884
.word MOD63_021DB8E8
.global MOD63_021DBEF0
MOD63_021DBEF0: ; 0x021DBEF0
.byte 0x80, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00
.byte 0x00, 0x01, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00
.global MOD63_021DBF08
MOD63_021DBF08: ; 0x021DBF08
.byte 0x04, 0x00, 0x00, 0x00
.global MOD63_021DBF0C
MOD63_021DBF0C: ; 0x021DBF0C
.byte 0x05, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00

File diff suppressed because it is too large Load Diff