mirror of
https://github.com/pret/pokeplatinum.git
synced 2026-04-26 00:32:20 -05:00
1144 lines
22 KiB
ArmAsm
1144 lines
22 KiB
ArmAsm
.include "macros/function.inc"
|
|
.include "include/gpibuddy.inc"
|
|
|
|
|
|
|
|
.text
|
|
|
|
|
|
arm_func_start ov4_021EC564
|
|
ov4_021EC564: ; 0x021EC564
|
|
stmfd sp!, {r4, r5, r6, lr}
|
|
mov r6, r0
|
|
ldr r4, [r6, #0]
|
|
ldr r2, _021EC5F8 ; =0x02217CB0
|
|
mov r5, r1
|
|
add r1, r4, #0x1f4
|
|
bl ov4_021ED5C4
|
|
ldr r2, _021EC5FC ; =0x02217CBC
|
|
mov r0, r6
|
|
add r1, r4, #0x1f4
|
|
bl ov4_021ED5C4
|
|
ldr r2, [r4, #0x198]
|
|
mov r0, r6
|
|
add r1, r4, #0x1f4
|
|
bl ov4_021ED5F4
|
|
ldr r2, _021EC600 ; =0x02217CC8
|
|
mov r0, r6
|
|
add r1, r4, #0x1f4
|
|
bl ov4_021ED5C4
|
|
mov r0, r6
|
|
add r1, r4, #0x1f4
|
|
ldr r2, [r5, #0]
|
|
bl ov4_021ED5F4
|
|
mov r0, r6
|
|
add r1, r4, #0x1f4
|
|
ldr r2, _021EC604 ; =0x02217CD8
|
|
bl ov4_021ED5C4
|
|
ldr r2, [r5, #0x10]
|
|
mov r0, r6
|
|
add r1, r4, #0x1f4
|
|
bl ov4_021ED5C4
|
|
mov r0, r6
|
|
add r1, r4, #0x1f4
|
|
ldr r2, _021EC608 ; =0x02217CE0
|
|
bl ov4_021ED5C4
|
|
mov r0, #0
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
; .align 2, 0
|
|
_021EC5F8: .word Unk_ov4_02217CB0
|
|
_021EC5FC: .word Unk_ov4_02217CBC
|
|
_021EC600: .word Unk_ov4_02217CC8
|
|
_021EC604: .word Unk_ov4_02217CD8
|
|
_021EC608: .word Unk_ov4_02217CE0
|
|
arm_func_end ov4_021EC564
|
|
|
|
arm_func_start ov4_021EC60C
|
|
ov4_021EC60C: ; 0x021EC60C
|
|
stmfd sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
sub sp, sp, #0x138
|
|
sub sp, sp, #0x1000
|
|
mov r7, r1
|
|
mov sl, r0
|
|
ldr r1, _021ECF80 ; =0x02217CE8
|
|
add r2, sp, #0x138
|
|
mov r0, r7
|
|
mov r3, #0x1000
|
|
ldr r8, [sl]
|
|
bl ov4_021F5978
|
|
cmp r0, #0
|
|
bne _021EC670
|
|
ldr r2, _021ECF84 ; =0x02217CF0
|
|
mov r0, sl
|
|
mov r1, #1
|
|
bl ov4_021F5D44
|
|
mov r0, sl
|
|
mov r1, #3
|
|
mov r2, #1
|
|
bl ov4_021EDE68
|
|
add sp, sp, #0x138
|
|
add sp, sp, #0x1000
|
|
mov r0, #3
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
_021EC670:
|
|
add r0, sp, #0x138
|
|
bl atoi
|
|
mov r4, r0
|
|
ldr r1, _021ECF88 ; =0x02217D20
|
|
add r2, sp, #0x138
|
|
mov r0, r7
|
|
mov r3, #0x1000
|
|
bl ov4_021F5978
|
|
cmp r0, #0
|
|
bne _021EC6C8
|
|
ldr r2, _021ECF84 ; =0x02217CF0
|
|
mov r0, sl
|
|
mov r1, #1
|
|
bl ov4_021F5D44
|
|
mov r0, sl
|
|
mov r1, #3
|
|
mov r2, #1
|
|
bl ov4_021EDE68
|
|
add sp, sp, #0x138
|
|
add sp, sp, #0x1000
|
|
mov r0, #3
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
_021EC6C8:
|
|
add r0, sp, #0x138
|
|
bl atoi
|
|
mov r6, r0
|
|
ldr r1, _021ECF8C ; =0x02217D24
|
|
add r2, sp, #0x138
|
|
mov r0, r7
|
|
mov r3, #0x1000
|
|
bl ov4_021F5978
|
|
cmp r0, #0
|
|
beq _021EC6FC
|
|
add r0, sp, #0x138
|
|
bl atoi
|
|
b _021EC704
|
|
_021EC6FC:
|
|
mov r0, #0
|
|
bl ov4_021EAF48
|
|
_021EC704:
|
|
mov sb, r0
|
|
cmp r4, #0x64
|
|
bgt _021EC734
|
|
bge _021ECA20
|
|
cmp r4, #2
|
|
bgt _021ECF70
|
|
cmp r4, #1
|
|
blt _021ECF70
|
|
beq _021EC754
|
|
cmp r4, #2
|
|
beq _021EC860
|
|
b _021ECF70
|
|
_021EC734:
|
|
cmp r4, #0x66
|
|
bgt _021ECF70
|
|
cmp r4, #0x65
|
|
blt _021ECF70
|
|
beq _021ECD80
|
|
cmp r4, #0x66
|
|
beq _021ECF10
|
|
b _021ECF70
|
|
_021EC754:
|
|
ldr r1, [r8, #0x1bc]
|
|
ldr r0, [r8, #0x1c0]
|
|
str r1, [sp, #0x20]
|
|
str r0, [sp, #0x24]
|
|
cmp r1, #0
|
|
beq _021ECF70
|
|
mov r0, #0xc
|
|
bl ov4_021D7880
|
|
movs r4, r0
|
|
bne _021EC798
|
|
ldr r1, _021ECF90 ; =0x02217D2C
|
|
mov r0, sl
|
|
bl ov4_021F5D68
|
|
add sp, sp, #0x138
|
|
add sp, sp, #0x1000
|
|
mov r0, #1
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
_021EC798:
|
|
ldr r1, _021ECF94 ; =0x02217D3C
|
|
add r2, sp, #0x138
|
|
mov r0, r7
|
|
mov r3, #0x1000
|
|
bl ov4_021F5978
|
|
cmp r0, #0
|
|
bne _021EC7E4
|
|
ldr r2, _021ECF84 ; =0x02217CF0
|
|
mov r0, sl
|
|
mov r1, #1
|
|
bl ov4_021F5D44
|
|
mov r0, sl
|
|
mov r1, #3
|
|
mov r2, #1
|
|
bl ov4_021EDE68
|
|
add sp, sp, #0x138
|
|
add sp, sp, #0x1000
|
|
mov r0, #3
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
_021EC7E4:
|
|
add r0, sp, #0x138
|
|
bl strlen
|
|
add r0, r0, #1
|
|
bl ov4_021D7880
|
|
str r0, [r4, #8]
|
|
cmp r0, #0
|
|
bne _021EC81C
|
|
ldr r1, _021ECF90 ; =0x02217D2C
|
|
mov r0, sl
|
|
bl ov4_021F5D68
|
|
add sp, sp, #0x138
|
|
add sp, sp, #0x1000
|
|
mov r0, #1
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
_021EC81C:
|
|
add r1, sp, #0x138
|
|
bl strcpy
|
|
stmia r4, {r6, sb}
|
|
mov r2, #0
|
|
str r2, [sp]
|
|
mov r2, #2
|
|
add r1, sp, #0x20
|
|
str r2, [sp, #4]
|
|
mov r0, sl
|
|
mov r3, r4
|
|
ldmia r1, {r1, r2}
|
|
bl ov4_021EDF5C
|
|
cmp r0, #0
|
|
beq _021ECF70
|
|
add sp, sp, #0x138
|
|
add sp, sp, #0x1000
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
_021EC860:
|
|
mov r0, sl
|
|
mov r1, r6
|
|
bl ov4_021F31C4
|
|
movs r5, r0
|
|
bne _021EC890
|
|
ldr r1, _021ECF90 ; =0x02217D2C
|
|
mov r0, sl
|
|
bl ov4_021F5D68
|
|
add sp, sp, #0x138
|
|
add sp, sp, #0x1000
|
|
mov r0, #1
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
_021EC890:
|
|
ldr r1, _021ECF94 ; =0x02217D3C
|
|
add r2, sp, #0x138
|
|
mov r0, r7
|
|
mov r3, #0x1000
|
|
bl ov4_021F5978
|
|
cmp r0, #0
|
|
bne _021EC8DC
|
|
ldr r2, _021ECF84 ; =0x02217CF0
|
|
mov r0, sl
|
|
mov r1, #1
|
|
bl ov4_021F5D44
|
|
mov r0, sl
|
|
mov r1, #3
|
|
mov r2, #1
|
|
bl ov4_021EDE68
|
|
add sp, sp, #0x138
|
|
add sp, sp, #0x1000
|
|
mov r0, #3
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
_021EC8DC:
|
|
ldr r1, _021ECF98 ; =0x02217D44
|
|
add r0, sp, #0x138
|
|
bl strstr
|
|
movs r4, r0
|
|
bne _021EC920
|
|
ldr r2, _021ECF84 ; =0x02217CF0
|
|
mov r0, sl
|
|
mov r1, #1
|
|
bl ov4_021F5D44
|
|
mov r0, sl
|
|
mov r1, #3
|
|
mov r2, #1
|
|
bl ov4_021EDE68
|
|
add sp, sp, #0x138
|
|
add sp, sp, #0x1000
|
|
mov r0, #3
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
_021EC920:
|
|
mov r1, #0
|
|
add r0, r4, #8
|
|
strb r1, [r4]
|
|
bl strlen
|
|
cmp r0, #0x20
|
|
beq _021EC968
|
|
ldr r2, _021ECF84 ; =0x02217CF0
|
|
mov r0, sl
|
|
mov r1, #1
|
|
bl ov4_021F5D44
|
|
mov r0, sl
|
|
mov r1, #3
|
|
mov r2, #1
|
|
bl ov4_021EDE68
|
|
add sp, sp, #0x138
|
|
add sp, sp, #0x1000
|
|
mov r0, #3
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
_021EC968:
|
|
ldr r0, [r5, #0x10]
|
|
bl ov4_021D78B0
|
|
mov r0, #0
|
|
str r0, [r5, #0x10]
|
|
add r0, r4, #8
|
|
bl ov4_021EA8AC
|
|
str r0, [r5, #0x10]
|
|
ldr r0, [r5, #0x14]
|
|
add r0, r0, #1
|
|
str r0, [r5, #0x14]
|
|
ldr r1, [r8, #0x1ac]
|
|
ldr r0, [r8, #0x1b0]
|
|
str r1, [sp, #8]
|
|
str r0, [sp, #0xc]
|
|
cmp r1, #0
|
|
beq _021ECF70
|
|
ldr r0, _021ECF9C ; =0x0000040C
|
|
bl ov4_021D7880
|
|
movs r4, r0
|
|
bne _021EC9D4
|
|
ldr r1, _021ECF90 ; =0x02217D2C
|
|
mov r0, sl
|
|
bl ov4_021F5D68
|
|
add sp, sp, #0x138
|
|
add sp, sp, #0x1000
|
|
mov r0, #1
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
_021EC9D4:
|
|
ldr r2, _021ECFA0 ; =0x00000401
|
|
add r1, sp, #0x138
|
|
add r0, r4, #8
|
|
bl ov4_021F5820
|
|
stmia r4, {r6, sb}
|
|
mov r2, #0
|
|
str r2, [sp]
|
|
mov r2, #6
|
|
add r1, sp, #8
|
|
str r2, [sp, #4]
|
|
mov r0, sl
|
|
mov r3, r4
|
|
ldmia r1, {r1, r2}
|
|
bl ov4_021EDF5C
|
|
cmp r0, #0
|
|
beq _021ECF70
|
|
add sp, sp, #0x138
|
|
add sp, sp, #0x1000
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
_021ECA20:
|
|
mov r0, sl
|
|
mov r1, r6
|
|
bl ov4_021F31C4
|
|
movs r4, r0
|
|
bne _021ECA50
|
|
ldr r1, _021ECF90 ; =0x02217D2C
|
|
mov r0, sl
|
|
bl ov4_021F5D68
|
|
add sp, sp, #0x138
|
|
add sp, sp, #0x1000
|
|
mov r0, #1
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
_021ECA50:
|
|
ldr r0, [r4, #8]
|
|
cmp r0, #0
|
|
bne _021ECAC4
|
|
mov r0, #0x18
|
|
bl ov4_021D7880
|
|
str r0, [r4, #8]
|
|
cmp r0, #0
|
|
bne _021ECA8C
|
|
ldr r1, _021ECF90 ; =0x02217D2C
|
|
mov r0, sl
|
|
bl ov4_021F5D68
|
|
add sp, sp, #0x138
|
|
add sp, sp, #0x1000
|
|
mov r0, #1
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
_021ECA8C:
|
|
mov r2, #6
|
|
mov r1, #0
|
|
_021ECA94:
|
|
strb r1, [r0]
|
|
strb r1, [r0, #1]
|
|
strb r1, [r0, #2]
|
|
strb r1, [r0, #3]
|
|
add r0, r0, #4
|
|
subs r2, r2, #1
|
|
bne _021ECA94
|
|
ldr r1, [r8, #0x430]
|
|
add r0, r1, #1
|
|
str r0, [r8, #0x430]
|
|
ldr r0, [r4, #8]
|
|
str r1, [r0, #0]
|
|
_021ECAC4:
|
|
ldr r1, _021ECF94 ; =0x02217D3C
|
|
mov r0, r7
|
|
add r2, sp, #0x138
|
|
mov r3, #0x1000
|
|
ldr r7, [r4, #8]
|
|
bl ov4_021F5978
|
|
cmp r0, #0
|
|
bne _021ECB14
|
|
ldr r2, _021ECF84 ; =0x02217CF0
|
|
mov r0, sl
|
|
mov r1, #1
|
|
bl ov4_021F5D44
|
|
mov r0, sl
|
|
mov r1, #3
|
|
mov r2, #1
|
|
bl ov4_021EDE68
|
|
add sp, sp, #0x138
|
|
add sp, sp, #0x1000
|
|
mov r0, #3
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
_021ECB14:
|
|
ldr r1, _021ECFA4 ; =0x02217D50
|
|
add r0, sp, #0x138
|
|
add r2, sp, #0x28
|
|
mov r3, #0x10
|
|
bl ov4_021F5978
|
|
cmp r0, #0
|
|
bne _021ECB60
|
|
ldr r2, _021ECF84 ; =0x02217CF0
|
|
mov r0, sl
|
|
mov r1, #1
|
|
bl ov4_021F5D44
|
|
mov r0, sl
|
|
mov r1, #3
|
|
mov r2, #1
|
|
bl ov4_021EDE68
|
|
add sp, sp, #0x138
|
|
add sp, sp, #0x1000
|
|
mov r0, #3
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
_021ECB60:
|
|
add r0, sp, #0x28
|
|
bl atoi
|
|
str r0, [r7, #4]
|
|
ldr r0, [r7, #8]
|
|
bl ov4_021D78B0
|
|
mov r0, #0
|
|
str r0, [r7, #8]
|
|
ldr r1, _021ECFA8 ; =0x02217D54
|
|
add r0, sp, #0x138
|
|
add r2, sp, #0x38
|
|
mov r3, #0x100
|
|
bl ov4_021F5978
|
|
cmp r0, #0
|
|
moveq r0, #0
|
|
streqb r0, [sp, #0x38]
|
|
add r0, sp, #0x38
|
|
bl ov4_021EA8AC
|
|
str r0, [r7, #8]
|
|
cmp r0, #0
|
|
bne _021ECBCC
|
|
ldr r1, _021ECF90 ; =0x02217D2C
|
|
mov r0, sl
|
|
bl ov4_021F5D68
|
|
add sp, sp, #0x138
|
|
add sp, sp, #0x1000
|
|
mov r0, #1
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
_021ECBCC:
|
|
ldr r0, [r7, #0xc]
|
|
bl ov4_021D78B0
|
|
mov r4, #0
|
|
ldr r1, _021ECFAC ; =0x02217D5C
|
|
add r0, sp, #0x138
|
|
add r2, sp, #0x38
|
|
mov r3, #0x100
|
|
str r4, [r7, #0xc]
|
|
bl ov4_021F5978
|
|
cmp r0, #0
|
|
moveq r0, r4
|
|
streqb r0, [sp, #0x38]
|
|
add r0, sp, #0x38
|
|
bl ov4_021EA8AC
|
|
str r0, [r7, #0xc]
|
|
cmp r0, #0
|
|
bne _021ECC2C
|
|
ldr r1, _021ECF90 ; =0x02217D2C
|
|
mov r0, sl
|
|
bl ov4_021F5D68
|
|
add sp, sp, #0x138
|
|
add sp, sp, #0x1000
|
|
mov r0, #1
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
_021ECC2C:
|
|
ldr r1, _021ECFB0 ; =0x02217D64
|
|
add r0, sp, #0x138
|
|
add r2, sp, #0x28
|
|
mov r3, #0x10
|
|
bl ov4_021F5978
|
|
cmp r0, #0
|
|
moveq r0, #0
|
|
beq _021ECCA4
|
|
add r0, sp, #0x28
|
|
bl atoi
|
|
mov r5, r0
|
|
add r0, sp, #0x28
|
|
bl atoi
|
|
mov fp, r0
|
|
add r0, sp, #0x28
|
|
bl atoi
|
|
mov r4, r0
|
|
add r0, sp, #0x28
|
|
bl atoi
|
|
mov r1, r4, lsr #0x18
|
|
mov r0, r0, lsr #8
|
|
mov r2, fp, lsl #8
|
|
and r1, r1, #0xff
|
|
and r0, r0, #0xff00
|
|
mov r3, r5, lsl #0x18
|
|
orr r0, r1, r0
|
|
and r2, r2, #0xff0000
|
|
and r1, r3, #0xff000000
|
|
orr r0, r2, r0
|
|
orr r0, r1, r0
|
|
_021ECCA4:
|
|
ldr r1, _021ECFB4 ; =0x02217D6C
|
|
str r0, [r7, #0x10]
|
|
add r0, sp, #0x138
|
|
add r2, sp, #0x28
|
|
mov r3, #0x10
|
|
bl ov4_021F5978
|
|
cmp r0, #0
|
|
moveq r0, #0
|
|
beq _021ECCF4
|
|
add r0, sp, #0x28
|
|
bl atoi
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
mov r1, r0, asr #8
|
|
mov r0, r0, lsl #8
|
|
and r1, r1, #0xff
|
|
and r0, r0, #0xff00
|
|
orr r0, r1, r0
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
_021ECCF4:
|
|
str r0, [r7, #0x14]
|
|
ldr r1, [r8, #0x1b4]
|
|
ldr r0, [r8, #0x1b8]
|
|
str r1, [sp, #0x10]
|
|
str r0, [sp, #0x14]
|
|
cmp r1, #0
|
|
beq _021ECF70
|
|
mov r0, #0xc
|
|
bl ov4_021D7880
|
|
movs r3, r0
|
|
bne _021ECD3C
|
|
ldr r1, _021ECF90 ; =0x02217D2C
|
|
mov r0, sl
|
|
bl ov4_021F5D68
|
|
add sp, sp, #0x138
|
|
add sp, sp, #0x1000
|
|
mov r0, #1
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
_021ECD3C:
|
|
str r6, [r3, #0]
|
|
ldr r0, [r7, #0]
|
|
mov r2, #0
|
|
str r0, [r3, #8]
|
|
str sb, [r3, #4]
|
|
str r2, [sp]
|
|
mov r2, #5
|
|
add r1, sp, #0x10
|
|
str r2, [sp, #4]
|
|
mov r0, sl
|
|
ldmia r1, {r1, r2}
|
|
bl ov4_021EDF5C
|
|
cmp r0, #0
|
|
beq _021ECF70
|
|
add sp, sp, #0x138
|
|
add sp, sp, #0x1000
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
_021ECD80:
|
|
ldr r1, _021ECF94 ; =0x02217D3C
|
|
add r2, sp, #0x138
|
|
mov r0, r7
|
|
mov r3, #0x1000
|
|
bl ov4_021F5978
|
|
cmp r0, #0
|
|
bne _021ECDCC
|
|
ldr r2, _021ECF84 ; =0x02217CF0
|
|
mov r0, sl
|
|
mov r1, #1
|
|
bl ov4_021F5D44
|
|
mov r0, sl
|
|
mov r1, #3
|
|
mov r2, #1
|
|
bl ov4_021EDE68
|
|
add sp, sp, #0x138
|
|
add sp, sp, #0x1000
|
|
mov r0, #3
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
_021ECDCC:
|
|
ldr r1, _021ECFB4 ; =0x02217D6C
|
|
add r0, sp, #0x138
|
|
bl strstr
|
|
cmp r0, #0
|
|
bne _021ECE10
|
|
ldr r2, _021ECF84 ; =0x02217CF0
|
|
mov r0, sl
|
|
mov r1, #1
|
|
bl ov4_021F5D44
|
|
mov r0, sl
|
|
mov r1, #3
|
|
mov r2, #1
|
|
bl ov4_021EDE68
|
|
add sp, sp, #0x138
|
|
add sp, sp, #0x1000
|
|
mov r0, #3
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
_021ECE10:
|
|
ldrsb r1, [r0, #3]
|
|
cmp r1, #0
|
|
bne _021ECE4C
|
|
ldr r2, _021ECF84 ; =0x02217CF0
|
|
mov r0, sl
|
|
mov r1, #1
|
|
bl ov4_021F5D44
|
|
mov r0, sl
|
|
mov r1, #3
|
|
mov r2, #1
|
|
bl ov4_021EDE68
|
|
add sp, sp, #0x138
|
|
add sp, sp, #0x1000
|
|
mov r0, #3
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
_021ECE4C:
|
|
add r0, r0, #3
|
|
bl atoi
|
|
mov r4, r0
|
|
ldr r1, _021ECFB8 ; =0x02217D70
|
|
add r0, sp, #0x138
|
|
bl strstr
|
|
movs r1, r0
|
|
moveq r0, #0
|
|
streqb r0, [sp, #0x38]
|
|
beq _021ECE84
|
|
add r0, sp, #0x38
|
|
add r1, r1, #3
|
|
mov r2, #0x100
|
|
bl ov4_021F5820
|
|
_021ECE84:
|
|
ldr r1, [r8, #0x1c4]
|
|
ldr r0, [r8, #0x1c8]
|
|
str r1, [sp, #0x18]
|
|
str r0, [sp, #0x1c]
|
|
cmp r1, #0
|
|
beq _021ECF70
|
|
mov r0, #0x108
|
|
bl ov4_021D7880
|
|
movs r5, r0
|
|
bne _021ECEC8
|
|
ldr r1, _021ECF90 ; =0x02217D2C
|
|
mov r0, sl
|
|
bl ov4_021F5D68
|
|
add sp, sp, #0x138
|
|
add sp, sp, #0x1000
|
|
mov r0, #1
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
_021ECEC8:
|
|
str r6, [r5, #0]
|
|
add r1, sp, #0x38
|
|
add r0, r5, #8
|
|
str r4, [r5, #4]
|
|
bl strcpy
|
|
mov r2, #0
|
|
str r2, [sp]
|
|
add r1, sp, #0x18
|
|
str r2, [sp, #4]
|
|
mov r0, sl
|
|
mov r3, r5
|
|
ldmia r1, {r1, r2}
|
|
bl ov4_021EDF5C
|
|
cmp r0, #0
|
|
beq _021ECF70
|
|
add sp, sp, #0x138
|
|
add sp, sp, #0x1000
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
_021ECF10:
|
|
ldr r1, _021ECF94 ; =0x02217D3C
|
|
add r2, sp, #0x138
|
|
mov r0, r7
|
|
mov r3, #0x1000
|
|
bl ov4_021F5978
|
|
cmp r0, #0
|
|
bne _021ECF5C
|
|
ldr r2, _021ECF84 ; =0x02217CF0
|
|
mov r0, sl
|
|
mov r1, #1
|
|
bl ov4_021F5D44
|
|
mov r0, sl
|
|
mov r1, #3
|
|
mov r2, #1
|
|
bl ov4_021EDE68
|
|
add sp, sp, #0x138
|
|
add sp, sp, #0x1000
|
|
mov r0, #3
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
_021ECF5C:
|
|
ldr r3, _021ECFBC ; =0x02217D74
|
|
mov r0, sl
|
|
mov r1, r6
|
|
mov r2, #0x67
|
|
bl ov4_021ED09C
|
|
_021ECF70:
|
|
mov r0, #0
|
|
add sp, sp, #0x138
|
|
add sp, sp, #0x1000
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
; .align 2, 0
|
|
_021ECF80: .word Unk_ov4_02217CE8
|
|
_021ECF84: .word Unk_ov4_02217CF0
|
|
_021ECF88: .word Unk_ov4_02217D20
|
|
_021ECF8C: .word Unk_ov4_02217D24
|
|
_021ECF90: .word Unk_ov4_02217D2C
|
|
_021ECF94: .word Unk_ov4_02217D3C
|
|
_021ECF98: .word Unk_ov4_02217D44
|
|
_021ECF9C: .word 0x0000040C
|
|
_021ECFA0: .word 0x00000401
|
|
_021ECFA4: .word Unk_ov4_02217D50
|
|
_021ECFA8: .word Unk_ov4_02217D54
|
|
_021ECFAC: .word Unk_ov4_02217D5C
|
|
_021ECFB0: .word Unk_ov4_02217D64
|
|
_021ECFB4: .word Unk_ov4_02217D6C
|
|
_021ECFB8: .word Unk_ov4_02217D70
|
|
_021ECFBC: .word Unk_ov4_02217D74
|
|
arm_func_end ov4_021EC60C
|
|
|
|
arm_func_start ov4_021ECFC0
|
|
ov4_021ECFC0: ; 0x021ECFC0
|
|
stmfd sp!, {r3, r4, r5, r6, r7, lr}
|
|
sub sp, sp, #0xdb0
|
|
mov r7, r0
|
|
mov r5, r2
|
|
mov r6, r1
|
|
ldr r2, _021ED084 ; =0x00000DAD
|
|
add r0, sp, #0
|
|
mov r1, r3
|
|
ldr r4, [r7, #0]
|
|
bl ov4_021F5820
|
|
ldr r2, _021ED088 ; =0x02217CE8
|
|
mov r0, r7
|
|
add r1, r4, #0x1f4
|
|
bl ov4_021ED5C4
|
|
mov r0, r7
|
|
mov r2, r5
|
|
add r1, r4, #0x1f4
|
|
bl ov4_021ED5F4
|
|
ldr r2, _021ED08C ; =0x02217CBC
|
|
mov r0, r7
|
|
add r1, r4, #0x1f4
|
|
bl ov4_021ED5C4
|
|
ldr r2, [r4, #0x198]
|
|
mov r0, r7
|
|
add r1, r4, #0x1f4
|
|
bl ov4_021ED5F4
|
|
ldr r2, _021ED090 ; =0x02217D78
|
|
mov r0, r7
|
|
add r1, r4, #0x1f4
|
|
bl ov4_021ED5C4
|
|
mov r2, r6
|
|
mov r0, r7
|
|
add r1, r4, #0x1f4
|
|
bl ov4_021ED5F4
|
|
ldr r2, _021ED094 ; =0x02217D3C
|
|
mov r0, r7
|
|
add r1, r4, #0x1f4
|
|
bl ov4_021ED5C4
|
|
mov r0, r7
|
|
add r1, r4, #0x1f4
|
|
add r2, sp, #0
|
|
bl ov4_021ED5C4
|
|
ldr r2, _021ED098 ; =0x02217CE0
|
|
mov r0, r7
|
|
add r1, r4, #0x1f4
|
|
bl ov4_021ED5C4
|
|
mov r0, #0
|
|
add sp, sp, #0xdb0
|
|
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
|
; .align 2, 0
|
|
_021ED084: .word 0x00000DAD
|
|
_021ED088: .word Unk_ov4_02217CE8
|
|
_021ED08C: .word Unk_ov4_02217CBC
|
|
_021ED090: .word Unk_ov4_02217D78
|
|
_021ED094: .word Unk_ov4_02217D3C
|
|
_021ED098: .word Unk_ov4_02217CE0
|
|
arm_func_end ov4_021ECFC0
|
|
|
|
arm_func_start ov4_021ED09C
|
|
ov4_021ED09C: ; 0x021ED09C
|
|
stmfd sp!, {r3, r4, r5, r6, r7, r8, lr}
|
|
sub sp, sp, #4
|
|
mov r7, r0
|
|
mov r6, r1
|
|
mov r5, r2
|
|
mov r4, r3
|
|
bl ov4_021F29B0
|
|
movs r8, r0
|
|
bne _021ED160
|
|
add r2, sp, #0
|
|
mov r0, r7
|
|
mov r1, r6
|
|
bl ov4_021F32A8
|
|
cmp r0, #0
|
|
ldrne r0, [sp]
|
|
ldrne r0, [r0, #8]
|
|
cmpne r0, #0
|
|
ldrne r0, [r0, #0x14]
|
|
cmpne r0, #0
|
|
mov r0, r7
|
|
bne _021ED108
|
|
mov r1, r6
|
|
mov r2, r5
|
|
mov r3, r4
|
|
bl ov4_021ECFC0
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, pc}
|
|
_021ED108:
|
|
mov r1, r6
|
|
mov r2, #1
|
|
bl ov4_021F2A04
|
|
movs r8, r0
|
|
addeq sp, sp, #4
|
|
moveq r0, #1
|
|
ldmeqia sp!, {r3, r4, r5, r6, r7, r8, pc}
|
|
ldr r0, [sp]
|
|
mov r1, r8
|
|
ldr r0, [r0, #0x18]
|
|
cmp r0, #0
|
|
mov r0, r7
|
|
bne _021ED150
|
|
bl ov4_021F2A84
|
|
cmp r0, #0
|
|
beq _021ED160
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, pc}
|
|
_021ED150:
|
|
bl ov4_021F2AE8
|
|
cmp r0, #0
|
|
addne sp, sp, #4
|
|
ldmneia sp!, {r3, r4, r5, r6, r7, r8, pc}
|
|
_021ED160:
|
|
mov r0, r7
|
|
mov r1, r8
|
|
mov r2, r5
|
|
mov r3, r4
|
|
bl ov4_021F2C74
|
|
cmp r0, #0
|
|
moveq r0, #0
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, pc}
|
|
arm_func_end ov4_021ED09C
|
|
|
|
arm_func_start ov4_021ED184
|
|
ov4_021ED184: ; 0x021ED184
|
|
stmfd sp!, {r3, r4, r5, lr}
|
|
mov r4, r0
|
|
add r2, sp, #0
|
|
ldr r5, [r4, #0]
|
|
bl ov4_021F32A8
|
|
cmp r0, #0
|
|
bne _021ED1B4
|
|
ldr r1, _021ED24C ; =0x02217D7C
|
|
mov r0, r4
|
|
bl ov4_021F5D68
|
|
mov r0, #2
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
_021ED1B4:
|
|
ldr r1, [sp]
|
|
ldr r0, [r1, #0x10]
|
|
cmp r0, #0
|
|
bne _021ED1D8
|
|
ldr r1, _021ED24C ; =0x02217D7C
|
|
mov r0, r4
|
|
bl ov4_021F5D68
|
|
mov r0, #2
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
_021ED1D8:
|
|
mov r0, r4
|
|
bl ov4_021EC564
|
|
cmp r0, #0
|
|
ldmneia sp!, {r3, r4, r5, pc}
|
|
ldr r1, [sp]
|
|
ldr r0, [r1, #0x14]
|
|
sub r0, r0, #1
|
|
str r0, [r1, #0x14]
|
|
ldr r0, [r5, #0x100]
|
|
cmp r0, #0
|
|
bne _021ED244
|
|
ldr r1, [sp]
|
|
ldr r0, [r1, #0x14]
|
|
cmp r0, #0
|
|
bgt _021ED244
|
|
ldr r0, [r1, #0x10]
|
|
bl ov4_021D78B0
|
|
ldr r0, [sp]
|
|
mov r1, #0
|
|
str r1, [r0, #0x10]
|
|
ldr r0, [sp]
|
|
bl ov4_021F3490
|
|
cmp r0, #0
|
|
beq _021ED244
|
|
ldr r1, [sp]
|
|
mov r0, r4
|
|
bl ov4_021F3318
|
|
_021ED244:
|
|
mov r0, #0
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
; .align 2, 0
|
|
_021ED24C: .word Unk_ov4_02217D7C
|
|
arm_func_end ov4_021ED184
|
|
|
|
arm_func_start ov4_021ED250
|
|
ov4_021ED250: ; 0x021ED250
|
|
ldr r1, [r1, #8]
|
|
cmp r1, #0
|
|
beq _021ED26C
|
|
ldr r0, [r1, #0]
|
|
cmp r0, r2
|
|
subgt r0, r0, #1
|
|
strgt r0, [r1]
|
|
_021ED26C:
|
|
mov r0, #1
|
|
bx lr
|
|
arm_func_end ov4_021ED250
|
|
|
|
arm_func_start ov4_021ED274
|
|
ov4_021ED274: ; 0x021ED274
|
|
stmfd sp!, {r3, r4, r5, r6, lr}
|
|
sub sp, sp, #4
|
|
mov r6, r0
|
|
add r2, sp, #0
|
|
ldr r4, [r6, #0]
|
|
bl ov4_021F32A8
|
|
cmp r0, #0
|
|
bne _021ED2AC
|
|
ldr r1, _021ED3F4 ; =0x02217D7C
|
|
mov r0, r6
|
|
bl ov4_021F5D68
|
|
add sp, sp, #4
|
|
mov r0, #2
|
|
ldmia sp!, {r3, r4, r5, r6, pc}
|
|
_021ED2AC:
|
|
ldr r2, _021ED3F8 ; =0x02217D90
|
|
mov r0, r6
|
|
add r1, r4, #0x1f4
|
|
bl ov4_021ED5C4
|
|
ldr r2, _021ED3FC ; =0x02217CBC
|
|
mov r0, r6
|
|
add r1, r4, #0x1f4
|
|
bl ov4_021ED5C4
|
|
ldr r2, [r4, #0x198]
|
|
mov r0, r6
|
|
add r1, r4, #0x1f4
|
|
bl ov4_021ED5F4
|
|
ldr r2, _021ED400 ; =0x02217D9C
|
|
mov r0, r6
|
|
add r1, r4, #0x1f4
|
|
bl ov4_021ED5C4
|
|
mov r0, r6
|
|
add r1, r4, #0x1f4
|
|
ldr r2, [sp]
|
|
ldr r2, [r2, #0]
|
|
bl ov4_021ED5F4
|
|
mov r0, r6
|
|
add r1, r4, #0x1f4
|
|
ldr r2, _021ED404 ; =0x02217CE0
|
|
bl ov4_021ED5C4
|
|
ldr r0, [sp]
|
|
ldr r0, [r0, #8]
|
|
cmp r0, #0
|
|
beq _021ED3E8
|
|
ldr r5, [r0, #0]
|
|
cmp r5, #0
|
|
bge _021ED340
|
|
ldr r0, _021ED408 ; =0x02217DAC
|
|
ldr r1, _021ED40C ; =0x02217DB8
|
|
ldr r2, _021ED410 ; =0x02217CA0
|
|
ldr r3, _021ED414 ; =0x000001FD
|
|
bl __msl_assertion_failed
|
|
_021ED340:
|
|
ldr r0, [sp]
|
|
ldr r0, [r0, #8]
|
|
ldr r0, [r0, #8]
|
|
bl ov4_021D78B0
|
|
ldr r0, [sp]
|
|
mov r1, #0
|
|
ldr r0, [r0, #8]
|
|
str r1, [r0, #8]
|
|
ldr r0, [sp]
|
|
ldr r0, [r0, #8]
|
|
ldr r0, [r0, #0xc]
|
|
bl ov4_021D78B0
|
|
ldr r0, [sp]
|
|
mov r1, #0
|
|
ldr r0, [r0, #8]
|
|
str r1, [r0, #0xc]
|
|
ldr r0, [sp]
|
|
ldr r0, [r0, #8]
|
|
bl ov4_021D78B0
|
|
ldr r0, [sp]
|
|
mov r1, #0
|
|
str r1, [r0, #8]
|
|
ldr r0, [sp]
|
|
bl ov4_021F3490
|
|
cmp r0, #0
|
|
beq _021ED3B4
|
|
ldr r1, [sp]
|
|
mov r0, r6
|
|
bl ov4_021F3318
|
|
_021ED3B4:
|
|
ldr r0, [r4, #0x430]
|
|
subs r0, r0, #1
|
|
str r0, [r4, #0x430]
|
|
bpl _021ED3D8
|
|
ldr r0, _021ED418 ; =0x02217DC4
|
|
ldr r1, _021ED40C ; =0x02217DB8
|
|
ldr r2, _021ED410 ; =0x02217CA0
|
|
mov r3, #0x204
|
|
bl __msl_assertion_failed
|
|
_021ED3D8:
|
|
ldr r1, _021ED41C ; =ov4_021ED250
|
|
mov r0, r6
|
|
mov r2, r5
|
|
bl ov4_021F33F4
|
|
_021ED3E8:
|
|
mov r0, #0
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, r5, r6, pc}
|
|
; .align 2, 0
|
|
_021ED3F4: .word Unk_ov4_02217D7C
|
|
_021ED3F8: .word Unk_ov4_02217D90
|
|
_021ED3FC: .word Unk_ov4_02217CBC
|
|
_021ED400: .word Unk_ov4_02217D9C
|
|
_021ED404: .word Unk_ov4_02217CE0
|
|
_021ED408: .word Unk_ov4_02217DAC
|
|
_021ED40C: .word Unk_ov4_02217DB8
|
|
_021ED410: .word Unk_ov4_02217CA0
|
|
_021ED414: .word 0x000001FD
|
|
_021ED418: .word Unk_ov4_02217DC4
|
|
_021ED41C: .word ov4_021ED250
|
|
arm_func_end ov4_021ED274
|
|
|
|
.data
|
|
|
|
|
|
.global Unk_ov4_02217CA0
|
|
Unk_ov4_02217CA0: ; 0x02217CA0
|
|
.incbin "incbin/overlay4_data.bin", 0x1E20, 0x1E30 - 0x1E20
|
|
|
|
.global Unk_ov4_02217CB0
|
|
Unk_ov4_02217CB0: ; 0x02217CB0
|
|
.incbin "incbin/overlay4_data.bin", 0x1E30, 0x1E3C - 0x1E30
|
|
|
|
.global Unk_ov4_02217CBC
|
|
Unk_ov4_02217CBC: ; 0x02217CBC
|
|
.incbin "incbin/overlay4_data.bin", 0x1E3C, 0x1E48 - 0x1E3C
|
|
|
|
.global Unk_ov4_02217CC8
|
|
Unk_ov4_02217CC8: ; 0x02217CC8
|
|
.incbin "incbin/overlay4_data.bin", 0x1E48, 0x1E58 - 0x1E48
|
|
|
|
.global Unk_ov4_02217CD8
|
|
Unk_ov4_02217CD8: ; 0x02217CD8
|
|
.incbin "incbin/overlay4_data.bin", 0x1E58, 0x1E60 - 0x1E58
|
|
|
|
.global Unk_ov4_02217CE0
|
|
Unk_ov4_02217CE0: ; 0x02217CE0
|
|
.incbin "incbin/overlay4_data.bin", 0x1E60, 0x1E68 - 0x1E60
|
|
|
|
.global Unk_ov4_02217CE8
|
|
Unk_ov4_02217CE8: ; 0x02217CE8
|
|
.incbin "incbin/overlay4_data.bin", 0x1E68, 0x1E70 - 0x1E68
|
|
|
|
.global Unk_ov4_02217CF0
|
|
Unk_ov4_02217CF0: ; 0x02217CF0
|
|
.incbin "incbin/overlay4_data.bin", 0x1E70, 0x1EA0 - 0x1E70
|
|
|
|
.global Unk_ov4_02217D20
|
|
Unk_ov4_02217D20: ; 0x02217D20
|
|
.incbin "incbin/overlay4_data.bin", 0x1EA0, 0x1EA4 - 0x1EA0
|
|
|
|
.global Unk_ov4_02217D24
|
|
Unk_ov4_02217D24: ; 0x02217D24
|
|
.incbin "incbin/overlay4_data.bin", 0x1EA4, 0x1EAC - 0x1EA4
|
|
|
|
.global Unk_ov4_02217D2C
|
|
Unk_ov4_02217D2C: ; 0x02217D2C
|
|
.incbin "incbin/overlay4_data.bin", 0x1EAC, 0x1EBC - 0x1EAC
|
|
|
|
.global Unk_ov4_02217D3C
|
|
Unk_ov4_02217D3C: ; 0x02217D3C
|
|
.incbin "incbin/overlay4_data.bin", 0x1EBC, 0x1EC4 - 0x1EBC
|
|
|
|
.global Unk_ov4_02217D44
|
|
Unk_ov4_02217D44: ; 0x02217D44
|
|
.incbin "incbin/overlay4_data.bin", 0x1EC4, 0x1ED0 - 0x1EC4
|
|
|
|
.global Unk_ov4_02217D50
|
|
Unk_ov4_02217D50: ; 0x02217D50
|
|
.incbin "incbin/overlay4_data.bin", 0x1ED0, 0x1ED4 - 0x1ED0
|
|
|
|
.global Unk_ov4_02217D54
|
|
Unk_ov4_02217D54: ; 0x02217D54
|
|
.incbin "incbin/overlay4_data.bin", 0x1ED4, 0x1EDC - 0x1ED4
|
|
|
|
.global Unk_ov4_02217D5C
|
|
Unk_ov4_02217D5C: ; 0x02217D5C
|
|
.incbin "incbin/overlay4_data.bin", 0x1EDC, 0x1EE4 - 0x1EDC
|
|
|
|
.global Unk_ov4_02217D64
|
|
Unk_ov4_02217D64: ; 0x02217D64
|
|
.incbin "incbin/overlay4_data.bin", 0x1EE4, 0x1EEC - 0x1EE4
|
|
|
|
.global Unk_ov4_02217D6C
|
|
Unk_ov4_02217D6C: ; 0x02217D6C
|
|
.incbin "incbin/overlay4_data.bin", 0x1EEC, 0x1EF0 - 0x1EEC
|
|
|
|
.global Unk_ov4_02217D70
|
|
Unk_ov4_02217D70: ; 0x02217D70
|
|
.incbin "incbin/overlay4_data.bin", 0x1EF0, 0x1EF4 - 0x1EF0
|
|
|
|
.global Unk_ov4_02217D74
|
|
Unk_ov4_02217D74: ; 0x02217D74
|
|
.incbin "incbin/overlay4_data.bin", 0x1EF4, 0x1EF8 - 0x1EF4
|
|
|
|
.global Unk_ov4_02217D78
|
|
Unk_ov4_02217D78: ; 0x02217D78
|
|
.incbin "incbin/overlay4_data.bin", 0x1EF8, 0x1EFC - 0x1EF8
|
|
|
|
.global Unk_ov4_02217D7C
|
|
Unk_ov4_02217D7C: ; 0x02217D7C
|
|
.incbin "incbin/overlay4_data.bin", 0x1EFC, 0x1F10 - 0x1EFC
|
|
|
|
.global Unk_ov4_02217D90
|
|
Unk_ov4_02217D90: ; 0x02217D90
|
|
.incbin "incbin/overlay4_data.bin", 0x1F10, 0x1F1C - 0x1F10
|
|
|
|
.global Unk_ov4_02217D9C
|
|
Unk_ov4_02217D9C: ; 0x02217D9C
|
|
.incbin "incbin/overlay4_data.bin", 0x1F1C, 0x1F2C - 0x1F1C
|
|
|
|
.global Unk_ov4_02217DAC
|
|
Unk_ov4_02217DAC: ; 0x02217DAC
|
|
.incbin "incbin/overlay4_data.bin", 0x1F2C, 0x1F38 - 0x1F2C
|
|
|
|
.global Unk_ov4_02217DB8
|
|
Unk_ov4_02217DB8: ; 0x02217DB8
|
|
.incbin "incbin/overlay4_data.bin", 0x1F38, 0x1F44 - 0x1F38
|
|
|
|
.global Unk_ov4_02217DC4
|
|
Unk_ov4_02217DC4: ; 0x02217DC4
|
|
.incbin "incbin/overlay4_data.bin", 0x1F44, 0x29
|
|
|