mirror of
https://github.com/pret/pokeheartgold.git
synced 2024-12-01 09:00:44 +00:00
4546 lines
85 KiB
ArmAsm
4546 lines
85 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "global.inc"
|
|
|
|
.text
|
|
|
|
thumb_func_start ov00_021E5900
|
|
ov00_021E5900: ; 0x021E5900
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #8
|
|
str r0, [sp, #4]
|
|
ldr r0, _021E5AC4 ; =_0221A680
|
|
add r5, r1, #0
|
|
ldr r0, [r0]
|
|
add r4, r2, #0
|
|
str r3, [sp]
|
|
cmp r0, #0
|
|
beq _021E5918
|
|
bl GF_AssertFail
|
|
_021E5918:
|
|
ldr r1, _021E5AC8 ; =0x00001108
|
|
add r0, r5, #0
|
|
bl AllocFromHeap
|
|
ldr r2, _021E5AC8 ; =0x00001108
|
|
add r6, r0, #0
|
|
mov r1, #0
|
|
bl MI_CpuFill8
|
|
add r2, r6, #0
|
|
add r2, #0x1f
|
|
mov r0, #0x1f
|
|
bic r2, r0
|
|
ldr r1, _021E5AC4 ; =_0221A680
|
|
ldr r0, _021E5ACC ; =0x00000F7C
|
|
str r2, [r1]
|
|
str r6, [r2, r0]
|
|
ldr r6, [r1]
|
|
ldr r2, [sp, #4]
|
|
sub r3, r0, #4
|
|
str r2, [r6, r3]
|
|
add r3, r0, #0
|
|
ldr r6, [r1]
|
|
mov r2, #0
|
|
add r3, #0x28
|
|
str r2, [r6, r3]
|
|
add r3, r0, #0
|
|
ldr r6, [r1]
|
|
add r3, #0x2c
|
|
str r2, [r6, r3]
|
|
add r3, r0, #0
|
|
ldr r6, [r1]
|
|
add r3, #0x44
|
|
str r2, [r6, r3]
|
|
ldr r3, [r1]
|
|
add r0, #0xf4
|
|
str r2, [r3, r0]
|
|
ldr r0, [r1]
|
|
ldr r2, _021E5AD0 ; =0x00001084
|
|
str r5, [r0, r2]
|
|
add r0, r2, #4
|
|
ldr r3, [r1]
|
|
add r2, #8
|
|
str r5, [r3, r0]
|
|
ldr r0, [r1]
|
|
ldr r1, _021E5AD4 ; =0x00003020
|
|
str r4, [r0, r2]
|
|
add r0, r5, #0
|
|
add r1, r4, r1
|
|
bl AllocFromHeap
|
|
ldr r3, _021E5AC4 ; =_0221A680
|
|
mov r1, #0xf9
|
|
ldr r2, [r3]
|
|
lsl r1, r1, #4
|
|
str r0, [r2, r1]
|
|
add r0, r1, #0
|
|
ldr r5, [r3]
|
|
mov r2, #0
|
|
add r0, #8
|
|
str r2, [r5, r0]
|
|
ldr r0, [r3]
|
|
ldr r0, [r0, r1]
|
|
mov r1, #0x1f
|
|
add r0, #0x1f
|
|
bic r0, r1
|
|
add r1, r4, #0
|
|
bl NNS_FndCreateExpHeapEx
|
|
ldr r4, _021E5AC4 ; =_0221A680
|
|
mov r6, #0
|
|
ldr r2, [r4]
|
|
ldr r1, _021E5AD8 ; =0x00000F94
|
|
sub r7, r6, #1
|
|
str r0, [r2, r1]
|
|
add r0, r1, #0
|
|
ldr r2, [r4]
|
|
add r0, #8
|
|
str r6, [r2, r0]
|
|
ldr r0, [r4]
|
|
ldr r2, _021E5ADC ; =0x000010A4
|
|
str r6, [r0, r2]
|
|
add r0, r2, #0
|
|
ldr r3, [r4]
|
|
sub r0, #0x10
|
|
str r7, [r3, r0]
|
|
add r0, r2, #0
|
|
ldr r3, [r4]
|
|
sub r0, #0x38
|
|
str r6, [r3, r0]
|
|
add r3, r2, #0
|
|
ldr r5, [r4]
|
|
ldr r0, [sp]
|
|
sub r3, #0x28
|
|
str r0, [r5, r3]
|
|
add r0, r2, #0
|
|
ldr r3, [r4]
|
|
sub r0, #0x24
|
|
str r6, [r3, r0]
|
|
add r0, r2, #0
|
|
ldr r3, [r4]
|
|
add r0, #0x34
|
|
str r6, [r3, r0]
|
|
add r0, r2, #0
|
|
ldr r3, [r4]
|
|
sub r0, #0xc
|
|
str r7, [r3, r0]
|
|
add r3, r2, #0
|
|
ldr r5, [r4]
|
|
mov r0, #1
|
|
sub r3, #8
|
|
str r0, [r5, r3]
|
|
add r3, r2, #0
|
|
ldr r5, [r4]
|
|
add r3, #0x3a
|
|
strb r6, [r5, r3]
|
|
add r3, r2, #0
|
|
ldr r5, [r4]
|
|
add r3, #0x28
|
|
str r6, [r5, r3]
|
|
add r3, r2, #0
|
|
ldr r5, [r4]
|
|
add r3, #0x38
|
|
strb r6, [r5, r3]
|
|
add r3, r2, #0
|
|
ldr r5, [r4]
|
|
add r3, #0x39
|
|
strb r6, [r5, r3]
|
|
add r3, r2, #0
|
|
ldr r5, [r4]
|
|
add r3, #0x30
|
|
strh r0, [r5, r3]
|
|
add r3, r2, #0
|
|
ldr r5, [r4]
|
|
add r3, #0x2c
|
|
str r0, [r5, r3]
|
|
ldr r3, [r4]
|
|
add r2, #0x32
|
|
strh r0, [r3, r2]
|
|
ldr r0, [sp, #4]
|
|
cmp r0, #0
|
|
beq _021E5A66
|
|
ldr r0, [r4]
|
|
sub r1, #0x1c
|
|
ldr r0, [r0, r1]
|
|
bl sub_0202C6F4
|
|
bl sub_0202C08C
|
|
add r2, r4, #0
|
|
mov r1, #0xf1
|
|
ldr r3, [r2]
|
|
lsl r1, r1, #4
|
|
str r0, [r3, r1]
|
|
ldr r0, [r2]
|
|
add r1, #0x68
|
|
ldr r0, [r0, r1]
|
|
bl sub_0202C6F4
|
|
add r1, r6, #0
|
|
bl sub_0202C23C
|
|
add r1, r4, #0
|
|
ldr r2, [r1]
|
|
mov r1, #1
|
|
lsl r1, r1, #8
|
|
str r0, [r2, r1]
|
|
_021E5A66:
|
|
ldr r2, _021E5AC4 ; =_0221A680
|
|
ldr r1, _021E5AE0 ; =0x000010E5
|
|
ldr r0, [r2]
|
|
mov r3, #1
|
|
strb r3, [r0, r1]
|
|
mov r0, #0
|
|
ldr r3, [r2]
|
|
sub r1, #0x81
|
|
str r0, [r3, r1]
|
|
ldr r1, _021E5AE4 ; =0x00001044
|
|
add r4, r0, #0
|
|
_021E5A7C:
|
|
ldr r3, [r2]
|
|
add r3, r3, r0
|
|
add r0, r0, #1
|
|
strb r4, [r3, r1]
|
|
cmp r0, #0x20
|
|
blt _021E5A7C
|
|
bl ov00_021E700C
|
|
ldr r0, _021E5AC4 ; =_0221A680
|
|
ldr r1, [r0]
|
|
mov r0, #0xf1
|
|
lsl r0, r0, #4
|
|
ldr r0, [r1, r0]
|
|
bl DWC_CheckHasProfile
|
|
cmp r0, #0
|
|
bne _021E5AA4
|
|
add sp, #8
|
|
mov r0, #1
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021E5AA4:
|
|
ldr r0, _021E5AC4 ; =_0221A680
|
|
ldr r1, [r0]
|
|
mov r0, #0xf1
|
|
lsl r0, r0, #4
|
|
ldr r0, [r1, r0]
|
|
bl DWC_CheckValidConsole
|
|
cmp r0, #0
|
|
beq _021E5ABC
|
|
add sp, #8
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021E5ABC:
|
|
mov r0, #2
|
|
add sp, #8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_021E5AC4: .word _0221A680
|
|
_021E5AC8: .word 0x00001108
|
|
_021E5ACC: .word 0x00000F7C
|
|
_021E5AD0: .word 0x00001084
|
|
_021E5AD4: .word 0x00003020
|
|
_021E5AD8: .word 0x00000F94
|
|
_021E5ADC: .word 0x000010A4
|
|
_021E5AE0: .word 0x000010E5
|
|
_021E5AE4: .word 0x00001044
|
|
thumb_func_end ov00_021E5900
|
|
|
|
thumb_func_start ov00_021E5AE8
|
|
ov00_021E5AE8: ; 0x021E5AE8
|
|
push {r3, lr}
|
|
ldr r0, _021E5B58 ; =_0221A680
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
beq _021E5B52
|
|
bl ov00_021E7300
|
|
ldr r0, _021E5B58 ; =_0221A680
|
|
ldr r2, [r0]
|
|
ldr r0, _021E5B5C ; =0x00000F98
|
|
ldr r1, [r2, r0]
|
|
cmp r1, #0
|
|
beq _021E5B20
|
|
add r0, r0, #4
|
|
ldr r0, [r2, r0]
|
|
bl NNS_FndDestroyExpHeap
|
|
ldr r0, _021E5B58 ; =_0221A680
|
|
ldr r1, [r0]
|
|
ldr r0, _021E5B5C ; =0x00000F98
|
|
ldr r0, [r1, r0]
|
|
bl FreeToHeap
|
|
ldr r0, _021E5B58 ; =_0221A680
|
|
mov r2, #0
|
|
ldr r1, [r0]
|
|
ldr r0, _021E5B5C ; =0x00000F98
|
|
str r2, [r1, r0]
|
|
_021E5B20:
|
|
ldr r0, _021E5B58 ; =_0221A680
|
|
ldr r1, [r0]
|
|
ldr r0, _021E5B60 ; =0x00000F94
|
|
ldr r0, [r1, r0]
|
|
bl NNS_FndDestroyExpHeap
|
|
ldr r0, _021E5B58 ; =_0221A680
|
|
ldr r1, _021E5B64 ; =0x00001084
|
|
ldr r2, [r0]
|
|
ldr r0, [r2, r1]
|
|
sub r1, #0xf4
|
|
ldr r1, [r2, r1]
|
|
bl FreeToHeapExplicit
|
|
ldr r0, _021E5B58 ; =_0221A680
|
|
ldr r1, _021E5B68 ; =0x00000F7C
|
|
ldr r2, [r0]
|
|
ldr r0, _021E5B64 ; =0x00001084
|
|
ldr r1, [r2, r1]
|
|
ldr r0, [r2, r0]
|
|
bl FreeToHeapExplicit
|
|
ldr r0, _021E5B58 ; =_0221A680
|
|
mov r1, #0
|
|
str r1, [r0]
|
|
_021E5B52:
|
|
bl ov00_021EC210
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
_021E5B58: .word _0221A680
|
|
_021E5B5C: .word 0x00000F98
|
|
_021E5B60: .word 0x00000F94
|
|
_021E5B64: .word 0x00001084
|
|
_021E5B68: .word 0x00000F7C
|
|
thumb_func_end ov00_021E5AE8
|
|
|
|
thumb_func_start ov00_021E5B6C
|
|
ov00_021E5B6C: ; 0x021E5B6C
|
|
push {r3, lr}
|
|
sub sp, #0x68
|
|
ldr r0, _021E5C60 ; =_0221A680
|
|
ldr r1, [r0]
|
|
ldr r0, _021E5C64 ; =0x00001070
|
|
ldr r0, [r1, r0]
|
|
cmp r0, #4
|
|
bhi _021E5C56
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_021E5B88: ; jump table
|
|
.short _021E5B92 - _021E5B88 - 2 ; case 0
|
|
.short _021E5BC8 - _021E5B88 - 2 ; case 1
|
|
.short _021E5BF6 - _021E5B88 - 2 ; case 2
|
|
.short _021E5C46 - _021E5B88 - 2 ; case 3
|
|
.short _021E5C4C - _021E5B88 - 2 ; case 4
|
|
_021E5B92:
|
|
ldr r0, _021E5C68 ; =ov00_021E65D4
|
|
ldr r1, _021E5C6C ; =ov00_021E6638
|
|
bl ov00_021EC294
|
|
ldr r0, _021E5C60 ; =_0221A680
|
|
mov r2, #1
|
|
ldr r1, [r0]
|
|
ldr r0, _021E5C70 ; =0x00000F14
|
|
mov r3, #0x14
|
|
add r0, r1, r0
|
|
mov r1, #2
|
|
bl ov00_021EC3F0
|
|
mov r0, #2
|
|
bl ov00_021EC454
|
|
bl ov00_021EC4A4
|
|
ldr r1, _021E5C60 ; =_0221A680
|
|
ldr r0, _021E5C64 ; =0x00001070
|
|
ldr r2, [r1]
|
|
mov r3, #1
|
|
str r3, [r2, r0]
|
|
ldr r1, [r1]
|
|
mov r2, #0
|
|
add r0, #0x20
|
|
str r2, [r1, r0]
|
|
_021E5BC8:
|
|
bl ov00_021EC5B4
|
|
cmp r0, #0
|
|
beq _021E5BF0
|
|
bl ov00_021EC724
|
|
cmp r0, #4
|
|
bne _021E5BE4
|
|
ldr r0, _021E5C60 ; =_0221A680
|
|
mov r2, #2
|
|
ldr r1, [r0]
|
|
ldr r0, _021E5C64 ; =0x00001070
|
|
str r2, [r1, r0]
|
|
b _021E5BF6
|
|
_021E5BE4:
|
|
ldr r0, _021E5C60 ; =_0221A680
|
|
mov r2, #0xc
|
|
ldr r1, [r0]
|
|
ldr r0, _021E5C64 ; =0x00001070
|
|
str r2, [r1, r0]
|
|
b _021E5BF6
|
|
_021E5BF0:
|
|
bl ov00_021EC60C
|
|
b _021E5C56
|
|
_021E5BF6:
|
|
bl ov00_021E6690
|
|
cmp r0, #0
|
|
bne _021E5C5A
|
|
ldr r0, _021E5C60 ; =_0221A680
|
|
mov r2, #0xf1
|
|
ldr r1, [r0]
|
|
ldr r0, _021E5C74 ; =_0221640C
|
|
lsl r2, r2, #4
|
|
str r0, [sp]
|
|
mov r0, #0
|
|
str r0, [sp, #4]
|
|
str r0, [sp, #8]
|
|
mov r0, #1
|
|
lsl r0, r0, #8
|
|
ldr r0, [r1, r0]
|
|
ldr r3, _021E5C78 ; =_02216400
|
|
str r0, [sp, #0xc]
|
|
mov r0, #0x20
|
|
str r0, [sp, #0x10]
|
|
add r0, #0xe4
|
|
add r0, r1, r0
|
|
ldr r1, [r1, r2]
|
|
ldr r2, _021E5C7C ; =0x000029E7
|
|
bl ov00_021ED730
|
|
add r0, sp, #0x14
|
|
bl OS_GetOwnerInfo
|
|
mov r1, #0
|
|
ldr r2, _021E5C80 ; =ov00_021E61A8
|
|
add r0, sp, #0x18
|
|
add r3, r1, #0
|
|
bl ov00_021EDD6C
|
|
ldr r0, _021E5C60 ; =_0221A680
|
|
mov r2, #3
|
|
ldr r1, [r0]
|
|
ldr r0, _021E5C64 ; =0x00001070
|
|
str r2, [r1, r0]
|
|
_021E5C46:
|
|
bl ov00_021EDB1C
|
|
b _021E5C56
|
|
_021E5C4C:
|
|
bl ov00_021EDB1C
|
|
add sp, #0x68
|
|
mov r0, #0x1b
|
|
pop {r3, pc}
|
|
_021E5C56:
|
|
bl ov00_021E6690
|
|
_021E5C5A:
|
|
add sp, #0x68
|
|
pop {r3, pc}
|
|
nop
|
|
_021E5C60: .word _0221A680
|
|
_021E5C64: .word 0x00001070
|
|
_021E5C68: .word ov00_021E65D4
|
|
_021E5C6C: .word ov00_021E6638
|
|
_021E5C70: .word 0x00000F14
|
|
_021E5C74: .word _0221640C
|
|
_021E5C78: .word _02216400
|
|
_021E5C7C: .word 0x000029E7
|
|
_021E5C80: .word ov00_021E61A8
|
|
thumb_func_end ov00_021E5B6C
|
|
|
|
thumb_func_start ov00_021E5C84
|
|
ov00_021E5C84: ; 0x021E5C84
|
|
push {r3, r4}
|
|
ldr r3, _021E5C98 ; =_0221A680
|
|
ldr r2, _021E5C9C ; =0x00000FA4
|
|
ldr r4, [r3]
|
|
str r0, [r4, r2]
|
|
ldr r3, [r3]
|
|
add r0, r2, #4
|
|
str r1, [r3, r0]
|
|
pop {r3, r4}
|
|
bx lr
|
|
.balign 4, 0
|
|
_021E5C98: .word _0221A680
|
|
_021E5C9C: .word 0x00000FA4
|
|
thumb_func_end ov00_021E5C84
|
|
|
|
thumb_func_start ov00_021E5CA0
|
|
ov00_021E5CA0: ; 0x021E5CA0
|
|
push {r3, r4}
|
|
ldr r3, _021E5CB4 ; =_0221A680
|
|
ldr r2, _021E5CB8 ; =0x00000FAC
|
|
ldr r4, [r3]
|
|
str r0, [r4, r2]
|
|
ldr r3, [r3]
|
|
add r0, r2, #4
|
|
str r1, [r3, r0]
|
|
pop {r3, r4}
|
|
bx lr
|
|
.balign 4, 0
|
|
_021E5CB4: .word _0221A680
|
|
_021E5CB8: .word 0x00000FAC
|
|
thumb_func_end ov00_021E5CA0
|
|
|
|
thumb_func_start ov00_021E5CBC
|
|
ov00_021E5CBC: ; 0x021E5CBC
|
|
ldr r1, _021E5CC8 ; =_0221A680
|
|
ldr r2, [r1]
|
|
ldr r1, _021E5CCC ; =0x00000FBC
|
|
str r0, [r2, r1]
|
|
bx lr
|
|
nop
|
|
_021E5CC8: .word _0221A680
|
|
_021E5CCC: .word 0x00000FBC
|
|
thumb_func_end ov00_021E5CBC
|
|
|
|
thumb_func_start ov00_021E5CD0
|
|
ov00_021E5CD0: ; 0x021E5CD0
|
|
push {r3, r4}
|
|
ldr r3, _021E5CE4 ; =_0221A680
|
|
ldr r2, _021E5CE8 ; =0x00000FB4
|
|
ldr r4, [r3]
|
|
str r0, [r4, r2]
|
|
ldr r3, [r3]
|
|
add r0, r2, #4
|
|
str r1, [r3, r0]
|
|
pop {r3, r4}
|
|
bx lr
|
|
.balign 4, 0
|
|
_021E5CE4: .word _0221A680
|
|
_021E5CE8: .word 0x00000FB4
|
|
thumb_func_end ov00_021E5CD0
|
|
|
|
thumb_func_start ov00_021E5CEC
|
|
ov00_021E5CEC: ; 0x021E5CEC
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x10
|
|
add r5, r0, #0
|
|
ldr r0, _021E5DFC ; =_0221A680
|
|
add r4, r1, #0
|
|
ldr r0, [r0]
|
|
add r6, r2, #0
|
|
add r7, r3, #0
|
|
cmp r0, #0
|
|
bne _021E5D04
|
|
bl GF_AssertFail
|
|
_021E5D04:
|
|
ldr r0, _021E5DFC ; =_0221A680
|
|
ldr r1, [r0]
|
|
ldr r0, _021E5E00 ; =0x00001070
|
|
ldr r0, [r1, r0]
|
|
cmp r0, #4
|
|
beq _021E5D16
|
|
add sp, #0x10
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021E5D16:
|
|
bl ov00_021E7300
|
|
ldr r2, _021E5E04 ; =_0221602C
|
|
add r1, sp, #8
|
|
ldmia r2!, {r0, r2}
|
|
str r0, [sp, #8]
|
|
mov r0, #0xfa
|
|
lsl r0, r0, #2
|
|
str r2, [sp, #0xc]
|
|
mul r0, r7
|
|
str r0, [sp, #0xc]
|
|
mov r0, #0
|
|
mov r2, #8
|
|
bl ov00_021F14D4
|
|
cmp r0, #0
|
|
beq _021E5D3C
|
|
bl GF_AssertFail
|
|
_021E5D3C:
|
|
ldr r1, _021E5E08 ; =_02216414
|
|
mov r0, #0
|
|
add r2, r5, #0
|
|
bl ov00_021F13A4
|
|
cmp r0, #0
|
|
bne _021E5D4E
|
|
bl GF_AssertFail
|
|
_021E5D4E:
|
|
ldr r0, _021E5DFC ; =_0221A680
|
|
mov r2, #0x80
|
|
ldr r1, [r0]
|
|
ldr r0, _021E5E0C ; =0x00000FC4
|
|
add r0, r1, r0
|
|
mov r1, #0
|
|
bl MI_CpuFill8
|
|
ldr r0, _021E5DFC ; =_0221A680
|
|
ldr r2, _021E5E08 ; =_02216414
|
|
ldr r1, [r0]
|
|
ldr r0, _021E5E0C ; =0x00000FC4
|
|
add r3, r5, #0
|
|
add r0, r1, r0
|
|
ldr r1, _021E5E10 ; =_02216034
|
|
bl sprintf
|
|
ldr r0, _021E5DFC ; =_0221A680
|
|
ldr r1, [r0]
|
|
ldr r0, _021E5E0C ; =0x00000FC4
|
|
add r0, r1, r0
|
|
bl strlen
|
|
cmp r0, #0x80
|
|
blo _021E5D84
|
|
bl GF_AssertFail
|
|
_021E5D84:
|
|
cmp r6, #0
|
|
beq _021E5D98
|
|
ldr r0, _021E5DFC ; =_0221A680
|
|
ldr r2, _021E5E0C ; =0x00000FC4
|
|
ldr r3, [r0]
|
|
mov r0, #1
|
|
add r1, r3, r2
|
|
add r2, r3, r2
|
|
bl ov00_021F13A4
|
|
_021E5D98:
|
|
ldr r2, _021E5DFC ; =_0221A680
|
|
ldr r1, _021E5E00 ; =0x00001070
|
|
ldr r0, [r2]
|
|
mov r3, #5
|
|
str r3, [r0, r1]
|
|
add r0, r1, #0
|
|
ldr r3, [r2]
|
|
add r0, #0xc
|
|
str r4, [r3, r0]
|
|
ldr r0, _021E5E14 ; =ov00_021E6424
|
|
mov r3, #0
|
|
str r0, [sp]
|
|
str r3, [sp, #4]
|
|
lsl r0, r4, #0x18
|
|
ldr r2, [r2]
|
|
sub r1, #0xac
|
|
add r1, r2, r1
|
|
ldr r2, _021E5E18 ; =ov00_021E63CC
|
|
lsr r0, r0, #0x18
|
|
bl ov00_021EDF1C
|
|
ldr r0, _021E5DFC ; =_0221A680
|
|
mov r2, #0
|
|
ldr r1, [r0]
|
|
ldr r0, _021E5E1C ; =0x00001074
|
|
str r2, [r1, r0]
|
|
ldr r0, _021E5E20 ; =ov00_021E6428
|
|
bl ov00_021F989C
|
|
ldr r0, _021E5E24 ; =ov00_021E6484
|
|
bl ov00_021F98BC
|
|
ldr r0, _021E5E28 ; =ov00_021E6554
|
|
mov r1, #0
|
|
bl ov00_021EE24C
|
|
ldr r0, _021E5E2C ; =ov00_021E6240
|
|
bl ov00_021F98DC
|
|
ldr r2, _021E5DFC ; =_0221A680
|
|
ldr r1, _021E5E30 ; =0x00001078
|
|
ldr r0, [r2]
|
|
mov r3, #0
|
|
str r3, [r0, r1]
|
|
ldr r2, [r2]
|
|
mov r0, #1
|
|
add r1, #0x6d
|
|
strb r0, [r2, r1]
|
|
add sp, #0x10
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_021E5DFC: .word _0221A680
|
|
_021E5E00: .word 0x00001070
|
|
_021E5E04: .word _0221602C
|
|
_021E5E08: .word _02216414
|
|
_021E5E0C: .word 0x00000FC4
|
|
_021E5E10: .word _02216034
|
|
_021E5E14: .word ov00_021E6424
|
|
_021E5E18: .word ov00_021E63CC
|
|
_021E5E1C: .word 0x00001074
|
|
_021E5E20: .word ov00_021E6428
|
|
_021E5E24: .word ov00_021E6484
|
|
_021E5E28: .word ov00_021E6554
|
|
_021E5E2C: .word ov00_021E6240
|
|
_021E5E30: .word 0x00001078
|
|
thumb_func_end ov00_021E5CEC
|
|
|
|
thumb_func_start ov00_021E5E34
|
|
ov00_021E5E34: ; 0x021E5E34
|
|
ldr r0, _021E5E4C ; =_0221A680
|
|
ldr r2, [r0]
|
|
ldr r0, _021E5E50 ; =0x00001070
|
|
ldr r1, [r2, r0]
|
|
cmp r1, #0xa
|
|
bne _021E5E46
|
|
mov r1, #0xb
|
|
str r1, [r2, r0]
|
|
bx lr
|
|
_021E5E46:
|
|
mov r1, #9
|
|
str r1, [r2, r0]
|
|
bx lr
|
|
.balign 4, 0
|
|
_021E5E4C: .word _0221A680
|
|
_021E5E50: .word 0x00001070
|
|
thumb_func_end ov00_021E5E34
|
|
|
|
thumb_func_start ov00_021E5E54
|
|
ov00_021E5E54: ; 0x021E5E54
|
|
push {r4, lr}
|
|
ldr r2, _021E5F70 ; =_0221A680
|
|
ldr r1, _021E5F74 ; =0x00001070
|
|
ldr r3, [r2]
|
|
ldr r4, [r3, r1]
|
|
cmp r4, #0x10
|
|
bls _021E5E64
|
|
b _021E5F68
|
|
_021E5E64:
|
|
add r4, r4, r4
|
|
add r4, pc
|
|
ldrh r4, [r4, #6]
|
|
lsl r4, r4, #0x10
|
|
asr r4, r4, #0x10
|
|
add pc, r4
|
|
_021E5E70: ; jump table
|
|
.short _021E5F68 - _021E5E70 - 2 ; case 0
|
|
.short _021E5F68 - _021E5E70 - 2 ; case 1
|
|
.short _021E5F68 - _021E5E70 - 2 ; case 2
|
|
.short _021E5F68 - _021E5E70 - 2 ; case 3
|
|
.short _021E5F68 - _021E5E70 - 2 ; case 4
|
|
.short _021E5E92 - _021E5E70 - 2 ; case 5
|
|
.short _021E5EC4 - _021E5E70 - 2 ; case 6
|
|
.short _021E5EDC - _021E5E70 - 2 ; case 7
|
|
.short _021E5F68 - _021E5E70 - 2 ; case 8
|
|
.short _021E5F18 - _021E5E70 - 2 ; case 9
|
|
.short _021E5EC4 - _021E5E70 - 2 ; case 10
|
|
.short _021E5F32 - _021E5E70 - 2 ; case 11
|
|
.short _021E5F4C - _021E5E70 - 2 ; case 12
|
|
.short _021E5F68 - _021E5E70 - 2 ; case 13
|
|
.short _021E5F68 - _021E5E70 - 2 ; case 14
|
|
.short _021E5F68 - _021E5E70 - 2 ; case 15
|
|
.short _021E5F52 - _021E5E70 - 2 ; case 16
|
|
_021E5E92:
|
|
cmp r0, #0
|
|
beq _021E5E9A
|
|
mov r0, #6
|
|
str r0, [r3, r1]
|
|
_021E5E9A:
|
|
ldr r0, _021E5F70 ; =_0221A680
|
|
ldr r2, _021E5F78 ; =0x00001074
|
|
ldr r0, [r0]
|
|
ldr r1, [r0, r2]
|
|
cmp r1, #2
|
|
bne _021E5F68
|
|
add r1, r2, #0
|
|
add r1, #0x20
|
|
ldr r1, [r0, r1]
|
|
cmp r1, #0
|
|
blt _021E5F68
|
|
add r3, r0, r1
|
|
add r1, r2, #0
|
|
sub r1, #0x30
|
|
ldrb r1, [r3, r1]
|
|
cmp r1, #6
|
|
beq _021E5F68
|
|
mov r3, #0xa
|
|
sub r1, r2, #4
|
|
str r3, [r0, r1]
|
|
b _021E5F68
|
|
_021E5EC4:
|
|
add r0, r1, #4
|
|
ldr r0, [r3, r0]
|
|
cmp r0, #0
|
|
bne _021E5ED2
|
|
bl ov00_021F1284
|
|
b _021E5F68
|
|
_021E5ED2:
|
|
bl ov00_021EE278
|
|
bl ov00_021E5E34
|
|
b _021E5F68
|
|
_021E5EDC:
|
|
bl sub_0203993C
|
|
bl sub_02034084
|
|
cmp r0, #0
|
|
bne _021E5EF4
|
|
ldr r0, _021E5F70 ; =_0221A680
|
|
ldr r1, [r0]
|
|
ldr r0, _021E5F7C ; =0x00001084
|
|
ldr r0, [r1, r0]
|
|
bl ov00_021E69A8
|
|
_021E5EF4:
|
|
ldr r0, _021E5F70 ; =_0221A680
|
|
ldr r2, [r0]
|
|
ldr r0, _021E5F80 ; =0x0000109C
|
|
ldr r1, [r2, r0]
|
|
cmp r1, #0
|
|
beq _021E5F04
|
|
mov r1, #1
|
|
b _021E5F06
|
|
_021E5F04:
|
|
mov r1, #0
|
|
_021E5F06:
|
|
add r0, #0x38
|
|
strh r1, [r2, r0]
|
|
ldr r0, _021E5F70 ; =_0221A680
|
|
mov r2, #8
|
|
ldr r1, [r0]
|
|
ldr r0, _021E5F74 ; =0x00001070
|
|
str r2, [r1, r0]
|
|
mov r0, #0x14
|
|
pop {r4, pc}
|
|
_021E5F18:
|
|
mov r0, #4
|
|
str r0, [r3, r1]
|
|
add r0, r1, #0
|
|
ldr r3, [r2]
|
|
mov r4, #0
|
|
add r0, #8
|
|
str r4, [r3, r0]
|
|
ldr r0, [r2]
|
|
sub r3, r4, #1
|
|
add r1, #0x28
|
|
str r3, [r0, r1]
|
|
mov r0, #0x15
|
|
pop {r4, pc}
|
|
_021E5F32:
|
|
mov r0, #4
|
|
str r0, [r3, r1]
|
|
add r0, r1, #0
|
|
ldr r3, [r2]
|
|
mov r4, #0
|
|
add r0, #8
|
|
str r4, [r3, r0]
|
|
ldr r0, [r2]
|
|
sub r3, r4, #1
|
|
add r1, #0x28
|
|
str r3, [r0, r1]
|
|
mov r0, #0x16
|
|
pop {r4, pc}
|
|
_021E5F4C:
|
|
bl ov00_021E6690
|
|
pop {r4, pc}
|
|
_021E5F52:
|
|
add r1, #0x20
|
|
ldr r0, [r3, r1]
|
|
cmp r0, #0
|
|
bne _021E5F68
|
|
bl ov00_021EE278
|
|
ldr r0, _021E5F70 ; =_0221A680
|
|
mov r2, #0x11
|
|
ldr r1, [r0]
|
|
ldr r0, _021E5F74 ; =0x00001070
|
|
str r2, [r1, r0]
|
|
_021E5F68:
|
|
bl ov00_021E6850
|
|
pop {r4, pc}
|
|
nop
|
|
_021E5F70: .word _0221A680
|
|
_021E5F74: .word 0x00001070
|
|
_021E5F78: .word 0x00001074
|
|
_021E5F7C: .word 0x00001084
|
|
_021E5F80: .word 0x0000109C
|
|
thumb_func_end ov00_021E5E54
|
|
|
|
thumb_func_start ov00_021E5F84
|
|
ov00_021E5F84: ; 0x021E5F84
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
mov r0, #1
|
|
add r4, r1, #0
|
|
lsl r0, r0, #8
|
|
cmp r4, r0
|
|
blt _021E5F96
|
|
mov r0, #0
|
|
pop {r4, r5, r6, pc}
|
|
_021E5F96:
|
|
bl ov00_021EE490
|
|
cmp r0, #0
|
|
bne _021E5FB8
|
|
ldr r0, _021E601C ; =_0221A680
|
|
ldr r1, [r0]
|
|
ldr r0, _021E6020 ; =0x00000FA4
|
|
ldr r3, [r1, r0]
|
|
cmp r3, #0
|
|
beq _021E5FB4
|
|
lsl r2, r4, #0x10
|
|
mov r0, #0
|
|
add r1, r5, #0
|
|
lsr r2, r2, #0x10
|
|
blx r3
|
|
_021E5FB4:
|
|
mov r0, #1
|
|
pop {r4, r5, r6, pc}
|
|
_021E5FB8:
|
|
ldr r0, _021E601C ; =_0221A680
|
|
ldr r1, [r0]
|
|
ldr r0, _021E6024 ; =0x00001078
|
|
ldr r0, [r1, r0]
|
|
cmp r0, #0
|
|
bne _021E5FCC
|
|
bl ov00_021E6790
|
|
cmp r0, #0
|
|
bne _021E5FD0
|
|
_021E5FCC:
|
|
mov r0, #0
|
|
pop {r4, r5, r6, pc}
|
|
_021E5FD0:
|
|
ldr r1, _021E601C ; =_0221A680
|
|
ldr r0, _021E6028 ; =0x000010D4
|
|
ldr r2, [r1]
|
|
ldrh r3, [r2, r0]
|
|
lsl r6, r3, #8
|
|
mov r3, #1
|
|
orr r3, r6
|
|
str r3, [r2]
|
|
add r3, r0, #0
|
|
ldr r2, [r1]
|
|
add r3, #8
|
|
ldrb r3, [r2, r3]
|
|
add r6, r3, #1
|
|
add r3, r0, #0
|
|
add r3, #8
|
|
strb r6, [r2, r3]
|
|
ldr r2, [r1]
|
|
add r0, #8
|
|
ldrb r0, [r2, r0]
|
|
strb r0, [r2, #2]
|
|
ldr r1, [r1]
|
|
add r0, r5, #0
|
|
add r1, r1, #4
|
|
add r2, r4, #0
|
|
bl MI_CpuCopy8
|
|
ldr r2, _021E601C ; =_0221A680
|
|
ldr r1, _021E6024 ; =0x00001078
|
|
ldr r3, [r2]
|
|
mov r0, #1
|
|
str r0, [r3, r1]
|
|
ldr r1, [r2]
|
|
add r2, r4, #4
|
|
bl ov00_021F9750
|
|
mov r0, #1
|
|
pop {r4, r5, r6, pc}
|
|
nop
|
|
_021E601C: .word _0221A680
|
|
_021E6020: .word 0x00000FA4
|
|
_021E6024: .word 0x00001078
|
|
_021E6028: .word 0x000010D4
|
|
thumb_func_end ov00_021E5F84
|
|
|
|
thumb_func_start ov00_021E602C
|
|
ov00_021E602C: ; 0x021E602C
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
mov r0, #1
|
|
add r4, r1, #0
|
|
lsl r0, r0, #8
|
|
cmp r4, r0
|
|
blt _021E603E
|
|
mov r0, #0
|
|
pop {r4, r5, r6, pc}
|
|
_021E603E:
|
|
bl ov00_021EE490
|
|
cmp r0, #0
|
|
beq _021E604A
|
|
mov r0, #0
|
|
pop {r4, r5, r6, pc}
|
|
_021E604A:
|
|
ldr r0, _021E60D8 ; =_0221A680
|
|
ldr r1, [r0]
|
|
ldr r0, _021E60DC ; =0x00001078
|
|
ldr r0, [r1, r0]
|
|
cmp r0, #0
|
|
bne _021E605E
|
|
bl ov00_021E6790
|
|
cmp r0, #0
|
|
bne _021E6062
|
|
_021E605E:
|
|
mov r0, #0
|
|
pop {r4, r5, r6, pc}
|
|
_021E6062:
|
|
ldr r1, _021E60D8 ; =_0221A680
|
|
ldr r0, _021E60E0 ; =0x000010D4
|
|
ldr r2, [r1]
|
|
ldrh r3, [r2, r0]
|
|
lsl r6, r3, #8
|
|
mov r3, #1
|
|
orr r3, r6
|
|
str r3, [r2]
|
|
add r3, r0, #0
|
|
ldr r2, [r1]
|
|
add r3, #8
|
|
ldrb r3, [r2, r3]
|
|
add r6, r3, #1
|
|
add r3, r0, #0
|
|
add r3, #8
|
|
strb r6, [r2, r3]
|
|
ldr r2, [r1]
|
|
add r0, #8
|
|
ldrb r0, [r2, r0]
|
|
strb r0, [r2, #2]
|
|
ldr r1, [r1]
|
|
add r0, r5, #0
|
|
add r1, r1, #4
|
|
add r2, r4, #0
|
|
bl MI_CpuCopy8
|
|
ldr r0, _021E60D8 ; =_0221A680
|
|
mov r2, #1
|
|
ldr r1, [r0]
|
|
ldr r0, _021E60DC ; =0x00001078
|
|
str r2, [r1, r0]
|
|
bl ov00_021EE4FC
|
|
ldr r1, _021E60D8 ; =_0221A680
|
|
add r2, r4, #4
|
|
ldr r1, [r1]
|
|
bl ov00_021F9750
|
|
cmp r0, #0
|
|
bne _021E60BE
|
|
ldr r1, _021E60D8 ; =_0221A680
|
|
mov r0, #0
|
|
ldr r2, [r1]
|
|
ldr r1, _021E60DC ; =0x00001078
|
|
str r0, [r2, r1]
|
|
pop {r4, r5, r6, pc}
|
|
_021E60BE:
|
|
ldr r0, _021E60D8 ; =_0221A680
|
|
ldr r1, [r0]
|
|
ldr r0, _021E60E4 ; =0x00000FA8
|
|
ldr r3, [r1, r0]
|
|
cmp r3, #0
|
|
beq _021E60D4
|
|
lsl r2, r4, #0x10
|
|
mov r0, #0
|
|
add r1, r5, #0
|
|
lsr r2, r2, #0x10
|
|
blx r3
|
|
_021E60D4:
|
|
mov r0, #1
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_021E60D8: .word _0221A680
|
|
_021E60DC: .word 0x00001078
|
|
_021E60E0: .word 0x000010D4
|
|
_021E60E4: .word 0x00000FA8
|
|
thumb_func_end ov00_021E602C
|
|
|
|
thumb_func_start ov00_021E60E8
|
|
ov00_021E60E8: ; 0x021E60E8
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
mov r0, #1
|
|
add r4, r1, #0
|
|
lsl r0, r0, #8
|
|
cmp r4, r0
|
|
blt _021E60FA
|
|
mov r0, #0
|
|
pop {r4, r5, r6, pc}
|
|
_021E60FA:
|
|
ldr r0, _021E6198 ; =_0221A680
|
|
ldr r1, [r0]
|
|
ldr r0, _021E619C ; =0x00001078
|
|
ldr r0, [r1, r0]
|
|
cmp r0, #0
|
|
bne _021E610E
|
|
bl ov00_021E6790
|
|
cmp r0, #0
|
|
bne _021E6112
|
|
_021E610E:
|
|
mov r0, #0
|
|
pop {r4, r5, r6, pc}
|
|
_021E6112:
|
|
ldr r1, _021E6198 ; =_0221A680
|
|
ldr r0, _021E61A0 ; =0x000010D4
|
|
ldr r2, [r1]
|
|
ldrh r3, [r2, r0]
|
|
lsl r6, r3, #8
|
|
mov r3, #1
|
|
orr r3, r6
|
|
str r3, [r2]
|
|
add r3, r0, #0
|
|
ldr r2, [r1]
|
|
add r3, #8
|
|
ldrb r3, [r2, r3]
|
|
add r6, r3, #1
|
|
add r3, r0, #0
|
|
add r3, #8
|
|
strb r6, [r2, r3]
|
|
ldr r2, [r1]
|
|
add r0, #8
|
|
ldrb r0, [r2, r0]
|
|
strb r0, [r2, #2]
|
|
ldr r1, [r1]
|
|
add r0, r5, #0
|
|
add r1, r1, #4
|
|
add r2, r4, #0
|
|
bl MI_CpuCopy8
|
|
ldr r0, _021E6198 ; =_0221A680
|
|
mov r2, #1
|
|
ldr r1, [r0]
|
|
ldr r0, _021E619C ; =0x00001078
|
|
str r2, [r1, r0]
|
|
bl ov00_021EE4FC
|
|
ldr r1, _021E6198 ; =_0221A680
|
|
lsl r0, r0, #0x10
|
|
lsr r6, r0, #0x10
|
|
ldr r1, [r1]
|
|
add r0, r6, #0
|
|
add r2, r4, #4
|
|
bl ov00_021F9750
|
|
cmp r6, r0
|
|
beq _021E6174
|
|
ldr r1, _021E6198 ; =_0221A680
|
|
mov r0, #0
|
|
ldr r2, [r1]
|
|
ldr r1, _021E619C ; =0x00001078
|
|
str r0, [r2, r1]
|
|
pop {r4, r5, r6, pc}
|
|
_021E6174:
|
|
ldr r0, _021E6198 ; =_0221A680
|
|
ldr r1, [r0]
|
|
ldr r0, _021E61A4 ; =0x00000FA8
|
|
ldr r0, [r1, r0]
|
|
cmp r0, #0
|
|
beq _021E6194
|
|
bl ov00_021EE490
|
|
lsl r2, r4, #0x10
|
|
ldr r3, _021E6198 ; =_0221A680
|
|
add r1, r5, #0
|
|
ldr r4, [r3]
|
|
ldr r3, _021E61A4 ; =0x00000FA8
|
|
lsr r2, r2, #0x10
|
|
ldr r3, [r4, r3]
|
|
blx r3
|
|
_021E6194:
|
|
mov r0, #1
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_021E6198: .word _0221A680
|
|
_021E619C: .word 0x00001078
|
|
_021E61A0: .word 0x000010D4
|
|
_021E61A4: .word 0x00000FA8
|
|
thumb_func_end ov00_021E60E8
|
|
|
|
thumb_func_start ov00_021E61A8
|
|
ov00_021E61A8: ; 0x021E61A8
|
|
push {r4, r5, lr}
|
|
sub sp, #0xc
|
|
add r5, r0, #0
|
|
ldr r0, _021E6224 ; =_0221A680
|
|
add r4, r2, #0
|
|
ldr r1, [r0]
|
|
mov r0, #0xf1
|
|
lsl r0, r0, #4
|
|
ldr r0, [r1, r0]
|
|
bl DWC_CheckDirtyFlag
|
|
cmp r0, #0
|
|
beq _021E61DA
|
|
ldr r0, _021E6224 ; =_0221A680
|
|
ldr r1, [r0]
|
|
mov r0, #0xf1
|
|
lsl r0, r0, #4
|
|
ldr r0, [r1, r0]
|
|
bl DWC_ClearDirtyFlag
|
|
ldr r0, _021E6224 ; =_0221A680
|
|
mov r2, #1
|
|
ldr r1, [r0]
|
|
ldr r0, _021E6228 ; =0x000010E6
|
|
strb r2, [r1, r0]
|
|
_021E61DA:
|
|
cmp r5, #0
|
|
bne _021E6214
|
|
ldr r0, _021E622C ; =ov00_021E629C
|
|
str r4, [sp]
|
|
str r0, [sp, #4]
|
|
ldr r2, _021E6224 ; =_0221A680
|
|
str r4, [sp, #8]
|
|
ldr r3, [r2]
|
|
mov r2, #0xf1
|
|
lsl r2, r2, #4
|
|
ldr r2, [r3, r2]
|
|
ldr r1, _021E6230 ; =ov00_021E6274
|
|
ldr r3, _021E6234 ; =ov00_021E6298
|
|
mov r0, #0
|
|
bl ov00_021EDE74
|
|
cmp r0, #0
|
|
bne _021E6208
|
|
mov r0, #1
|
|
bl sub_02039AD8
|
|
add sp, #0xc
|
|
pop {r4, r5, pc}
|
|
_021E6208:
|
|
ldr r0, _021E6238 ; =ov00_021E62D4
|
|
mov r1, #0
|
|
bl ov00_021EFF04
|
|
add sp, #0xc
|
|
pop {r4, r5, pc}
|
|
_021E6214:
|
|
ldr r0, _021E6224 ; =_0221A680
|
|
mov r2, #0xc
|
|
ldr r1, [r0]
|
|
ldr r0, _021E623C ; =0x00001070
|
|
str r2, [r1, r0]
|
|
add sp, #0xc
|
|
pop {r4, r5, pc}
|
|
nop
|
|
_021E6224: .word _0221A680
|
|
_021E6228: .word 0x000010E6
|
|
_021E622C: .word ov00_021E629C
|
|
_021E6230: .word ov00_021E6274
|
|
_021E6234: .word ov00_021E6298
|
|
_021E6238: .word ov00_021E62D4
|
|
_021E623C: .word 0x00001070
|
|
thumb_func_end ov00_021E61A8
|
|
|
|
thumb_func_start ov00_021E6240
|
|
ov00_021E6240: ; 0x021E6240
|
|
push {r3, lr}
|
|
ldr r0, _021E6268 ; =_0221A680
|
|
ldr r1, [r0]
|
|
ldr r0, _021E626C ; =0x000010A8
|
|
ldr r0, [r1, r0]
|
|
cmp r0, #0
|
|
beq _021E6266
|
|
bl ov00_021EE278
|
|
ldr r1, _021E6268 ; =_0221A680
|
|
mov r3, #0
|
|
ldr r2, [r1]
|
|
ldr r0, _021E6270 ; =0x00001098
|
|
mvn r3, r3
|
|
str r3, [r2, r0]
|
|
ldr r1, [r1]
|
|
mov r2, #0x12
|
|
sub r0, #0x28
|
|
str r2, [r1, r0]
|
|
_021E6266:
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
_021E6268: .word _0221A680
|
|
_021E626C: .word 0x000010A8
|
|
_021E6270: .word 0x00001098
|
|
thumb_func_end ov00_021E6240
|
|
|
|
thumb_func_start ov00_021E6274
|
|
ov00_021E6274: ; 0x021E6274
|
|
cmp r0, #0
|
|
bne _021E6284
|
|
ldr r0, _021E6290 ; =_0221A680
|
|
mov r2, #4
|
|
ldr r1, [r0]
|
|
ldr r0, _021E6294 ; =0x00001070
|
|
str r2, [r1, r0]
|
|
bx lr
|
|
_021E6284:
|
|
ldr r0, _021E6290 ; =_0221A680
|
|
mov r2, #0xc
|
|
ldr r1, [r0]
|
|
ldr r0, _021E6294 ; =0x00001070
|
|
str r2, [r1, r0]
|
|
bx lr
|
|
.balign 4, 0
|
|
_021E6290: .word _0221A680
|
|
_021E6294: .word 0x00001070
|
|
thumb_func_end ov00_021E6274
|
|
|
|
thumb_func_start ov00_021E6298
|
|
ov00_021E6298: ; 0x021E6298
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov00_021E6298
|
|
|
|
thumb_func_start ov00_021E629C
|
|
ov00_021E629C: ; 0x021E629C
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
ldr r0, _021E62CC ; =_0221A680
|
|
add r4, r1, #0
|
|
ldr r1, [r0]
|
|
ldr r0, _021E62D0 ; =0x00000F78
|
|
ldr r0, [r1, r0]
|
|
bl sub_0202C6F4
|
|
add r1, r5, #0
|
|
add r2, r4, #0
|
|
bl sub_0202C5E4
|
|
ldr r0, _021E62CC ; =_0221A680
|
|
ldr r1, [r0]
|
|
ldr r0, _021E62D0 ; =0x00000F78
|
|
ldr r0, [r1, r0]
|
|
bl sub_0203107C
|
|
add r1, r5, #0
|
|
add r2, r4, #0
|
|
bl sub_02031214
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_021E62CC: .word _0221A680
|
|
_021E62D0: .word 0x00000F78
|
|
thumb_func_end ov00_021E629C
|
|
|
|
thumb_func_start ov00_021E62D4
|
|
ov00_021E62D4: ; 0x021E62D4
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov00_021E62D4
|
|
|
|
thumb_func_start ov00_021E62D8
|
|
ov00_021E62D8: ; 0x021E62D8
|
|
ldr r0, _021E62E8 ; =_0221A680
|
|
ldr r3, _021E62EC ; =MI_CpuFill8
|
|
ldr r1, [r0]
|
|
ldr r0, _021E62F0 ; =0x000010AC
|
|
mov r2, #0x20
|
|
add r0, r1, r0
|
|
mov r1, #0
|
|
bx r3
|
|
.balign 4, 0
|
|
_021E62E8: .word _0221A680
|
|
_021E62EC: .word MI_CpuFill8
|
|
_021E62F0: .word 0x000010AC
|
|
thumb_func_end ov00_021E62D8
|
|
|
|
thumb_func_start ov00_021E62F4
|
|
ov00_021E62F4: ; 0x021E62F4
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
mov r5, #0
|
|
add r4, r5, #0
|
|
_021E62FA:
|
|
lsl r0, r5, #0x18
|
|
lsr r0, r0, #0x18
|
|
add r1, r4, #0
|
|
bl ov00_021F9988
|
|
add r5, r5, #1
|
|
cmp r5, #4
|
|
blt _021E62FA
|
|
bl ov00_021EE490
|
|
cmp r0, #0
|
|
bne _021E6356
|
|
ldr r6, _021E6378 ; =_0221A680
|
|
ldr r0, _021E637C ; =0x0000107C
|
|
ldr r1, [r6]
|
|
mov r5, #0
|
|
ldr r0, [r1, r0]
|
|
cmp r0, #0
|
|
ble _021E6366
|
|
ldr r7, _021E637C ; =0x0000107C
|
|
mov r4, #1
|
|
_021E6324:
|
|
bl ov00_021EE490
|
|
cmp r5, r0
|
|
beq _021E634A
|
|
bl ov00_021EE4FC
|
|
add r1, r4, #0
|
|
lsl r1, r5
|
|
tst r0, r1
|
|
beq _021E634A
|
|
lsl r0, r5, #0x18
|
|
ldr r1, _021E6380 ; =0x00002710
|
|
lsr r0, r0, #0x18
|
|
bl ov00_021F9988
|
|
cmp r0, #0
|
|
bne _021E634A
|
|
bl GF_AssertFail
|
|
_021E634A:
|
|
ldr r0, [r6]
|
|
add r5, r5, #1
|
|
ldr r0, [r0, r7]
|
|
cmp r5, r0
|
|
blt _021E6324
|
|
b _021E6366
|
|
_021E6356:
|
|
ldr r1, _021E6380 ; =0x00002710
|
|
mov r0, #0
|
|
bl ov00_021F9988
|
|
cmp r0, #0
|
|
bne _021E6366
|
|
bl GF_AssertFail
|
|
_021E6366:
|
|
ldr r0, _021E6378 ; =_0221A680
|
|
mov r2, #1
|
|
ldr r1, [r0]
|
|
ldr r0, _021E6384 ; =0x000010A8
|
|
str r2, [r1, r0]
|
|
bl ov00_021E62D8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_021E6378: .word _0221A680
|
|
_021E637C: .word 0x0000107C
|
|
_021E6380: .word 0x00002710
|
|
_021E6384: .word 0x000010A8
|
|
thumb_func_end ov00_021E62F4
|
|
|
|
thumb_func_start ov00_021E6388
|
|
ov00_021E6388: ; 0x021E6388
|
|
push {r4, r5, r6, lr}
|
|
ldr r4, _021E63C0 ; =_0221A680
|
|
ldr r0, _021E63C4 ; =0x00001070
|
|
ldr r1, [r4]
|
|
mov r2, #7
|
|
str r2, [r1, r0]
|
|
ldr r1, [r4]
|
|
add r0, #0xc
|
|
ldr r0, [r1, r0]
|
|
mov r5, #0
|
|
cmp r0, #0
|
|
ble _021E63BA
|
|
ldr r6, _021E63C8 ; =0x0000107C
|
|
_021E63A2:
|
|
bl ov00_021EE490
|
|
cmp r5, r0
|
|
beq _021E63B0
|
|
add r0, r5, #0
|
|
bl ov00_021E727C
|
|
_021E63B0:
|
|
ldr r0, [r4]
|
|
add r5, r5, #1
|
|
ldr r0, [r0, r6]
|
|
cmp r5, r0
|
|
blt _021E63A2
|
|
_021E63BA:
|
|
bl ov00_021E62F4
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_021E63C0: .word _0221A680
|
|
_021E63C4: .word 0x00001070
|
|
_021E63C8: .word 0x0000107C
|
|
thumb_func_end ov00_021E6388
|
|
|
|
thumb_func_start ov00_021E63CC
|
|
ov00_021E63CC: ; 0x021E63CC
|
|
push {r4, lr}
|
|
cmp r0, #0
|
|
bne _021E63EA
|
|
cmp r1, #0
|
|
bne _021E63E4
|
|
bl ov00_021EE490
|
|
mov r1, #1
|
|
sub r0, r1, r0
|
|
bl ov00_021E6388
|
|
b _021E63F4
|
|
_021E63E4:
|
|
bl ov00_021E5E34
|
|
b _021E63F4
|
|
_021E63EA:
|
|
ldr r0, _021E6414 ; =_0221A680
|
|
mov r2, #0xc
|
|
ldr r1, [r0]
|
|
ldr r0, _021E6418 ; =0x00001070
|
|
str r2, [r1, r0]
|
|
_021E63F4:
|
|
ldr r0, _021E6414 ; =_0221A680
|
|
ldr r4, [r0]
|
|
ldr r0, _021E641C ; =0x00000FB4
|
|
ldr r0, [r4, r0]
|
|
cmp r0, #0
|
|
beq _021E6412
|
|
bl ov00_021EE490
|
|
ldr r3, _021E6414 ; =_0221A680
|
|
ldr r2, _021E6420 ; =0x00000FB8
|
|
ldr r3, [r3]
|
|
ldr r1, [r4, r2]
|
|
sub r2, r2, #4
|
|
ldr r2, [r3, r2]
|
|
blx r2
|
|
_021E6412:
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_021E6414: .word _0221A680
|
|
_021E6418: .word 0x00001070
|
|
_021E641C: .word 0x00000FB4
|
|
_021E6420: .word 0x00000FB8
|
|
thumb_func_end ov00_021E63CC
|
|
|
|
thumb_func_start ov00_021E6424
|
|
ov00_021E6424: ; 0x021E6424
|
|
mov r0, #1
|
|
bx lr
|
|
thumb_func_end ov00_021E6424
|
|
|
|
thumb_func_start ov00_021E6428
|
|
ov00_021E6428: ; 0x021E6428
|
|
push {r3, r4}
|
|
ldr r2, _021E6444 ; =_0221A680
|
|
ldr r0, _021E6448 ; =0x00001078
|
|
ldr r3, [r2]
|
|
mov r4, #0
|
|
str r4, [r3, r0]
|
|
ldr r2, [r2]
|
|
lsl r1, r1, #2
|
|
add r1, r2, r1
|
|
add r0, #0x34
|
|
str r4, [r1, r0]
|
|
pop {r3, r4}
|
|
bx lr
|
|
nop
|
|
_021E6444: .word _0221A680
|
|
_021E6448: .word 0x00001078
|
|
thumb_func_end ov00_021E6428
|
|
|
|
thumb_func_start ov00_021E644C
|
|
ov00_021E644C: ; 0x021E644C
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bl sub_0203993C
|
|
bl sub_02034084
|
|
cmp r0, #0
|
|
bne _021E647A
|
|
mov r0, #1
|
|
lsl r0, r0, #8
|
|
tst r0, r4
|
|
beq _021E6470
|
|
ldr r0, _021E647C ; =_0221A680
|
|
mov r2, #1
|
|
ldr r1, [r0]
|
|
ldr r0, _021E6480 ; =0x000010D0
|
|
str r2, [r1, r0]
|
|
pop {r4, pc}
|
|
_021E6470:
|
|
ldr r0, _021E647C ; =_0221A680
|
|
mov r2, #0
|
|
ldr r1, [r0]
|
|
ldr r0, _021E6480 ; =0x000010D0
|
|
str r2, [r1, r0]
|
|
_021E647A:
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_021E647C: .word _0221A680
|
|
_021E6480: .word 0x000010D0
|
|
thumb_func_end ov00_021E644C
|
|
|
|
thumb_func_start ov00_021E6484
|
|
ov00_021E6484: ; 0x021E6484
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #8
|
|
str r0, [sp]
|
|
add r4, r1, #0
|
|
ldrb r3, [r4, #1]
|
|
ldrb r6, [r4]
|
|
add r7, r2, #0
|
|
lsl r3, r3, #8
|
|
mov ip, r3
|
|
ldrb r3, [r4, #3]
|
|
lsl r5, r3, #0x18
|
|
ldrb r3, [r4, #2]
|
|
lsl r3, r3, #0x10
|
|
orr r3, r5
|
|
mov r5, ip
|
|
orr r3, r5
|
|
orr r3, r6
|
|
str r3, [sp, #4]
|
|
ldr r3, _021E6544 ; =_0221A680
|
|
ldr r5, _021E6548 ; =0x000010A8
|
|
ldr r6, [r3]
|
|
mov r3, #1
|
|
str r3, [r6, r5]
|
|
ldr r3, [sp, #4]
|
|
lsl r3, r3, #0x18
|
|
lsr r3, r3, #0x18
|
|
cmp r3, #1
|
|
bne _021E64D0
|
|
ldr r0, [sp, #4]
|
|
bl ov00_021E644C
|
|
ldr r0, _021E6544 ; =_0221A680
|
|
ldrb r2, [r4, #2]
|
|
ldr r1, [r0]
|
|
add r0, r5, #0
|
|
add r0, #0x35
|
|
strb r2, [r1, r0]
|
|
b _021E64E2
|
|
_021E64D0:
|
|
bl ov00_021E77A4
|
|
cmp r0, #0
|
|
bne _021E6540
|
|
ldr r0, [sp, #4]
|
|
bl ov00_021E644C
|
|
add sp, #8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021E64E2:
|
|
sub r6, r7, #4
|
|
mov r0, #0
|
|
add r1, r6, #0
|
|
mov r2, #4
|
|
bl ov00_021E65D4
|
|
add r5, r0, #0
|
|
beq _021E6540
|
|
add r0, r4, #4
|
|
add r1, r5, #0
|
|
add r2, r6, #0
|
|
bl MI_CpuCopy8
|
|
bl ov00_021EE490
|
|
cmp r0, #0
|
|
bne _021E651E
|
|
ldr r0, _021E6544 ; =_0221A680
|
|
ldr r1, [r0]
|
|
ldr r0, _021E654C ; =0x00000FA4
|
|
ldr r3, [r1, r0]
|
|
cmp r3, #0
|
|
beq _021E6536
|
|
add r2, r6, #0
|
|
lsl r2, r2, #0x10
|
|
ldr r0, [sp]
|
|
add r1, r5, #0
|
|
lsr r2, r2, #0x10
|
|
blx r3
|
|
b _021E6536
|
|
_021E651E:
|
|
ldr r0, _021E6544 ; =_0221A680
|
|
ldr r1, [r0]
|
|
ldr r0, _021E6550 ; =0x00000FA8
|
|
ldr r3, [r1, r0]
|
|
cmp r3, #0
|
|
beq _021E6536
|
|
add r2, r6, #0
|
|
lsl r2, r2, #0x10
|
|
ldr r0, [sp]
|
|
add r1, r5, #0
|
|
lsr r2, r2, #0x10
|
|
blx r3
|
|
_021E6536:
|
|
mov r0, #0
|
|
add r1, r5, #0
|
|
add r2, r6, #0
|
|
bl ov00_021E6638
|
|
_021E6540:
|
|
add sp, #8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_021E6544: .word _0221A680
|
|
_021E6548: .word 0x000010A8
|
|
_021E654C: .word 0x00000FA4
|
|
_021E6550: .word 0x00000FA8
|
|
thumb_func_end ov00_021E6484
|
|
|
|
thumb_func_start ov00_021E6554
|
|
ov00_021E6554: ; 0x021E6554
|
|
push {r4, r5, r6, lr}
|
|
ldr r5, _021E65C0 ; =_0221A680
|
|
add r4, r3, #0
|
|
ldr r3, [r5]
|
|
ldr r2, _021E65C4 ; =0x00001078
|
|
mov r1, #0
|
|
str r1, [r3, r2]
|
|
add r3, r2, #0
|
|
ldr r6, [r5]
|
|
add r3, #0x54
|
|
str r1, [r6, r3]
|
|
add r3, r2, #0
|
|
add r3, #0x28
|
|
ldr r6, [r5]
|
|
cmp r0, #0
|
|
str r1, [r6, r3]
|
|
bne _021E65A8
|
|
ldr r0, [r5]
|
|
add r2, #0x6d
|
|
ldrb r0, [r0, r2]
|
|
cmp r0, #1
|
|
bne _021E65A8
|
|
bl ov00_021EE448
|
|
cmp r0, #1
|
|
bne _021E65A8
|
|
add r0, r5, #0
|
|
ldr r2, [r0]
|
|
ldr r0, _021E65C8 ; =0x00001070
|
|
ldr r1, [r2, r0]
|
|
cmp r1, #6
|
|
beq _021E6598
|
|
mov r1, #0x10
|
|
str r1, [r2, r0]
|
|
_021E6598:
|
|
ldr r0, _021E65C0 ; =_0221A680
|
|
ldr r1, [r0]
|
|
ldr r0, _021E65CC ; =0x00001090
|
|
ldr r0, [r1, r0]
|
|
cmp r0, #0
|
|
beq _021E65A8
|
|
bl ov00_021E6A4C
|
|
_021E65A8:
|
|
ldr r0, _021E65C0 ; =_0221A680
|
|
ldr r1, _021E65D0 ; =0x00000FAC
|
|
ldr r3, [r0]
|
|
ldr r2, [r3, r1]
|
|
cmp r2, #0
|
|
beq _021E65BC
|
|
add r1, r1, #4
|
|
ldr r1, [r3, r1]
|
|
add r0, r4, #0
|
|
blx r2
|
|
_021E65BC:
|
|
pop {r4, r5, r6, pc}
|
|
nop
|
|
_021E65C0: .word _0221A680
|
|
_021E65C4: .word 0x00001078
|
|
_021E65C8: .word 0x00001070
|
|
_021E65CC: .word 0x00001090
|
|
_021E65D0: .word 0x00000FAC
|
|
thumb_func_end ov00_021E6554
|
|
|
|
thumb_func_start ov00_021E65D4
|
|
ov00_021E65D4: ; 0x021E65D4
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r1, #0
|
|
add r6, r2, #0
|
|
bl OS_DisableInterrupts
|
|
add r7, r0, #0
|
|
ldr r0, _021E662C ; =_0221A680
|
|
add r2, r6, #0
|
|
ldr r1, [r0]
|
|
ldr r0, _021E6630 ; =0x00000F94
|
|
ldr r0, [r1, r0]
|
|
add r1, r5, #0
|
|
bl NNS_FndAllocFromExpHeapEx
|
|
add r4, r0, #0
|
|
bne _021E660E
|
|
ldr r0, _021E662C ; =_0221A680
|
|
ldr r1, _021E6634 ; =0x00000F98
|
|
ldr r0, [r0]
|
|
ldr r2, [r0, r1]
|
|
cmp r2, #0
|
|
beq _021E660E
|
|
add r1, r1, #4
|
|
ldr r0, [r0, r1]
|
|
add r1, r5, #0
|
|
add r2, r6, #0
|
|
bl NNS_FndAllocFromExpHeapEx
|
|
add r4, r0, #0
|
|
_021E660E:
|
|
cmp r4, #0
|
|
bne _021E6622
|
|
mov r0, #1
|
|
bl sub_02039AD8
|
|
add r0, r7, #0
|
|
bl OS_RestoreInterrupts
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021E6622:
|
|
add r0, r7, #0
|
|
bl OS_RestoreInterrupts
|
|
add r0, r4, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_021E662C: .word _0221A680
|
|
_021E6630: .word 0x00000F94
|
|
_021E6634: .word 0x00000F98
|
|
thumb_func_end ov00_021E65D4
|
|
|
|
thumb_func_start ov00_021E6638
|
|
ov00_021E6638: ; 0x021E6638
|
|
push {r3, r4, r5, lr}
|
|
add r5, r1, #0
|
|
beq _021E6682
|
|
bl OS_DisableInterrupts
|
|
add r4, r0, #0
|
|
add r0, r5, #0
|
|
bl NNS_FndGetGroupIDForMBlockExpHeap
|
|
cmp r0, #0x10
|
|
bne _021E666E
|
|
ldr r0, _021E6684 ; =_0221A680
|
|
ldr r2, [r0]
|
|
ldr r0, _021E6688 ; =0x00000F98
|
|
ldr r1, [r2, r0]
|
|
cmp r1, #0
|
|
bne _021E6662
|
|
mov r0, #1
|
|
bl sub_02039AD8
|
|
pop {r3, r4, r5, pc}
|
|
_021E6662:
|
|
add r0, r0, #4
|
|
ldr r0, [r2, r0]
|
|
add r1, r5, #0
|
|
bl NNS_FndFreeToExpHeap
|
|
b _021E667C
|
|
_021E666E:
|
|
ldr r0, _021E6684 ; =_0221A680
|
|
ldr r1, [r0]
|
|
ldr r0, _021E668C ; =0x00000F94
|
|
ldr r0, [r1, r0]
|
|
add r1, r5, #0
|
|
bl NNS_FndFreeToExpHeap
|
|
_021E667C:
|
|
add r0, r4, #0
|
|
bl OS_RestoreInterrupts
|
|
_021E6682:
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_021E6684: .word _0221A680
|
|
_021E6688: .word 0x00000F98
|
|
_021E668C: .word 0x00000F94
|
|
thumb_func_end ov00_021E6638
|
|
|
|
thumb_func_start ov00_021E6690
|
|
ov00_021E6690: ; 0x021E6690
|
|
push {r3, r4, r5, lr}
|
|
sub sp, #8
|
|
add r0, sp, #4
|
|
add r1, sp, #0
|
|
mov r4, #0
|
|
bl ov00_021EC11C
|
|
add r5, r0, #0
|
|
beq _021E6762
|
|
ldr r4, [sp, #4]
|
|
cmp r4, #0
|
|
beq _021E66AE
|
|
ldr r0, [sp]
|
|
cmp r0, #1
|
|
bne _021E66B0
|
|
_021E66AE:
|
|
add r4, r5, #0
|
|
_021E66B0:
|
|
ldr r0, [sp]
|
|
cmp r0, #7
|
|
bhi _021E6762
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_021E66C2: ; jump table
|
|
.short _021E6762 - _021E66C2 - 2 ; case 0
|
|
.short _021E66D2 - _021E66C2 - 2 ; case 1
|
|
.short _021E66D8 - _021E66C2 - 2 ; case 2
|
|
.short _021E66DE - _021E66C2 - 2 ; case 3
|
|
.short _021E66DE - _021E66C2 - 2 ; case 4
|
|
.short _021E66DE - _021E66C2 - 2 ; case 5
|
|
.short _021E66DE - _021E66C2 - 2 ; case 6
|
|
.short _021E6744 - _021E66C2 - 2 ; case 7
|
|
_021E66D2:
|
|
bl ov00_021EC210
|
|
b _021E6762
|
|
_021E66D8:
|
|
bl ov00_021EC210
|
|
b _021E6762
|
|
_021E66DE:
|
|
ldr r0, _021E6784 ; =_0221A680
|
|
ldr r1, [r0]
|
|
cmp r1, #0
|
|
beq _021E6734
|
|
ldr r0, _021E6788 ; =0x00001070
|
|
ldr r0, [r1, r0]
|
|
cmp r0, #0x12
|
|
bhi _021E6730
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_021E66FA: ; jump table
|
|
.short _021E6724 - _021E66FA - 2 ; case 0
|
|
.short _021E6724 - _021E66FA - 2 ; case 1
|
|
.short _021E6724 - _021E66FA - 2 ; case 2
|
|
.short _021E6720 - _021E66FA - 2 ; case 3
|
|
.short _021E6720 - _021E66FA - 2 ; case 4
|
|
.short _021E6720 - _021E66FA - 2 ; case 5
|
|
.short _021E6720 - _021E66FA - 2 ; case 6
|
|
.short _021E6720 - _021E66FA - 2 ; case 7
|
|
.short _021E6720 - _021E66FA - 2 ; case 8
|
|
.short _021E6720 - _021E66FA - 2 ; case 9
|
|
.short _021E6730 - _021E66FA - 2 ; case 10
|
|
.short _021E6730 - _021E66FA - 2 ; case 11
|
|
.short _021E6720 - _021E66FA - 2 ; case 12
|
|
.short _021E6730 - _021E66FA - 2 ; case 13
|
|
.short _021E6730 - _021E66FA - 2 ; case 14
|
|
.short _021E6730 - _021E66FA - 2 ; case 15
|
|
.short _021E6720 - _021E66FA - 2 ; case 16
|
|
.short _021E6720 - _021E66FA - 2 ; case 17
|
|
.short _021E6720 - _021E66FA - 2 ; case 18
|
|
_021E6720:
|
|
bl ov00_021ED9B4
|
|
_021E6724:
|
|
bl sub_0203993C
|
|
cmp r0, #0x21
|
|
beq _021E6730
|
|
bl ov00_021EC8D8
|
|
_021E6730:
|
|
bl ov00_021EC210
|
|
_021E6734:
|
|
ldr r0, _021E6784 ; =_0221A680
|
|
ldr r2, [r0]
|
|
cmp r2, #0
|
|
beq _021E6762
|
|
ldr r0, _021E6788 ; =0x00001070
|
|
mov r1, #0xe
|
|
str r1, [r2, r0]
|
|
b _021E6762
|
|
_021E6744:
|
|
ldr r1, _021E6784 ; =_0221A680
|
|
ldr r3, [r1]
|
|
cmp r3, #0
|
|
beq _021E6762
|
|
ldr r0, _021E6788 ; =0x00001070
|
|
mov r2, #0xf
|
|
str r2, [r3, r0]
|
|
ldr r1, [r1]
|
|
sub r0, #0xb0
|
|
ldr r1, [r1, r0]
|
|
cmp r1, #0
|
|
beq _021E6762
|
|
ldr r0, [sp, #4]
|
|
neg r0, r0
|
|
blx r1
|
|
_021E6762:
|
|
ldr r0, _021E6784 ; =_0221A680
|
|
ldr r1, [r0]
|
|
ldr r0, _021E678C ; =0x000010DE
|
|
ldrb r0, [r1, r0]
|
|
cmp r0, #0
|
|
beq _021E6770
|
|
mov r4, #0x1a
|
|
_021E6770:
|
|
cmp r5, #0
|
|
beq _021E677E
|
|
ldr r0, [sp, #4]
|
|
ldr r1, [sp]
|
|
add r2, r5, #0
|
|
bl sub_02038F74
|
|
_021E677E:
|
|
add r0, r4, #0
|
|
add sp, #8
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_021E6784: .word _0221A680
|
|
_021E6788: .word 0x00001070
|
|
_021E678C: .word 0x000010DE
|
|
thumb_func_end ov00_021E6690
|
|
|
|
thumb_func_start ov00_021E6790
|
|
ov00_021E6790: ; 0x021E6790
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
ldr r6, _021E67D8 ; =_0221A680
|
|
mov r5, #0
|
|
ldr r1, [r6]
|
|
ldr r0, _021E67DC ; =0x0000107C
|
|
add r4, r5, #0
|
|
ldr r0, [r1, r0]
|
|
cmp r0, #0
|
|
ble _021E67D4
|
|
ldr r7, _021E67DC ; =0x0000107C
|
|
_021E67A4:
|
|
bl ov00_021EE490
|
|
cmp r4, r0
|
|
beq _021E67CA
|
|
lsl r0, r4, #0x18
|
|
lsr r0, r0, #0x18
|
|
bl ov00_021EE530
|
|
cmp r0, #0
|
|
beq _021E67CA
|
|
lsl r0, r4, #0x18
|
|
lsr r0, r0, #0x18
|
|
mov r5, #1
|
|
bl ov00_021F9580
|
|
cmp r0, #0
|
|
bne _021E67CA
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021E67CA:
|
|
ldr r0, [r6]
|
|
add r4, r4, #1
|
|
ldr r0, [r0, r7]
|
|
cmp r4, r0
|
|
blt _021E67A4
|
|
_021E67D4:
|
|
add r0, r5, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_021E67D8: .word _0221A680
|
|
_021E67DC: .word 0x0000107C
|
|
thumb_func_end ov00_021E6790
|
|
|
|
thumb_func_start ov00_021E67E0
|
|
ov00_021E67E0: ; 0x021E67E0
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, _021E6840 ; =_0221A680
|
|
ldr r1, [r0]
|
|
ldr r0, _021E6844 ; =0x00001078
|
|
ldr r0, [r1, r0]
|
|
cmp r0, #0
|
|
bne _021E683A
|
|
bl ov00_021E6790
|
|
cmp r0, #0
|
|
beq _021E683A
|
|
bl ov00_021EE4FC
|
|
ldr r1, _021E6848 ; =0x0000FFFE
|
|
tst r0, r1
|
|
beq _021E683A
|
|
ldr r1, _021E6840 ; =_0221A680
|
|
ldr r0, _021E6844 ; =0x00001078
|
|
ldr r2, [r1]
|
|
mov r3, #1
|
|
str r3, [r2, r0]
|
|
ldr r2, [r1]
|
|
add r0, #0x5c
|
|
ldrh r0, [r2, r0]
|
|
lsl r1, r0, #8
|
|
mov r0, #2
|
|
orr r0, r1
|
|
str r0, [r2]
|
|
bl ov00_021EE4FC
|
|
ldr r1, _021E6840 ; =_0221A680
|
|
mov r2, #4
|
|
ldr r1, [r1]
|
|
bl ov00_021F9750
|
|
ldr r0, _021E6840 ; =_0221A680
|
|
mov r2, #0
|
|
ldr r1, [r0]
|
|
lsl r0, r4, #2
|
|
add r1, r1, r0
|
|
ldr r0, _021E684C ; =0x000010AC
|
|
str r2, [r1, r0]
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_021E683A:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
nop
|
|
_021E6840: .word _0221A680
|
|
_021E6844: .word 0x00001078
|
|
_021E6848: .word 0x0000FFFE
|
|
_021E684C: .word 0x000010AC
|
|
thumb_func_end ov00_021E67E0
|
|
|
|
thumb_func_start ov00_021E6850
|
|
ov00_021E6850: ; 0x021E6850
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
bl ov00_021EDB1C
|
|
bl ov00_021E6CE8
|
|
ldr r0, _021E694C ; =_0221A680
|
|
ldr r1, _021E6950 ; =0x00001090
|
|
ldr r2, [r0]
|
|
ldr r0, [r2, r1]
|
|
cmp r0, #0
|
|
beq _021E68D8
|
|
add r0, r1, #0
|
|
add r0, #0x44
|
|
ldrh r0, [r2, r0]
|
|
cmp r0, #1
|
|
bne _021E6888
|
|
add r0, r1, #0
|
|
add r0, #0x40
|
|
ldr r0, [r2, r0]
|
|
cmp r0, #1
|
|
bne _021E6888
|
|
add r1, #0x46
|
|
ldrh r0, [r2, r1]
|
|
cmp r0, #1
|
|
bne _021E6888
|
|
bl ov00_021E7AE0
|
|
b _021E688C
|
|
_021E6888:
|
|
bl ov00_021E7ACC
|
|
_021E688C:
|
|
bl ov00_021E765C
|
|
ldr r0, _021E694C ; =_0221A680
|
|
ldr r4, [r0]
|
|
bl ov00_021EE4FC
|
|
mov r1, #0x42
|
|
lsl r1, r1, #6
|
|
ldr r2, [r4, r1]
|
|
cmp r2, r0
|
|
beq _021E68D8
|
|
add r0, r1, #0
|
|
add r0, #0x5f
|
|
ldrb r0, [r4, r0]
|
|
cmp r0, #0
|
|
bne _021E68D8
|
|
add r1, #0x1c
|
|
ldr r0, [r4, r1]
|
|
cmp r0, #0
|
|
beq _021E68D8
|
|
bl ov00_021EE4FC
|
|
add r4, r0, #0
|
|
bl ov00_021EE490
|
|
add r1, r0, #0
|
|
add r0, r4, #0
|
|
bl ov00_021E7AF4
|
|
cmp r0, #0
|
|
beq _021E68D8
|
|
bl ov00_021EE4FC
|
|
ldr r1, _021E694C ; =_0221A680
|
|
ldr r2, [r1]
|
|
mov r1, #0x42
|
|
lsl r1, r1, #6
|
|
str r0, [r2, r1]
|
|
_021E68D8:
|
|
ldr r6, _021E694C ; =_0221A680
|
|
ldr r1, _021E6954 ; =0x00001070
|
|
ldr r0, [r6]
|
|
ldr r2, [r0, r1]
|
|
cmp r2, #0x12
|
|
bne _021E68F0
|
|
bl ov00_021E6690
|
|
cmp r0, #0
|
|
bne _021E694A
|
|
mov r0, #0x17
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021E68F0:
|
|
cmp r2, #0x11
|
|
bne _021E68F8
|
|
mov r0, #0x18
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021E68F8:
|
|
sub r2, r2, #7
|
|
cmp r2, #1
|
|
bhi _021E6946
|
|
add r1, #0xc
|
|
ldr r1, [r0, r1]
|
|
mov r4, #0
|
|
cmp r1, #0
|
|
ble _021E6946
|
|
ldr r7, _021E6958 ; =0x000010AC
|
|
add r5, r4, #0
|
|
_021E690C:
|
|
ldr r2, _021E6958 ; =0x000010AC
|
|
add r1, r0, r5
|
|
ldr r0, _021E6958 ; =0x000010AC
|
|
ldr r2, [r1, r2]
|
|
ldr r0, [r1, r0]
|
|
add r2, r2, #1
|
|
str r2, [r1, r7]
|
|
cmp r0, #0x78
|
|
blt _021E6938
|
|
ldr r1, [r6]
|
|
ldr r0, _021E695C ; =0x00001078
|
|
ldr r0, [r1, r0]
|
|
cmp r0, #0
|
|
bne _021E6938
|
|
add r0, r4, #0
|
|
bl ov00_021E67E0
|
|
cmp r0, #0
|
|
beq _021E6938
|
|
bl ov00_021E62D8
|
|
b _021E6946
|
|
_021E6938:
|
|
ldr r0, [r6]
|
|
ldr r1, _021E6960 ; =0x0000107C
|
|
add r4, r4, #1
|
|
ldr r1, [r0, r1]
|
|
add r5, r5, #4
|
|
cmp r4, r1
|
|
blt _021E690C
|
|
_021E6946:
|
|
bl ov00_021E6690
|
|
_021E694A:
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_021E694C: .word _0221A680
|
|
_021E6950: .word 0x00001090
|
|
_021E6954: .word 0x00001070
|
|
_021E6958: .word 0x000010AC
|
|
_021E695C: .word 0x00001078
|
|
_021E6960: .word 0x0000107C
|
|
thumb_func_end ov00_021E6850
|
|
|
|
thumb_func_start ov00_021E6964
|
|
ov00_021E6964: ; 0x021E6964
|
|
push {r3, lr}
|
|
ldr r0, _021E698C ; =_0221A680
|
|
ldr r1, [r0]
|
|
cmp r1, #0
|
|
beq _021E6984
|
|
ldr r0, _021E6990 ; =0x00001070
|
|
ldr r0, [r1, r0]
|
|
cmp r0, #7
|
|
beq _021E697E
|
|
cmp r0, #8
|
|
beq _021E697E
|
|
cmp r0, #0x10
|
|
bne _021E6984
|
|
_021E697E:
|
|
bl ov00_021EE490
|
|
pop {r3, pc}
|
|
_021E6984:
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
pop {r3, pc}
|
|
nop
|
|
_021E698C: .word _0221A680
|
|
_021E6990: .word 0x00001070
|
|
thumb_func_end ov00_021E6964
|
|
|
|
thumb_func_start ov00_021E6994
|
|
ov00_021E6994: ; 0x021E6994
|
|
ldr r0, _021E69A0 ; =_0221A680
|
|
mov r2, #0
|
|
ldr r1, [r0]
|
|
ldr r0, _021E69A4 ; =0x00001090
|
|
str r2, [r1, r0]
|
|
bx lr
|
|
.balign 4, 0
|
|
_021E69A0: .word _0221A680
|
|
_021E69A4: .word 0x00001090
|
|
thumb_func_end ov00_021E6994
|
|
|
|
thumb_func_start ov00_021E69A8
|
|
ov00_021E69A8: ; 0x021E69A8
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r7, r0, #0
|
|
mov r4, #1
|
|
bl sub_0203993C
|
|
bl sub_02034084
|
|
add r5, r0, #0
|
|
beq _021E69DC
|
|
bl sub_02037454
|
|
sub r4, r0, #1
|
|
cmp r4, #1
|
|
bge _021E69C6
|
|
mov r4, #1
|
|
_021E69C6:
|
|
ldr r1, _021E6A3C ; =_0221A680
|
|
ldr r6, _021E6A40 ; =0x000010D4
|
|
ldr r0, [r1]
|
|
mov r3, #1
|
|
strh r3, [r0, r6]
|
|
ldr r2, [r1]
|
|
sub r0, r6, #4
|
|
str r3, [r2, r0]
|
|
ldr r0, [r1]
|
|
add r1, r6, #2
|
|
strh r3, [r0, r1]
|
|
_021E69DC:
|
|
ldr r0, _021E6A3C ; =_0221A680
|
|
ldr r2, [r0]
|
|
ldr r0, _021E6A44 ; =0x00001090
|
|
ldr r1, [r2, r0]
|
|
cmp r1, #0
|
|
bne _021E6A3A
|
|
add r0, #0x14
|
|
ldr r0, [r2, r0]
|
|
cmp r0, #5
|
|
bhi _021E6A18
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_021E69FC: ; jump table
|
|
.short _021E6A18 - _021E69FC - 2 ; case 0
|
|
.short _021E6A18 - _021E69FC - 2 ; case 1
|
|
.short _021E6A08 - _021E69FC - 2 ; case 2
|
|
.short _021E6A0C - _021E69FC - 2 ; case 3
|
|
.short _021E6A10 - _021E69FC - 2 ; case 4
|
|
.short _021E6A14 - _021E69FC - 2 ; case 5
|
|
_021E6A08:
|
|
mov r1, #1
|
|
b _021E6A22
|
|
_021E6A0C:
|
|
mov r1, #2
|
|
b _021E6A22
|
|
_021E6A10:
|
|
mov r1, #3
|
|
b _021E6A22
|
|
_021E6A14:
|
|
mov r1, #4
|
|
b _021E6A22
|
|
_021E6A18:
|
|
cmp r5, #0
|
|
bne _021E6A20
|
|
mov r1, #4
|
|
b _021E6A22
|
|
_021E6A20:
|
|
mov r1, #3
|
|
_021E6A22:
|
|
add r0, r7, #0
|
|
add r2, r4, #0
|
|
bl ov00_021E77F4
|
|
ldr r0, _021E6A48 ; =ov00_021E6994
|
|
bl ov00_021E7A1C
|
|
ldr r0, _021E6A3C ; =_0221A680
|
|
mov r2, #1
|
|
ldr r1, [r0]
|
|
ldr r0, _021E6A44 ; =0x00001090
|
|
str r2, [r1, r0]
|
|
_021E6A3A:
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_021E6A3C: .word _0221A680
|
|
_021E6A40: .word 0x000010D4
|
|
_021E6A44: .word 0x00001090
|
|
_021E6A48: .word ov00_021E6994
|
|
thumb_func_end ov00_021E69A8
|
|
|
|
thumb_func_start ov00_021E6A4C
|
|
ov00_021E6A4C: ; 0x021E6A4C
|
|
push {r3, lr}
|
|
bl ov00_021E7A30
|
|
ldr r1, _021E6A68 ; =_0221A680
|
|
ldr r3, [r1]
|
|
cmp r3, #0
|
|
beq _021E6A66
|
|
ldr r0, _021E6A6C ; =0x00001090
|
|
mov r2, #0
|
|
str r2, [r3, r0]
|
|
ldr r1, [r1]
|
|
sub r0, #0x10
|
|
str r2, [r1, r0]
|
|
_021E6A66:
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
_021E6A68: .word _0221A680
|
|
_021E6A6C: .word 0x00001090
|
|
thumb_func_end ov00_021E6A4C
|
|
|
|
thumb_func_start ov00_021E6A70
|
|
ov00_021E6A70: ; 0x021E6A70
|
|
push {r4, r5, r6, lr}
|
|
add r6, r1, #0
|
|
mov r1, #0x64
|
|
add r4, r0, #0
|
|
bl _s32_div_f
|
|
mov r1, #0xfa
|
|
add r5, r0, #0
|
|
add r0, r4, #0
|
|
lsl r1, r1, #2
|
|
bl _s32_div_f
|
|
ldr r2, _021E6BC8 ; =0x00004E85
|
|
cmp r4, r2
|
|
bne _021E6A92
|
|
mov r0, #1
|
|
pop {r4, r5, r6, pc}
|
|
_021E6A92:
|
|
cmp r0, #0x17
|
|
bne _021E6A9A
|
|
mov r0, #1
|
|
pop {r4, r5, r6, pc}
|
|
_021E6A9A:
|
|
add r1, r2, #7
|
|
cmp r4, r1
|
|
bne _021E6AA4
|
|
mov r0, #2
|
|
pop {r4, r5, r6, pc}
|
|
_021E6AA4:
|
|
add r2, #9
|
|
cmp r4, r2
|
|
bne _021E6AAE
|
|
mov r0, #3
|
|
pop {r4, r5, r6, pc}
|
|
_021E6AAE:
|
|
mov r1, #2
|
|
lsl r1, r1, #8
|
|
cmp r5, r1
|
|
bne _021E6ABA
|
|
mov r0, #4
|
|
pop {r4, r5, r6, pc}
|
|
_021E6ABA:
|
|
add r2, r1, #0
|
|
sub r2, #0xc
|
|
cmp r5, r2
|
|
bne _021E6AC6
|
|
mov r0, #5
|
|
pop {r4, r5, r6, pc}
|
|
_021E6AC6:
|
|
ldr r2, _021E6BCC ; =0x0000C79F
|
|
cmp r4, r2
|
|
bne _021E6AD0
|
|
mov r0, #7
|
|
pop {r4, r5, r6, pc}
|
|
_021E6AD0:
|
|
sub r2, r1, #2
|
|
cmp r5, r2
|
|
bne _021E6ADA
|
|
mov r0, #6
|
|
pop {r4, r5, r6, pc}
|
|
_021E6ADA:
|
|
sub r2, r1, #1
|
|
cmp r5, r2
|
|
bne _021E6AE4
|
|
mov r0, #6
|
|
pop {r4, r5, r6, pc}
|
|
_021E6AE4:
|
|
add r1, r1, #1
|
|
cmp r5, r1
|
|
bne _021E6AEE
|
|
mov r0, #6
|
|
pop {r4, r5, r6, pc}
|
|
_021E6AEE:
|
|
ldr r1, _021E6BD0 ; =0x0000CB20
|
|
cmp r4, r1
|
|
blt _021E6AFE
|
|
add r1, r1, #3
|
|
cmp r4, r1
|
|
bgt _021E6AFE
|
|
mov r0, #8
|
|
pop {r4, r5, r6, pc}
|
|
_021E6AFE:
|
|
ldr r1, _021E6BD4 ; =0x0000CB84
|
|
cmp r4, r1
|
|
blt _021E6B0E
|
|
add r1, r1, #3
|
|
cmp r4, r1
|
|
bgt _021E6B0E
|
|
mov r0, #8
|
|
pop {r4, r5, r6, pc}
|
|
_021E6B0E:
|
|
ldr r1, _021E6BD8 ; =0x0000CBE8
|
|
cmp r4, r1
|
|
blt _021E6B1E
|
|
add r1, r1, #3
|
|
cmp r4, r1
|
|
bgt _021E6B1E
|
|
mov r0, #8
|
|
pop {r4, r5, r6, pc}
|
|
_021E6B1E:
|
|
ldr r1, _021E6BDC ; =0x00013A2E
|
|
cmp r4, r1
|
|
bne _021E6B28
|
|
mov r0, #9
|
|
pop {r4, r5, r6, pc}
|
|
_021E6B28:
|
|
cmp r0, #0x14
|
|
bne _021E6B30
|
|
mov r0, #0
|
|
pop {r4, r5, r6, pc}
|
|
_021E6B30:
|
|
mov r1, #0x82
|
|
lsl r1, r1, #2
|
|
cmp r5, r1
|
|
bne _021E6B3C
|
|
mov r0, #0
|
|
pop {r4, r5, r6, pc}
|
|
_021E6B3C:
|
|
add r2, r1, #1
|
|
cmp r5, r2
|
|
bne _021E6B46
|
|
mov r0, #0
|
|
pop {r4, r5, r6, pc}
|
|
_021E6B46:
|
|
add r2, r1, #2
|
|
cmp r5, r2
|
|
bne _021E6B50
|
|
mov r0, #0
|
|
pop {r4, r5, r6, pc}
|
|
_021E6B50:
|
|
add r2, r1, #3
|
|
cmp r5, r2
|
|
bne _021E6B5A
|
|
mov r0, #0
|
|
pop {r4, r5, r6, pc}
|
|
_021E6B5A:
|
|
add r2, r1, #0
|
|
add r2, #0xa
|
|
cmp r5, r2
|
|
bne _021E6B66
|
|
mov r0, #0
|
|
pop {r4, r5, r6, pc}
|
|
_021E6B66:
|
|
add r2, r1, #0
|
|
add r2, #0xb
|
|
cmp r5, r2
|
|
bne _021E6B72
|
|
mov r0, #0
|
|
pop {r4, r5, r6, pc}
|
|
_021E6B72:
|
|
add r1, #0xc
|
|
cmp r5, r1
|
|
bne _021E6B7C
|
|
mov r0, #0
|
|
pop {r4, r5, r6, pc}
|
|
_021E6B7C:
|
|
ldr r1, _021E6BE0 ; =0x00002710
|
|
cmp r4, r1
|
|
bge _021E6B86
|
|
mov r0, #0xe
|
|
pop {r4, r5, r6, pc}
|
|
_021E6B86:
|
|
cmp r0, #0x1f
|
|
bne _021E6B8E
|
|
mov r0, #0xc
|
|
pop {r4, r5, r6, pc}
|
|
_021E6B8E:
|
|
cmp r6, #7
|
|
bhi _021E6BB6
|
|
add r0, r6, r6
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_021E6B9E: ; jump table
|
|
.short _021E6BAE - _021E6B9E - 2 ; case 0
|
|
.short _021E6BAE - _021E6B9E - 2 ; case 1
|
|
.short _021E6BAE - _021E6B9E - 2 ; case 2
|
|
.short _021E6BB2 - _021E6B9E - 2 ; case 3
|
|
.short _021E6BB2 - _021E6B9E - 2 ; case 4
|
|
.short _021E6BB2 - _021E6B9E - 2 ; case 5
|
|
.short _021E6BB2 - _021E6B9E - 2 ; case 6
|
|
.short _021E6BBC - _021E6B9E - 2 ; case 7
|
|
_021E6BAE:
|
|
mov r0, #0xb
|
|
pop {r4, r5, r6, pc}
|
|
_021E6BB2:
|
|
mov r0, #0xa
|
|
pop {r4, r5, r6, pc}
|
|
_021E6BB6:
|
|
bl GF_AssertFail
|
|
b _021E6BC0
|
|
_021E6BBC:
|
|
mov r0, #0xf
|
|
pop {r4, r5, r6, pc}
|
|
_021E6BC0:
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
pop {r4, r5, r6, pc}
|
|
nop
|
|
_021E6BC8: .word 0x00004E85
|
|
_021E6BCC: .word 0x0000C79F
|
|
_021E6BD0: .word 0x0000CB20
|
|
_021E6BD4: .word 0x0000CB84
|
|
_021E6BD8: .word 0x0000CBE8
|
|
_021E6BDC: .word 0x00013A2E
|
|
_021E6BE0: .word 0x00002710
|
|
thumb_func_end ov00_021E6A70
|
|
|
|
thumb_func_start ov00_021E6BE4
|
|
ov00_021E6BE4: ; 0x021E6BE4
|
|
push {r3, lr}
|
|
cmp r0, #0
|
|
bne _021E6C44
|
|
ldr r0, _021E6C60 ; =_0221A680
|
|
ldr r2, _021E6C64 ; =0x00001070
|
|
ldr r0, [r0]
|
|
ldr r1, [r0, r2]
|
|
cmp r1, #0x12
|
|
bhi _021E6C5C
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_021E6C02: ; jump table
|
|
.short _021E6C5C - _021E6C02 - 2 ; case 0
|
|
.short _021E6C5C - _021E6C02 - 2 ; case 1
|
|
.short _021E6C5C - _021E6C02 - 2 ; case 2
|
|
.short _021E6C5C - _021E6C02 - 2 ; case 3
|
|
.short _021E6C40 - _021E6C02 - 2 ; case 4
|
|
.short _021E6C28 - _021E6C02 - 2 ; case 5
|
|
.short _021E6C5C - _021E6C02 - 2 ; case 6
|
|
.short _021E6C28 - _021E6C02 - 2 ; case 7
|
|
.short _021E6C28 - _021E6C02 - 2 ; case 8
|
|
.short _021E6C5C - _021E6C02 - 2 ; case 9
|
|
.short _021E6C5C - _021E6C02 - 2 ; case 10
|
|
.short _021E6C5C - _021E6C02 - 2 ; case 11
|
|
.short _021E6C5C - _021E6C02 - 2 ; case 12
|
|
.short _021E6C5C - _021E6C02 - 2 ; case 13
|
|
.short _021E6C40 - _021E6C02 - 2 ; case 14
|
|
.short _021E6C5C - _021E6C02 - 2 ; case 15
|
|
.short _021E6C5C - _021E6C02 - 2 ; case 16
|
|
.short _021E6C40 - _021E6C02 - 2 ; case 17
|
|
.short _021E6C40 - _021E6C02 - 2 ; case 18
|
|
_021E6C28:
|
|
add r2, #0x20
|
|
ldr r0, [r0, r2]
|
|
cmp r0, #0
|
|
beq _021E6C34
|
|
bl ov00_021E79CC
|
|
_021E6C34:
|
|
ldr r0, _021E6C60 ; =_0221A680
|
|
mov r2, #0x10
|
|
ldr r1, [r0]
|
|
ldr r0, _021E6C64 ; =0x00001070
|
|
str r2, [r1, r0]
|
|
b _021E6C5C
|
|
_021E6C40:
|
|
mov r0, #1
|
|
pop {r3, pc}
|
|
_021E6C44:
|
|
ldr r0, _021E6C60 ; =_0221A680
|
|
ldr r1, [r0]
|
|
ldr r0, _021E6C64 ; =0x00001070
|
|
ldr r0, [r1, r0]
|
|
cmp r0, #4
|
|
beq _021E6C58
|
|
cmp r0, #0x11
|
|
beq _021E6C58
|
|
cmp r0, #0x12
|
|
bne _021E6C5C
|
|
_021E6C58:
|
|
mov r0, #1
|
|
pop {r3, pc}
|
|
_021E6C5C:
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
_021E6C60: .word _0221A680
|
|
_021E6C64: .word 0x00001070
|
|
thumb_func_end ov00_021E6BE4
|
|
|
|
thumb_func_start ov00_021E6C68
|
|
ov00_021E6C68: ; 0x021E6C68
|
|
push {r3, lr}
|
|
ldr r0, _021E6C9C ; =_0221A680
|
|
ldr r2, [r0]
|
|
ldr r0, _021E6CA0 ; =0x00001070
|
|
ldr r0, [r2, r0]
|
|
cmp r0, #0x11
|
|
beq _021E6C7E
|
|
cmp r0, #0x12
|
|
beq _021E6C7E
|
|
cmp r0, #4
|
|
bne _021E6C96
|
|
_021E6C7E:
|
|
ldr r0, _021E6CA0 ; =0x00001070
|
|
mov r1, #4
|
|
str r1, [r2, r0]
|
|
sub r2, r1, #5
|
|
ldr r1, _021E6C9C ; =_0221A680
|
|
add r0, #0x28
|
|
ldr r1, [r1]
|
|
str r2, [r1, r0]
|
|
bl ov00_021E7130
|
|
mov r0, #1
|
|
pop {r3, pc}
|
|
_021E6C96:
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
nop
|
|
_021E6C9C: .word _0221A680
|
|
_021E6CA0: .word 0x00001070
|
|
thumb_func_end ov00_021E6C68
|
|
|
|
thumb_func_start ov00_021E6CA4
|
|
ov00_021E6CA4: ; 0x021E6CA4
|
|
ldr r1, _021E6CB4 ; =_0221A680
|
|
ldr r2, [r1]
|
|
cmp r2, #0
|
|
beq _021E6CB2
|
|
mov r1, #0x3f
|
|
lsl r1, r1, #6
|
|
str r0, [r2, r1]
|
|
_021E6CB2:
|
|
bx lr
|
|
.balign 4, 0
|
|
_021E6CB4: .word _0221A680
|
|
thumb_func_end ov00_021E6CA4
|
|
|
|
thumb_func_start ov00_021E6CB8
|
|
ov00_021E6CB8: ; 0x021E6CB8
|
|
push {r3, lr}
|
|
bl ov00_021ED9B4
|
|
bl ov00_021EC8D8
|
|
bl ov00_021E6A4C
|
|
bl ov00_021E5AE8
|
|
pop {r3, pc}
|
|
thumb_func_end ov00_021E6CB8
|
|
|
|
thumb_func_start ov00_021E6CCC
|
|
ov00_021E6CCC: ; 0x021E6CCC
|
|
push {r3, r4}
|
|
ldr r3, _021E6CE0 ; =_0221A680
|
|
ldr r2, _021E6CE4 ; =0x00001064
|
|
ldr r4, [r3]
|
|
str r0, [r4, r2]
|
|
ldr r3, [r3]
|
|
add r0, r2, #4
|
|
str r1, [r3, r0]
|
|
pop {r3, r4}
|
|
bx lr
|
|
.balign 4, 0
|
|
_021E6CE0: .word _0221A680
|
|
_021E6CE4: .word 0x00001064
|
|
thumb_func_end ov00_021E6CCC
|
|
|
|
thumb_func_start ov00_021E6CE8
|
|
ov00_021E6CE8: ; 0x021E6CE8
|
|
push {r3, r4, r5, lr}
|
|
ldr r0, _021E6D50 ; =_0221A680
|
|
ldr r1, _021E6D54 ; =0x00001064
|
|
ldr r0, [r0]
|
|
ldr r2, [r0, r1]
|
|
cmp r2, #0
|
|
beq _021E6D4E
|
|
add r1, #8
|
|
ldr r2, [r0, r1]
|
|
mov r1, #0x1f
|
|
add r5, r2, #0
|
|
and r5, r1
|
|
mov r1, #0xc
|
|
add r4, r5, #0
|
|
mul r4, r1
|
|
add r1, #0xf4
|
|
ldr r0, [r0, r1]
|
|
add r0, r0, r4
|
|
bl DWC_IsBuddyFriendData
|
|
cmp r0, #0
|
|
beq _021E6D3E
|
|
ldr r0, _021E6D50 ; =_0221A680
|
|
ldr r3, _021E6D54 ; =0x00001064
|
|
ldr r2, [r0]
|
|
mov r0, #1
|
|
lsl r0, r0, #8
|
|
ldr r1, [r2, r3]
|
|
ldr r0, [r2, r0]
|
|
add r3, r3, #4
|
|
ldr r2, [r2, r3]
|
|
add r0, r0, r4
|
|
add r3, r2, #0
|
|
mul r3, r5
|
|
add r1, r1, r3
|
|
add r2, sp, #0
|
|
bl ov00_021EFDCC
|
|
ldr r1, _021E6D50 ; =_0221A680
|
|
ldr r1, [r1]
|
|
add r2, r1, r5
|
|
ldr r1, _021E6D58 ; =0x00001044
|
|
strb r0, [r2, r1]
|
|
_021E6D3E:
|
|
ldr r0, _021E6D50 ; =_0221A680
|
|
ldr r1, _021E6D5C ; =0x0000106C
|
|
ldr r3, [r0]
|
|
ldr r0, [r3, r1]
|
|
add r2, r0, #1
|
|
mov r0, #0x1f
|
|
and r0, r2
|
|
str r0, [r3, r1]
|
|
_021E6D4E:
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_021E6D50: .word _0221A680
|
|
_021E6D54: .word 0x00001064
|
|
_021E6D58: .word 0x00001044
|
|
_021E6D5C: .word 0x0000106C
|
|
thumb_func_end ov00_021E6CE8
|
|
|
|
thumb_func_start ov00_021E6D60
|
|
ov00_021E6D60: ; 0x021E6D60
|
|
ldr r3, _021E6D64 ; =ov00_021EFE78
|
|
bx r3
|
|
.balign 4, 0
|
|
_021E6D64: .word ov00_021EFE78
|
|
thumb_func_end ov00_021E6D60
|
|
|
|
thumb_func_start ov00_021E6D68
|
|
ov00_021E6D68: ; 0x021E6D68
|
|
ldr r1, _021E6D74 ; =_0221A680
|
|
ldr r1, [r1]
|
|
add r1, r1, r0
|
|
ldr r0, _021E6D78 ; =0x00001044
|
|
ldrb r0, [r1, r0]
|
|
bx lr
|
|
.balign 4, 0
|
|
_021E6D74: .word _0221A680
|
|
_021E6D78: .word 0x00001044
|
|
thumb_func_end ov00_021E6D68
|
|
|
|
thumb_func_start ov00_021E6D7C
|
|
ov00_021E6D7C: ; 0x021E6D7C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
add r7, r2, #0
|
|
bl ov00_021E7314
|
|
cmp r0, #0
|
|
beq _021E6D92
|
|
mov r0, #3
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021E6D92:
|
|
ldr r1, _021E6E84 ; =_0221A680
|
|
ldr r0, _021E6E88 ; =0x00001070
|
|
ldr r2, [r1]
|
|
ldr r3, [r2, r0]
|
|
cmp r3, #4
|
|
beq _021E6DC2
|
|
add r3, r0, #0
|
|
add r3, #0x5c
|
|
ldr r3, [r2, r3]
|
|
add r4, r3, #1
|
|
add r3, r0, #0
|
|
add r3, #0x5c
|
|
str r4, [r2, r3]
|
|
ldr r1, [r1]
|
|
add r0, #0x5c
|
|
ldr r0, [r1, r0]
|
|
cmp r0, #0x78
|
|
ble _021E6DBC
|
|
mov r0, #2
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021E6DBC:
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021E6DC2:
|
|
bl ov00_021E7300
|
|
ldr r2, _021E6E84 ; =_0221A680
|
|
ldr r1, _021E6E8C ; =0x000010D8
|
|
ldr r0, [r2]
|
|
mov r3, #0
|
|
str r3, [r0, r1]
|
|
add r0, r1, #0
|
|
ldr r3, [r2]
|
|
mov r6, #1
|
|
add r0, #0xd
|
|
strb r6, [r3, r0]
|
|
add r0, r1, #0
|
|
ldr r3, [r2]
|
|
sub r0, #0x44
|
|
str r5, [r3, r0]
|
|
sub r1, #0x5c
|
|
ldr r0, [r2]
|
|
cmp r7, #0
|
|
str r4, [r0, r1]
|
|
beq _021E6DEE
|
|
mov r4, #2
|
|
_021E6DEE:
|
|
ldr r0, _021E6E84 ; =_0221A680
|
|
mov r2, #1
|
|
ldr r1, [r0]
|
|
ldr r0, _021E6E90 ; =0x000010A0
|
|
cmp r5, #0
|
|
str r2, [r1, r0]
|
|
bge _021E6E12
|
|
lsl r0, r4, #0x18
|
|
mov r2, #0
|
|
ldr r1, _021E6E94 ; =ov00_021E6ED8
|
|
ldr r3, _021E6E98 ; =ov00_021E6FE0
|
|
lsr r0, r0, #0x18
|
|
str r2, [sp]
|
|
bl ov00_021EDFBC
|
|
mov r3, #1
|
|
ldr r1, _021E6E84 ; =_0221A680
|
|
b _021E6E24
|
|
_021E6E12:
|
|
ldr r1, _021E6E9C ; =ov00_021E6FBC
|
|
mov r2, #0
|
|
ldr r3, _021E6E98 ; =ov00_021E6FE0
|
|
add r0, r5, #0
|
|
str r2, [sp]
|
|
bl ov00_021EE054
|
|
ldr r1, _021E6E84 ; =_0221A680
|
|
mov r3, #2
|
|
_021E6E24:
|
|
ldr r2, [r1]
|
|
ldr r1, _021E6EA0 ; =0x00001074
|
|
cmp r0, #0
|
|
str r3, [r2, r1]
|
|
ldr r0, _021E6EA4 ; =0x000010CC
|
|
bne _021E6E4E
|
|
ldr r1, _021E6E84 ; =_0221A680
|
|
ldr r3, [r1]
|
|
ldr r2, [r3, r0]
|
|
add r2, r2, #1
|
|
str r2, [r3, r0]
|
|
ldr r1, [r1]
|
|
ldr r0, [r1, r0]
|
|
cmp r0, #0x78
|
|
ble _021E6E48
|
|
mov r0, #2
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021E6E48:
|
|
mov r0, #1
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021E6E4E:
|
|
ldr r1, _021E6E84 ; =_0221A680
|
|
mov r3, #0
|
|
ldr r2, [r1]
|
|
str r3, [r2, r0]
|
|
ldr r1, [r1]
|
|
mov r2, #5
|
|
sub r0, #0x5c
|
|
str r2, [r1, r0]
|
|
ldr r0, _021E6EA8 ; =ov00_021E6428
|
|
bl ov00_021F989C
|
|
ldr r0, _021E6EAC ; =ov00_021E6484
|
|
bl ov00_021F98BC
|
|
ldr r0, _021E6EB0 ; =ov00_021E6554
|
|
mov r1, #0
|
|
bl ov00_021EE24C
|
|
ldr r0, _021E6EB4 ; =ov00_021E6240
|
|
bl ov00_021F98DC
|
|
ldr r1, _021E6E84 ; =_0221A680
|
|
mov r0, #0
|
|
ldr r2, [r1]
|
|
ldr r1, _021E6EB8 ; =0x00001078
|
|
str r0, [r2, r1]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_021E6E84: .word _0221A680
|
|
_021E6E88: .word 0x00001070
|
|
_021E6E8C: .word 0x000010D8
|
|
_021E6E90: .word 0x000010A0
|
|
_021E6E94: .word ov00_021E6ED8
|
|
_021E6E98: .word ov00_021E6FE0
|
|
_021E6E9C: .word ov00_021E6FBC
|
|
_021E6EA0: .word 0x00001074
|
|
_021E6EA4: .word 0x000010CC
|
|
_021E6EA8: .word ov00_021E6428
|
|
_021E6EAC: .word ov00_021E6484
|
|
_021E6EB0: .word ov00_021E6554
|
|
_021E6EB4: .word ov00_021E6240
|
|
_021E6EB8: .word 0x00001078
|
|
thumb_func_end ov00_021E6D7C
|
|
|
|
thumb_func_start ov00_021E6EBC
|
|
ov00_021E6EBC: ; 0x021E6EBC
|
|
ldr r0, _021E6ED0 ; =_0221A680
|
|
ldr r1, [r0]
|
|
cmp r1, #0
|
|
beq _021E6ECA
|
|
ldr r0, _021E6ED4 ; =0x00001094
|
|
ldr r0, [r1, r0]
|
|
bx lr
|
|
_021E6ECA:
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
bx lr
|
|
.balign 4, 0
|
|
_021E6ED0: .word _0221A680
|
|
_021E6ED4: .word 0x00001094
|
|
thumb_func_end ov00_021E6EBC
|
|
|
|
thumb_func_start ov00_021E6ED8
|
|
ov00_021E6ED8: ; 0x021E6ED8
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
ldr r7, _021E6FA0 ; =_0221A680
|
|
add r3, r0, #0
|
|
add r0, r1, #0
|
|
add r6, r2, #0
|
|
mov r4, #0
|
|
ldr r2, [r7]
|
|
ldr r1, _021E6FA4 ; =0x000010A0
|
|
ldr r5, [sp, #0x18]
|
|
str r4, [r2, r1]
|
|
cmp r3, #0
|
|
bne _021E6F9E
|
|
cmp r0, #0
|
|
bne _021E6F92
|
|
bl sub_0203993C
|
|
bl sub_02034098
|
|
cmp r0, #0
|
|
beq _021E6F08
|
|
sub r0, r4, #1
|
|
cmp r5, r0
|
|
bne _021E6F08
|
|
mov r4, #1
|
|
_021E6F08:
|
|
ldr r0, _021E6FA0 ; =_0221A680
|
|
ldr r1, [r0]
|
|
ldr r0, _021E6FA8 ; =0x00000FBC
|
|
ldr r1, [r1, r0]
|
|
cmp r1, #0
|
|
beq _021E6F1E
|
|
add r0, r5, #0
|
|
blx r1
|
|
cmp r0, #0
|
|
bne _021E6F1E
|
|
mov r4, #1
|
|
_021E6F1E:
|
|
ldr r0, _021E6FA0 ; =_0221A680
|
|
ldr r1, [r0]
|
|
ldr r0, _021E6FAC ; =0x000010E0
|
|
ldrb r0, [r1, r0]
|
|
cmp r0, #0
|
|
bne _021E6F2E
|
|
cmp r4, #0
|
|
beq _021E6F66
|
|
_021E6F2E:
|
|
bl ov00_021EE4FC
|
|
ldr r1, _021E6FA0 ; =_0221A680
|
|
ldr r2, [r1]
|
|
ldr r1, _021E6FB0 ; =0x000010D8
|
|
ldr r1, [r2, r1]
|
|
mvn r1, r1
|
|
and r0, r1
|
|
str r0, [sp]
|
|
bl ov00_021EE4FC
|
|
add r4, r0, #0
|
|
ldr r0, [sp]
|
|
cmp r0, #0
|
|
beq _021E6F66
|
|
add r0, sp, #0
|
|
bl ov00_021EE384
|
|
ldr r0, [sp]
|
|
eor r0, r4
|
|
cmp r0, #1
|
|
bne _021E6F9E
|
|
ldr r0, _021E6FA0 ; =_0221A680
|
|
mov r2, #6
|
|
ldr r1, [r0]
|
|
ldr r0, _021E6FB4 ; =0x00001070
|
|
str r2, [r1, r0]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021E6F66:
|
|
ldr r0, _021E6FA0 ; =_0221A680
|
|
ldr r1, [r0]
|
|
ldr r0, _021E6FB8 ; =0x00001094
|
|
str r5, [r1, r0]
|
|
bl ov00_021EE4FC
|
|
ldr r2, _021E6FA0 ; =_0221A680
|
|
ldr r1, _021E6FB0 ; =0x000010D8
|
|
ldr r3, [r2]
|
|
str r0, [r3, r1]
|
|
ldr r2, [r2]
|
|
ldr r0, [r2, r1]
|
|
cmp r0, #1
|
|
bne _021E6F8A
|
|
mov r0, #6
|
|
sub r1, #0x68
|
|
str r0, [r2, r1]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021E6F8A:
|
|
add r0, r5, #0
|
|
bl ov00_021E6388
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021E6F92:
|
|
cmp r6, #0
|
|
bne _021E6F9E
|
|
ldr r0, [r7]
|
|
sub r2, r4, #1
|
|
sub r1, #8
|
|
str r2, [r0, r1]
|
|
_021E6F9E:
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_021E6FA0: .word _0221A680
|
|
_021E6FA4: .word 0x000010A0
|
|
_021E6FA8: .word 0x00000FBC
|
|
_021E6FAC: .word 0x000010E0
|
|
_021E6FB0: .word 0x000010D8
|
|
_021E6FB4: .word 0x00001070
|
|
_021E6FB8: .word 0x00001094
|
|
thumb_func_end ov00_021E6ED8
|
|
|
|
thumb_func_start ov00_021E6FBC
|
|
ov00_021E6FBC: ; 0x021E6FBC
|
|
push {r4, lr}
|
|
ldr r2, _021E6FD8 ; =_0221A680
|
|
mov r4, #0
|
|
ldr r3, [r2]
|
|
ldr r2, _021E6FDC ; =0x000010A0
|
|
cmp r0, #0
|
|
str r4, [r3, r2]
|
|
bne _021E6FD6
|
|
cmp r1, #0
|
|
bne _021E6FD6
|
|
ldr r0, [sp, #8]
|
|
bl ov00_021E6388
|
|
_021E6FD6:
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_021E6FD8: .word _0221A680
|
|
_021E6FDC: .word 0x000010A0
|
|
thumb_func_end ov00_021E6FBC
|
|
|
|
thumb_func_start ov00_021E6FE0
|
|
ov00_021E6FE0: ; 0x021E6FE0
|
|
push {r3, lr}
|
|
ldr r2, _021E7004 ; =_0221A680
|
|
ldr r1, _021E7008 ; =0x00001098
|
|
ldr r3, [r2]
|
|
str r0, [r3, r1]
|
|
ldr r3, [r2]
|
|
add r2, r1, #0
|
|
sub r2, #0xe4
|
|
ldr r2, [r3, r2]
|
|
cmp r2, #0
|
|
beq _021E7000
|
|
sub r1, #0xe0
|
|
lsl r0, r0, #0x10
|
|
ldr r1, [r3, r1]
|
|
lsr r0, r0, #0x10
|
|
blx r2
|
|
_021E7000:
|
|
pop {r3, pc}
|
|
nop
|
|
_021E7004: .word _0221A680
|
|
_021E7008: .word 0x00001098
|
|
thumb_func_end ov00_021E6FE0
|
|
|
|
thumb_func_start ov00_021E700C
|
|
ov00_021E700C: ; 0x021E700C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x18
|
|
ldr r0, _021E7074 ; =_0221A680
|
|
ldr r1, [r0]
|
|
mov r0, #0xf1
|
|
lsl r0, r0, #4
|
|
ldr r0, [r1, r0]
|
|
bl DWC_CheckHasProfile
|
|
cmp r0, #0
|
|
bne _021E7034
|
|
ldr r0, _021E7074 ; =_0221A680
|
|
ldr r1, [r0]
|
|
mov r0, #0xf1
|
|
lsl r0, r0, #4
|
|
ldr r0, [r1, r0]
|
|
add r1, sp, #0xc
|
|
bl DWC_CreateExchangeToken
|
|
b _021E7044
|
|
_021E7034:
|
|
ldr r0, _021E7074 ; =_0221A680
|
|
ldr r1, [r0]
|
|
mov r0, #0xf1
|
|
lsl r0, r0, #4
|
|
ldr r0, [r1, r0]
|
|
add r1, sp, #0
|
|
bl DWC_CreateExchangeToken
|
|
_021E7044:
|
|
mov r4, #0
|
|
mov r7, #1
|
|
ldr r6, _021E7074 ; =_0221A680
|
|
add r5, r4, #0
|
|
lsl r7, r7, #8
|
|
_021E704E:
|
|
mov r0, #1
|
|
ldr r1, [r6]
|
|
lsl r0, r0, #8
|
|
ldr r0, [r1, r0]
|
|
add r0, r0, r5
|
|
bl DWC_GetFriendDataType
|
|
ldr r0, [r6]
|
|
ldr r0, [r0, r7]
|
|
add r0, r0, r5
|
|
bl DWC_IsBuddyFriendData
|
|
add r4, r4, #1
|
|
add r5, #0xc
|
|
cmp r4, #0x20
|
|
blt _021E704E
|
|
add sp, #0x18
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_021E7074: .word _0221A680
|
|
thumb_func_end ov00_021E700C
|
|
|
|
thumb_func_start ov00_021E7078
|
|
ov00_021E7078: ; 0x021E7078
|
|
ldr r3, _021E707C ; =ov00_021E7AA4
|
|
bx r3
|
|
.balign 4, 0
|
|
_021E707C: .word ov00_021E7AA4
|
|
thumb_func_end ov00_021E7078
|
|
|
|
thumb_func_start ov00_021E7080
|
|
ov00_021E7080: ; 0x021E7080
|
|
ldr r0, _021E7094 ; =_0221A680
|
|
ldr r1, [r0]
|
|
cmp r1, #0
|
|
beq _021E708E
|
|
ldr r0, _021E7098 ; =0x0000109C
|
|
ldr r0, [r1, r0]
|
|
bx lr
|
|
_021E708E:
|
|
mov r0, #0
|
|
bx lr
|
|
nop
|
|
_021E7094: .word _0221A680
|
|
_021E7098: .word 0x0000109C
|
|
thumb_func_end ov00_021E7080
|
|
|
|
thumb_func_start ov00_021E709C
|
|
ov00_021E709C: ; 0x021E709C
|
|
ldr r0, _021E70B0 ; =_0221A680
|
|
ldr r1, [r0]
|
|
cmp r1, #0
|
|
beq _021E70AA
|
|
ldr r0, _021E70B4 ; =0x00001098
|
|
ldr r0, [r1, r0]
|
|
bx lr
|
|
_021E70AA:
|
|
mov r0, #0
|
|
bx lr
|
|
nop
|
|
_021E70B0: .word _0221A680
|
|
_021E70B4: .word 0x00001098
|
|
thumb_func_end ov00_021E709C
|
|
|
|
thumb_func_start ov00_021E70B8
|
|
ov00_021E70B8: ; 0x021E70B8
|
|
ldr r1, _021E70C4 ; =_0221A680
|
|
ldr r2, [r1]
|
|
ldr r1, _021E70C8 ; =0x0000109C
|
|
str r0, [r2, r1]
|
|
bx lr
|
|
nop
|
|
_021E70C4: .word _0221A680
|
|
_021E70C8: .word 0x0000109C
|
|
thumb_func_end ov00_021E70B8
|
|
|
|
thumb_func_start ov00_021E70CC
|
|
ov00_021E70CC: ; 0x021E70CC
|
|
ldr r1, _021E70D8 ; =_0221A680
|
|
ldr r2, [r1]
|
|
ldr r1, _021E70DC ; =0x000010D6
|
|
strh r0, [r2, r1]
|
|
bx lr
|
|
nop
|
|
_021E70D8: .word _0221A680
|
|
_021E70DC: .word 0x000010D6
|
|
thumb_func_end ov00_021E70CC
|
|
|
|
thumb_func_start ov00_021E70E0
|
|
ov00_021E70E0: ; 0x021E70E0
|
|
ldr r0, _021E70EC ; =_0221A680
|
|
mov r2, #2
|
|
ldr r1, [r0]
|
|
ldr r0, _021E70F0 ; =0x000010E0
|
|
strb r2, [r1, r0]
|
|
bx lr
|
|
.balign 4, 0
|
|
_021E70EC: .word _0221A680
|
|
_021E70F0: .word 0x000010E0
|
|
thumb_func_end ov00_021E70E0
|
|
|
|
thumb_func_start ov00_021E70F4
|
|
ov00_021E70F4: ; 0x021E70F4
|
|
push {r3, lr}
|
|
ldr r0, _021E7124 ; =_0221A680
|
|
ldr r2, [r0]
|
|
ldr r0, _021E7128 ; =0x000010E0
|
|
ldrb r1, [r2, r0]
|
|
cmp r1, #0
|
|
bne _021E710E
|
|
mov r1, #1
|
|
strb r1, [r2, r0]
|
|
ldr r0, _021E712C ; =ov00_021E70E0
|
|
mov r1, #0
|
|
bl ov00_021F12F0
|
|
_021E710E:
|
|
ldr r0, _021E7124 ; =_0221A680
|
|
ldr r1, [r0]
|
|
ldr r0, _021E7128 ; =0x000010E0
|
|
ldrb r0, [r1, r0]
|
|
cmp r0, #2
|
|
bne _021E711E
|
|
mov r0, #1
|
|
pop {r3, pc}
|
|
_021E711E:
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
nop
|
|
_021E7124: .word _0221A680
|
|
_021E7128: .word 0x000010E0
|
|
_021E712C: .word ov00_021E70E0
|
|
thumb_func_end ov00_021E70F4
|
|
|
|
thumb_func_start ov00_021E7130
|
|
ov00_021E7130: ; 0x021E7130
|
|
ldr r0, _021E713C ; =_0221A680
|
|
mov r2, #0
|
|
ldr r1, [r0]
|
|
ldr r0, _021E7140 ; =0x000010E0
|
|
strb r2, [r1, r0]
|
|
bx lr
|
|
.balign 4, 0
|
|
_021E713C: .word _0221A680
|
|
_021E7140: .word 0x000010E0
|
|
thumb_func_end ov00_021E7130
|
|
|
|
thumb_func_start ov00_021E7144
|
|
ov00_021E7144: ; 0x021E7144
|
|
ldr r3, _021E7148 ; =ov00_021EE448
|
|
bx r3
|
|
.balign 4, 0
|
|
_021E7148: .word ov00_021EE448
|
|
thumb_func_end ov00_021E7144
|
|
|
|
thumb_func_start ov00_021E714C
|
|
ov00_021E714C: ; 0x021E714C
|
|
push {r4, lr}
|
|
cmp r0, #0
|
|
beq _021E71B4
|
|
ldr r2, _021E7208 ; =_0221A680
|
|
ldr r0, _021E720C ; =0x00001088
|
|
ldr r3, [r2]
|
|
mov r4, #0xb
|
|
str r4, [r3, r0]
|
|
ldr r2, [r2]
|
|
sub r0, #0xf0
|
|
ldr r0, [r2, r0]
|
|
cmp r0, #0
|
|
bne _021E7204
|
|
add r0, r1, #0
|
|
ldr r1, _021E7210 ; =0x0000F020
|
|
bl AllocFromHeap
|
|
ldr r2, _021E7208 ; =_0221A680
|
|
ldr r1, _021E7214 ; =0x00000F98
|
|
ldr r3, [r2]
|
|
str r0, [r3, r1]
|
|
ldr r0, [r2]
|
|
mov r2, #0
|
|
ldr r0, [r0, r1]
|
|
mov r1, #0x1f
|
|
add r0, #0x1f
|
|
bic r0, r1
|
|
mov r1, #0xf
|
|
lsl r1, r1, #0xc
|
|
bl NNS_FndCreateExpHeapEx
|
|
ldr r2, _021E7208 ; =_0221A680
|
|
ldr r1, _021E7218 ; =0x00000F9C
|
|
ldr r3, [r2]
|
|
str r0, [r3, r1]
|
|
ldr r0, [r2]
|
|
ldr r0, [r0, r1]
|
|
mov r1, #0x10
|
|
bl NNS_FndSetGroupIDForExpHeap
|
|
ldr r0, _021E7208 ; =_0221A680
|
|
ldr r1, [r0]
|
|
ldr r0, _021E7218 ; =0x00000F9C
|
|
ldr r0, [r1, r0]
|
|
bl NNS_FndGetTotalFreeSizeForExpHeap
|
|
ldr r1, _021E7208 ; =_0221A680
|
|
ldr r2, [r1]
|
|
mov r1, #0xfa
|
|
lsl r1, r1, #4
|
|
str r0, [r2, r1]
|
|
pop {r4, pc}
|
|
_021E71B4:
|
|
ldr r2, _021E7208 ; =_0221A680
|
|
ldr r0, _021E721C ; =0x00001084
|
|
ldr r4, [r2]
|
|
add r1, r0, #4
|
|
ldr r3, [r4, r0]
|
|
str r3, [r4, r1]
|
|
add r1, r0, #0
|
|
ldr r4, [r2]
|
|
sub r1, #0xec
|
|
ldr r1, [r4, r1]
|
|
cmp r1, #0
|
|
beq _021E7204
|
|
sub r0, #0xe8
|
|
ldr r0, [r4, r0]
|
|
bl NNS_FndGetTotalFreeSizeForExpHeap
|
|
mov r1, #0xfa
|
|
lsl r1, r1, #4
|
|
ldr r2, [r4, r1]
|
|
cmp r2, r0
|
|
beq _021E71E6
|
|
mov r0, #1
|
|
bl sub_02039AD8
|
|
pop {r4, pc}
|
|
_021E71E6:
|
|
sub r0, r1, #4
|
|
ldr r0, [r4, r0]
|
|
bl NNS_FndDestroyExpHeap
|
|
ldr r0, _021E7208 ; =_0221A680
|
|
ldr r1, [r0]
|
|
ldr r0, _021E7214 ; =0x00000F98
|
|
ldr r0, [r1, r0]
|
|
bl FreeToHeap
|
|
ldr r0, _021E7208 ; =_0221A680
|
|
mov r2, #0
|
|
ldr r1, [r0]
|
|
ldr r0, _021E7214 ; =0x00000F98
|
|
str r2, [r1, r0]
|
|
_021E7204:
|
|
pop {r4, pc}
|
|
nop
|
|
_021E7208: .word _0221A680
|
|
_021E720C: .word 0x00001088
|
|
_021E7210: .word 0x0000F020
|
|
_021E7214: .word 0x00000F98
|
|
_021E7218: .word 0x00000F9C
|
|
_021E721C: .word 0x00001084
|
|
thumb_func_end ov00_021E714C
|
|
|
|
thumb_func_start ov00_021E7220
|
|
ov00_021E7220: ; 0x021E7220
|
|
ldr r1, _021E722C ; =_0221A680
|
|
ldr r2, [r1]
|
|
ldr r1, _021E7230 ; =0x000010E5
|
|
strb r0, [r2, r1]
|
|
bx lr
|
|
nop
|
|
_021E722C: .word _0221A680
|
|
_021E7230: .word 0x000010E5
|
|
thumb_func_end ov00_021E7220
|
|
|
|
thumb_func_start ov00_021E7234
|
|
ov00_021E7234: ; 0x021E7234
|
|
push {r4, lr}
|
|
ldr r1, _021E7274 ; =_0221A680
|
|
lsl r4, r0, #2
|
|
ldr r3, [r1]
|
|
mov r1, #0x3e
|
|
add r2, r3, r4
|
|
lsl r1, r1, #6
|
|
ldr r1, [r2, r1]
|
|
cmp r1, #0
|
|
beq _021E7270
|
|
add r2, r3, r0
|
|
ldr r0, _021E7278 ; =0x000010E1
|
|
ldrb r0, [r2, r0]
|
|
cmp r0, #1
|
|
bne _021E725A
|
|
add r0, r1, #0
|
|
bl FreeToHeap
|
|
b _021E7262
|
|
_021E725A:
|
|
mov r0, #0
|
|
add r2, r0, #0
|
|
bl ov00_021E6638
|
|
_021E7262:
|
|
ldr r0, _021E7274 ; =_0221A680
|
|
mov r2, #0
|
|
ldr r0, [r0]
|
|
add r1, r0, r4
|
|
mov r0, #0x3e
|
|
lsl r0, r0, #6
|
|
str r2, [r1, r0]
|
|
_021E7270:
|
|
pop {r4, pc}
|
|
nop
|
|
_021E7274: .word _0221A680
|
|
_021E7278: .word 0x000010E1
|
|
thumb_func_end ov00_021E7234
|
|
|
|
thumb_func_start ov00_021E727C
|
|
ov00_021E727C: ; 0x021E727C
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
bl ov00_021E7234
|
|
ldr r0, _021E72F4 ; =_0221A680
|
|
lsl r4, r5, #2
|
|
ldr r2, [r0]
|
|
mov r0, #0x3e
|
|
add r1, r2, r4
|
|
lsl r0, r0, #6
|
|
ldr r0, [r1, r0]
|
|
cmp r0, #0
|
|
bne _021E72F0
|
|
ldr r1, _021E72F8 ; =0x00001088
|
|
ldr r0, [r2, r1]
|
|
cmp r0, #0xb
|
|
bne _021E72B4
|
|
sub r1, #0x68
|
|
bl AllocFromHeap
|
|
ldr r2, _021E72F4 ; =_0221A680
|
|
ldr r1, [r2]
|
|
add r3, r1, r4
|
|
mov r1, #0x3e
|
|
lsl r1, r1, #6
|
|
str r0, [r3, r1]
|
|
mov r3, #1
|
|
b _021E72CC
|
|
_021E72B4:
|
|
mov r0, #0
|
|
sub r1, #0x88
|
|
mov r2, #0x20
|
|
bl ov00_021E65D4
|
|
ldr r2, _021E72F4 ; =_0221A680
|
|
ldr r1, [r2]
|
|
add r3, r1, r4
|
|
mov r1, #0x3e
|
|
lsl r1, r1, #6
|
|
str r0, [r3, r1]
|
|
mov r3, #0
|
|
_021E72CC:
|
|
ldr r0, [r2]
|
|
mov r2, #0x3e
|
|
add r1, r0, r5
|
|
ldr r0, _021E72FC ; =0x000010E1
|
|
lsl r2, r2, #6
|
|
strb r3, [r1, r0]
|
|
ldr r1, _021E72F4 ; =_0221A680
|
|
lsl r0, r5, #0x18
|
|
ldr r1, [r1]
|
|
mov r3, #0x1f
|
|
add r1, r1, r4
|
|
ldr r1, [r1, r2]
|
|
lsr r0, r0, #0x18
|
|
add r1, #0x1f
|
|
bic r1, r3
|
|
add r2, #0x80
|
|
bl ov00_021F9850
|
|
_021E72F0:
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_021E72F4: .word _0221A680
|
|
_021E72F8: .word 0x00001088
|
|
_021E72FC: .word 0x000010E1
|
|
thumb_func_end ov00_021E727C
|
|
|
|
thumb_func_start ov00_021E7300
|
|
ov00_021E7300: ; 0x021E7300
|
|
push {r4, lr}
|
|
mov r4, #0
|
|
_021E7304:
|
|
add r0, r4, #0
|
|
bl ov00_021E7234
|
|
add r4, r4, #1
|
|
cmp r4, #4
|
|
blt _021E7304
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov00_021E7300
|
|
|
|
thumb_func_start ov00_021E7314
|
|
ov00_021E7314: ; 0x021E7314
|
|
ldr r0, _021E7320 ; =_0221A680
|
|
ldr r1, [r0]
|
|
ldr r0, _021E7324 ; =0x000010E6
|
|
ldrb r0, [r1, r0]
|
|
bx lr
|
|
nop
|
|
_021E7320: .word _0221A680
|
|
_021E7324: .word 0x000010E6
|
|
thumb_func_end ov00_021E7314
|
|
|
|
thumb_func_start ov00_021E7328
|
|
ov00_021E7328: ; 0x021E7328
|
|
ldr r0, _021E7334 ; =_0221A680
|
|
mov r2, #0
|
|
ldr r1, [r0]
|
|
ldr r0, _021E7338 ; =0x000010E6
|
|
strb r2, [r1, r0]
|
|
bx lr
|
|
.balign 4, 0
|
|
_021E7334: .word _0221A680
|
|
_021E7338: .word 0x000010E6
|
|
thumb_func_end ov00_021E7328
|
|
|
|
thumb_func_start ov00_021E733C
|
|
ov00_021E733C: ; 0x021E733C
|
|
push {r3, r4, r5, lr}
|
|
bl MIC_Init
|
|
bl PM_Init
|
|
mov r0, #1
|
|
bl PM_SetAmp
|
|
mov r0, #3
|
|
bl PM_SetAmpGain
|
|
ldr r0, _021E73CC ; =_0221A684
|
|
mov r2, #0
|
|
ldr r1, [r0, #4]
|
|
ldr r3, _021E73D0 ; =0x00001A78
|
|
add r5, r2, #0
|
|
str r2, [r1, r3]
|
|
add r1, r3, #0
|
|
ldr r4, [r0, #4]
|
|
add r1, #0xc
|
|
str r2, [r4, r1]
|
|
ldr r4, [r0, #4]
|
|
add r1, r3, #4
|
|
str r2, [r4, r1]
|
|
add r1, r3, #0
|
|
ldr r4, [r0, #4]
|
|
add r1, #8
|
|
str r2, [r4, r1]
|
|
ldr r1, [r0, #4]
|
|
add r3, #0x10
|
|
str r2, [r1, r3]
|
|
ldr r3, _021E73D4 ; =0x00001A8C
|
|
add r1, r2, #0
|
|
_021E737E:
|
|
ldr r4, [r0, #4]
|
|
add r2, r2, #1
|
|
add r4, r4, r5
|
|
add r5, r5, #2
|
|
strh r1, [r4, r3]
|
|
cmp r2, #0x10
|
|
blt _021E737E
|
|
ldr r0, _021E73CC ; =_0221A684
|
|
ldr r2, [r0, #4]
|
|
ldr r0, _021E73D8 ; =0x00001AAC
|
|
str r1, [r2, r0]
|
|
mov r0, #1
|
|
bl VCT_EnableVAD
|
|
bl NNS_SndInit
|
|
ldr r0, _021E73CC ; =_0221A684
|
|
ldr r1, [r0, #4]
|
|
ldr r0, _021E73DC ; =0x000019F8
|
|
add r0, r1, r0
|
|
bl NNS_SndStrmInit
|
|
ldr r1, _021E73CC ; =_0221A684
|
|
mov r0, #0
|
|
ldr r2, [r1, #4]
|
|
ldr r1, _021E73E0 ; =0x0000110C
|
|
add r1, r2, r1
|
|
mov r2, #0x22
|
|
lsl r2, r2, #6
|
|
bl MIi_CpuClearFast
|
|
ldr r0, _021E73CC ; =_0221A684
|
|
mov r1, #0
|
|
str r1, [r0]
|
|
mov r0, #1
|
|
bl VCT_EnableEchoCancel
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_021E73CC: .word _0221A684
|
|
_021E73D0: .word 0x00001A78
|
|
_021E73D4: .word 0x00001A8C
|
|
_021E73D8: .word 0x00001AAC
|
|
_021E73DC: .word 0x000019F8
|
|
_021E73E0: .word 0x0000110C
|
|
thumb_func_end ov00_021E733C
|
|
|
|
thumb_func_start ov00_021E73E4
|
|
ov00_021E73E4: ; 0x021E73E4
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov00_021E73E4
|
|
|
|
thumb_func_start ov00_021E73E8
|
|
ov00_021E73E8: ; 0x021E73E8
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r1, #0
|
|
add r4, r2, #0
|
|
add r6, r3, #0
|
|
ldr r7, [sp, #0x1c]
|
|
cmp r0, #0
|
|
bne _021E7410
|
|
mov r7, #0
|
|
cmp r5, #0
|
|
bls _021E748A
|
|
_021E73FC:
|
|
ldr r0, [r4]
|
|
mov r1, #0
|
|
add r2, r6, #0
|
|
bl MI_CpuFill8
|
|
add r7, r7, #1
|
|
add r4, r4, #4
|
|
cmp r7, r5
|
|
blo _021E73FC
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021E7410:
|
|
ldr r0, _021E748C ; =_0221A684
|
|
ldr r1, _021E7490 ; =0x00001A59
|
|
ldr r0, [r0, #4]
|
|
ldrb r2, [r0, r1]
|
|
cmp r2, #0
|
|
beq _021E7432
|
|
add r1, r1, #3
|
|
add r0, r0, r1
|
|
ldr r1, _021E7494 ; =ov00_021E73E4
|
|
mov r2, #0
|
|
bl MIC_StartAutoSamplingAsync
|
|
ldr r1, _021E748C ; =_0221A684
|
|
mov r0, #0
|
|
ldr r2, [r1, #4]
|
|
ldr r1, _021E7490 ; =0x00001A59
|
|
strb r0, [r2, r1]
|
|
_021E7432:
|
|
bl MIC_GetLastSamplingAddress
|
|
sub r0, r0, r7
|
|
cmp r0, r6
|
|
bhs _021E743E
|
|
add r7, r7, r6
|
|
_021E743E:
|
|
ldr r0, _021E7498 ; =0x027FFFA8
|
|
ldrh r1, [r0]
|
|
mov r0, #2
|
|
lsl r0, r0, #0xe
|
|
and r0, r1
|
|
asr r0, r0, #0xf
|
|
beq _021E7454
|
|
ldr r0, _021E748C ; =_0221A684
|
|
ldr r1, [r0, #4]
|
|
ldr r0, _021E749C ; =0x0000110C
|
|
add r7, r1, r0
|
|
_021E7454:
|
|
ldr r0, _021E748C ; =_0221A684
|
|
ldr r1, [r0, #4]
|
|
ldr r0, _021E74A0 ; =0x000019F0
|
|
ldr r0, [r1, r0]
|
|
cmp r0, #0
|
|
bne _021E7468
|
|
add r0, r7, #0
|
|
add r1, r6, #0
|
|
bl VCT_SendAudio
|
|
_021E7468:
|
|
mov r7, #0
|
|
cmp r5, #0
|
|
bls _021E7480
|
|
_021E746E:
|
|
ldr r0, [r4]
|
|
add r1, r6, #0
|
|
mov r2, #0
|
|
bl VCT_ReceiveAudio
|
|
add r7, r7, #1
|
|
add r4, r4, #4
|
|
cmp r7, r5
|
|
blo _021E746E
|
|
_021E7480:
|
|
ldr r0, _021E748C ; =_0221A684
|
|
mov r2, #2
|
|
ldr r1, [r0, #4]
|
|
ldr r0, _021E74A4 ; =0x00001A58
|
|
strb r2, [r1, r0]
|
|
_021E748A:
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_021E748C: .word _0221A684
|
|
_021E7490: .word 0x00001A59
|
|
_021E7494: .word ov00_021E73E4
|
|
_021E7498: .word 0x027FFFA8
|
|
_021E749C: .word 0x0000110C
|
|
_021E74A0: .word 0x000019F0
|
|
_021E74A4: .word 0x00001A58
|
|
thumb_func_end ov00_021E73E8
|
|
|
|
thumb_func_start ov00_021E74A8
|
|
ov00_021E74A8: ; 0x021E74A8
|
|
push {r4, lr}
|
|
ldr r1, _021E74F4 ; =_0221A684
|
|
ldr r2, [r1, #4]
|
|
ldr r1, _021E74F8 ; =0x00001A54
|
|
ldr r4, [r2, r1]
|
|
cmp r4, #0
|
|
bne _021E74CA
|
|
bl VCT_CreateSession
|
|
add r4, r0, #0
|
|
bne _021E74C2
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
_021E74C2:
|
|
mov r1, #0
|
|
bl VCT_Request
|
|
b _021E74D2
|
|
_021E74CA:
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl VCT_Request
|
|
_021E74D2:
|
|
cmp r0, #0
|
|
beq _021E74E8
|
|
add r0, r4, #0
|
|
bl VCT_DeleteSession
|
|
ldr r1, _021E74F4 ; =_0221A684
|
|
mov r0, #0
|
|
ldr r2, [r1, #4]
|
|
ldr r1, _021E74F8 ; =0x00001A54
|
|
str r0, [r2, r1]
|
|
pop {r4, pc}
|
|
_021E74E8:
|
|
ldr r0, _021E74F4 ; =_0221A684
|
|
ldr r1, [r0, #4]
|
|
ldr r0, _021E74F8 ; =0x00001A54
|
|
str r4, [r1, r0]
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_021E74F4: .word _0221A684
|
|
_021E74F8: .word 0x00001A54
|
|
thumb_func_end ov00_021E74A8
|
|
|
|
thumb_func_start ov00_021E74FC
|
|
ov00_021E74FC: ; 0x021E74FC
|
|
push {r3, lr}
|
|
ldr r0, _021E753C ; =_0221A684
|
|
ldr r1, [r0, #4]
|
|
ldr r0, _021E7540 ; =0x00001A54
|
|
ldr r0, [r1, r0]
|
|
cmp r0, #0
|
|
beq _021E7536
|
|
ldr r1, [r0, #0xc]
|
|
cmp r1, #4
|
|
bne _021E7536
|
|
mov r1, #0
|
|
bl VCT_Response
|
|
cmp r0, #0
|
|
beq _021E751E
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
_021E751E:
|
|
ldr r0, _021E753C ; =_0221A684
|
|
ldr r1, [r0, #4]
|
|
ldr r0, _021E7540 ; =0x00001A54
|
|
ldr r0, [r1, r0]
|
|
bl VCT_StartStreaming
|
|
cmp r0, #0
|
|
beq _021E7532
|
|
mov r0, #1
|
|
pop {r3, pc}
|
|
_021E7532:
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
_021E7536:
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
nop
|
|
_021E753C: .word _0221A684
|
|
_021E7540: .word 0x00001A54
|
|
thumb_func_end ov00_021E74FC
|
|
|
|
thumb_func_start ov00_021E7544
|
|
ov00_021E7544: ; 0x021E7544
|
|
push {r3, lr}
|
|
cmp r1, #7
|
|
beq _021E755C
|
|
cmp r1, #9
|
|
beq _021E7554
|
|
cmp r1, #0xc
|
|
beq _021E7564
|
|
pop {r3, pc}
|
|
_021E7554:
|
|
add r0, r2, #0
|
|
bl ov00_021E7638
|
|
pop {r3, pc}
|
|
_021E755C:
|
|
add r0, r2, #0
|
|
bl VCT_StartStreaming
|
|
pop {r3, pc}
|
|
_021E7564:
|
|
add r0, r2, #0
|
|
bl ov00_021E7638
|
|
pop {r3, pc}
|
|
thumb_func_end ov00_021E7544
|
|
|
|
thumb_func_start ov00_021E756C
|
|
ov00_021E756C: ; 0x021E756C
|
|
push {r4, lr}
|
|
add r4, r2, #0
|
|
cmp r1, #0xc
|
|
bhi _021E7624
|
|
add r0, r1, r1
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_021E7580: ; jump table
|
|
.short _021E7624 - _021E7580 - 2 ; case 0
|
|
.short _021E759A - _021E7580 - 2 ; case 1
|
|
.short _021E7616 - _021E7580 - 2 ; case 2
|
|
.short _021E761E - _021E7580 - 2 ; case 3
|
|
.short _021E75DA - _021E7580 - 2 ; case 4
|
|
.short _021E7624 - _021E7580 - 2 ; case 5
|
|
.short _021E7624 - _021E7580 - 2 ; case 6
|
|
.short _021E75EA - _021E7580 - 2 ; case 7
|
|
.short _021E75BA - _021E7580 - 2 ; case 8
|
|
.short _021E75CE - _021E7580 - 2 ; case 9
|
|
.short _021E7624 - _021E7580 - 2 ; case 10
|
|
.short _021E761E - _021E7580 - 2 ; case 11
|
|
.short _021E761E - _021E7580 - 2 ; case 12
|
|
_021E759A:
|
|
ldr r0, _021E7628 ; =_0221A684
|
|
ldr r2, [r0, #4]
|
|
ldr r0, _021E762C ; =0x00001A54
|
|
ldr r1, [r2, r0]
|
|
cmp r1, #0
|
|
beq _021E75B6
|
|
add r0, r4, #0
|
|
mov r1, #3
|
|
bl VCT_Response
|
|
add r0, r4, #0
|
|
bl VCT_DeleteSession
|
|
pop {r4, pc}
|
|
_021E75B6:
|
|
str r4, [r2, r0]
|
|
pop {r4, pc}
|
|
_021E75BA:
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl VCT_Response
|
|
add r0, r4, #0
|
|
bl ov00_021E7638
|
|
bl ov00_021E6A4C
|
|
pop {r4, pc}
|
|
_021E75CE:
|
|
add r0, r4, #0
|
|
bl ov00_021E7638
|
|
bl ov00_021E6A4C
|
|
pop {r4, pc}
|
|
_021E75DA:
|
|
add r0, r4, #0
|
|
mov r1, #4
|
|
bl VCT_Response
|
|
add r0, r4, #0
|
|
bl ov00_021E7638
|
|
pop {r4, pc}
|
|
_021E75EA:
|
|
ldr r0, _021E7628 ; =_0221A684
|
|
ldr r2, [r4]
|
|
ldr r1, [r0, #4]
|
|
ldr r0, _021E7630 ; =0x000019E8
|
|
ldr r0, [r1, r0]
|
|
cmp r2, r0
|
|
beq _021E7600
|
|
add r0, r4, #0
|
|
bl ov00_021E7638
|
|
pop {r4, pc}
|
|
_021E7600:
|
|
add r0, r4, #0
|
|
bl VCT_StartStreaming
|
|
cmp r0, #0
|
|
beq _021E7624
|
|
ldr r0, _021E7628 ; =_0221A684
|
|
mov r2, #2
|
|
ldr r1, [r0, #4]
|
|
ldr r0, _021E7634 ; =0x000019EC
|
|
str r2, [r1, r0]
|
|
pop {r4, pc}
|
|
_021E7616:
|
|
add r0, r4, #0
|
|
bl ov00_021E7638
|
|
pop {r4, pc}
|
|
_021E761E:
|
|
add r0, r4, #0
|
|
bl ov00_021E7638
|
|
_021E7624:
|
|
pop {r4, pc}
|
|
nop
|
|
_021E7628: .word _0221A684
|
|
_021E762C: .word 0x00001A54
|
|
_021E7630: .word 0x000019E8
|
|
_021E7634: .word 0x000019EC
|
|
thumb_func_end ov00_021E756C
|
|
|
|
thumb_func_start ov00_021E7638
|
|
ov00_021E7638: ; 0x021E7638
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bl VCT_StopStreaming
|
|
add r0, r4, #0
|
|
bl VCT_DeleteSession
|
|
ldr r0, _021E7654 ; =_0221A684
|
|
mov r2, #0
|
|
ldr r1, [r0, #4]
|
|
ldr r0, _021E7658 ; =0x00001A54
|
|
str r2, [r1, r0]
|
|
pop {r4, pc}
|
|
nop
|
|
_021E7654: .word _0221A684
|
|
_021E7658: .word 0x00001A54
|
|
thumb_func_end ov00_021E7638
|
|
|
|
thumb_func_start ov00_021E765C
|
|
ov00_021E765C: ; 0x021E765C
|
|
push {r4, r5, r6, lr}
|
|
bl OS_GetTick
|
|
add r4, r0, #0
|
|
ldr r0, _021E778C ; =_0221A684
|
|
add r5, r1, #0
|
|
ldr r0, [r0, #8]
|
|
sub r1, r4, r0
|
|
mov r0, #0xfa
|
|
lsl r0, r0, #8
|
|
mul r0, r1
|
|
ldr r1, _021E7790 ; =0x000082EA
|
|
bl _u32_div_f
|
|
ldr r1, _021E778C ; =_0221A684
|
|
ldr r3, _021E7794 ; =0x0000411A
|
|
ldr r2, [r1]
|
|
sub r0, r0, r3
|
|
add r2, r2, r0
|
|
ldr r0, _021E7798 ; =0xFFFFD8F0
|
|
str r2, [r1]
|
|
cmp r2, r0
|
|
bge _021E768E
|
|
mov r0, #0
|
|
str r0, [r1]
|
|
_021E768E:
|
|
ldr r0, _021E778C ; =_0221A684
|
|
str r4, [r0, #8]
|
|
str r5, [r0, #0xc]
|
|
bl VCT_Main
|
|
ldr r4, _021E778C ; =_0221A684
|
|
ldr r0, _021E7794 ; =0x0000411A
|
|
ldr r1, [r4]
|
|
cmp r1, r0
|
|
blt _021E76B4
|
|
add r6, r0, #0
|
|
add r5, r0, #0
|
|
_021E76A6:
|
|
bl VCT_Main
|
|
ldr r0, [r4]
|
|
sub r0, r0, r6
|
|
str r0, [r4]
|
|
cmp r0, r5
|
|
bge _021E76A6
|
|
_021E76B4:
|
|
ldr r0, _021E778C ; =_0221A684
|
|
ldr r2, [r0, #4]
|
|
mov r0, #0x6a
|
|
lsl r0, r0, #6
|
|
ldr r1, [r2, r0]
|
|
cmp r1, #0
|
|
beq _021E7708
|
|
sub r0, r0, #4
|
|
ldr r0, [r2, r0]
|
|
cmp r0, #3
|
|
bhi _021E76FC
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_021E76D6: ; jump table
|
|
.short _021E76DE - _021E76D6 - 2 ; case 0
|
|
.short _021E76E6 - _021E76D6 - 2 ; case 1
|
|
.short _021E76EE - _021E76D6 - 2 ; case 2
|
|
.short _021E76F6 - _021E76D6 - 2 ; case 3
|
|
_021E76DE:
|
|
mov r0, #3
|
|
bl PM_SetAmpGain
|
|
b _021E76FC
|
|
_021E76E6:
|
|
mov r0, #2
|
|
bl PM_SetAmpGain
|
|
b _021E76FC
|
|
_021E76EE:
|
|
mov r0, #1
|
|
bl PM_SetAmpGain
|
|
b _021E76FC
|
|
_021E76F6:
|
|
mov r0, #0
|
|
bl PM_SetAmpGain
|
|
_021E76FC:
|
|
ldr r0, _021E778C ; =_0221A684
|
|
mov r2, #0
|
|
ldr r1, [r0, #4]
|
|
mov r0, #0x6a
|
|
lsl r0, r0, #6
|
|
str r2, [r1, r0]
|
|
_021E7708:
|
|
ldr r3, _021E778C ; =_0221A684
|
|
ldr r2, _021E779C ; =0x000019E8
|
|
ldr r0, [r3, #4]
|
|
ldr r1, [r0, r2]
|
|
cmp r1, #3
|
|
beq _021E7788
|
|
add r1, r2, #4
|
|
ldr r1, [r0, r1]
|
|
cmp r1, #0
|
|
beq _021E7724
|
|
cmp r1, #1
|
|
beq _021E7768
|
|
cmp r1, #2
|
|
pop {r4, r5, r6, pc}
|
|
_021E7724:
|
|
bl ov00_021E6964
|
|
cmp r0, #0
|
|
bne _021E774A
|
|
mov r0, #1
|
|
bl ov00_021E74A8
|
|
cmp r0, #0
|
|
beq _021E7788
|
|
ldr r1, _021E778C ; =_0221A684
|
|
ldr r0, _021E77A0 ; =0x000019EC
|
|
ldr r2, [r1, #4]
|
|
mov r3, #1
|
|
str r3, [r2, r0]
|
|
ldr r1, [r1, #4]
|
|
mov r2, #0x3c
|
|
add r0, #0x6e
|
|
strh r2, [r1, r0]
|
|
pop {r4, r5, r6, pc}
|
|
_021E774A:
|
|
bl ov00_021E6964
|
|
cmp r0, #1
|
|
bne _021E7788
|
|
mov r0, #0
|
|
bl ov00_021E74FC
|
|
cmp r0, #0
|
|
beq _021E7788
|
|
ldr r0, _021E778C ; =_0221A684
|
|
mov r2, #2
|
|
ldr r1, [r0, #4]
|
|
ldr r0, _021E77A0 ; =0x000019EC
|
|
str r2, [r1, r0]
|
|
pop {r4, r5, r6, pc}
|
|
_021E7768:
|
|
add r1, r2, #0
|
|
add r1, #0x72
|
|
ldrh r1, [r0, r1]
|
|
sub r4, r1, #1
|
|
add r1, r2, #0
|
|
add r1, #0x72
|
|
strh r4, [r0, r1]
|
|
add r0, r2, #0
|
|
ldr r3, [r3, #4]
|
|
add r0, #0x72
|
|
ldrh r0, [r3, r0]
|
|
cmp r0, #0
|
|
bne _021E7788
|
|
mov r1, #0
|
|
add r0, r2, #4
|
|
str r1, [r3, r0]
|
|
_021E7788:
|
|
pop {r4, r5, r6, pc}
|
|
nop
|
|
_021E778C: .word _0221A684
|
|
_021E7790: .word 0x000082EA
|
|
_021E7794: .word 0x0000411A
|
|
_021E7798: .word 0xFFFFD8F0
|
|
_021E779C: .word 0x000019E8
|
|
_021E77A0: .word 0x000019EC
|
|
thumb_func_end ov00_021E765C
|
|
|
|
thumb_func_start ov00_021E77A4
|
|
ov00_021E77A4: ; 0x021E77A4
|
|
push {r3, lr}
|
|
ldr r3, _021E77C8 ; =_0221A684
|
|
ldr r3, [r3, #4]
|
|
cmp r3, #0
|
|
bne _021E77B2
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
_021E77B2:
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
bl VCT_HandleData
|
|
cmp r0, #0
|
|
beq _021E77C2
|
|
mov r0, #1
|
|
pop {r3, pc}
|
|
_021E77C2:
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
nop
|
|
_021E77C8: .word _0221A684
|
|
thumb_func_end ov00_021E77A4
|
|
|
|
thumb_func_start ov00_021E77CC
|
|
ov00_021E77CC: ; 0x021E77CC
|
|
push {r4, r5, r6, lr}
|
|
add r4, r2, #0
|
|
add r4, #0x20
|
|
add r5, r0, #0
|
|
add r6, r1, #0
|
|
add r0, r3, #0
|
|
add r1, r4, #0
|
|
bl AllocFromHeap
|
|
str r0, [r5]
|
|
mov r1, #0
|
|
add r2, r4, #0
|
|
bl MI_CpuFill8
|
|
ldr r1, [r5]
|
|
mov r0, #0x1f
|
|
add r1, #0x1f
|
|
bic r1, r0
|
|
str r1, [r6]
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end ov00_021E77CC
|
|
|
|
thumb_func_start ov00_021E77F4
|
|
ov00_021E77F4: ; 0x021E77F4
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x38
|
|
add r5, r0, #0
|
|
add r6, r1, #0
|
|
add r0, sp, #0x14
|
|
mov r1, #0
|
|
strb r1, [r0]
|
|
strb r1, [r0, #1]
|
|
strb r1, [r0, #2]
|
|
ldr r0, _021E797C ; =_0221A684
|
|
add r4, r2, #0
|
|
ldr r0, [r0, #4]
|
|
cmp r0, #0
|
|
bne _021E7858
|
|
str r1, [sp, #0x10]
|
|
ldr r1, _021E7980 ; =_0221A688
|
|
ldr r2, _021E7984 ; =0x00001AB0
|
|
add r0, sp, #0x10
|
|
add r3, r5, #0
|
|
bl ov00_021E77CC
|
|
ldr r0, _021E797C ; =_0221A684
|
|
mov r2, #0x22
|
|
ldr r3, [sp, #0x10]
|
|
ldr r1, [r0, #4]
|
|
lsl r2, r2, #6
|
|
str r3, [r1, r2]
|
|
ldr r1, [r0, #4]
|
|
add r0, r2, #0
|
|
add r0, #8
|
|
add r2, r2, #4
|
|
add r0, r1, r0
|
|
add r1, r1, r2
|
|
mov r2, #0x8f
|
|
lsl r2, r2, #6
|
|
mul r2, r4
|
|
add r2, #0x20
|
|
add r3, r5, #0
|
|
bl ov00_021E77CC
|
|
ldr r1, _021E797C ; =_0221A684
|
|
ldr r0, _021E7988 ; =0x000019F4
|
|
ldr r2, [r1, #4]
|
|
str r5, [r2, r0]
|
|
ldr r1, [r1, #4]
|
|
mov r2, #0
|
|
sub r0, #0x68
|
|
str r2, [r1, r0]
|
|
bl ov00_021E733C
|
|
_021E7858:
|
|
ldr r3, _021E797C ; =_0221A684
|
|
mov r5, #0x22
|
|
ldr r0, [r3, #4]
|
|
ldr r2, _021E798C ; =0x00001A5C
|
|
mov r1, #3
|
|
str r1, [r0, r2]
|
|
ldr r1, [r3, #4]
|
|
add r0, r2, #4
|
|
str r1, [r1, r0]
|
|
add r0, r2, #0
|
|
ldr r1, [r3, #4]
|
|
lsl r5, r5, #6
|
|
add r0, #8
|
|
str r5, [r1, r0]
|
|
mov r5, #0x41
|
|
add r0, r2, #0
|
|
ldr r1, [r3, #4]
|
|
lsl r5, r5, #6
|
|
add r0, #0xc
|
|
str r5, [r1, r0]
|
|
add r0, r2, #0
|
|
ldr r5, [r3, #4]
|
|
mov r1, #1
|
|
add r0, #0x10
|
|
str r1, [r5, r0]
|
|
add r0, r2, #0
|
|
ldr r5, [r3, #4]
|
|
mov r7, #0
|
|
add r0, #0x14
|
|
str r7, [r5, r0]
|
|
add r0, r2, #0
|
|
ldr r5, [r3, #4]
|
|
add r0, #0x18
|
|
str r7, [r5, r0]
|
|
sub r0, r2, #3
|
|
ldr r5, [r3, #4]
|
|
sub r2, #0x64
|
|
strb r1, [r5, r0]
|
|
ldr r0, [r3, #4]
|
|
add r0, r0, r2
|
|
add r2, sp, #0x14
|
|
bl NNS_SndStrmAllocChannel
|
|
ldr r0, _021E797C ; =_0221A684
|
|
ldr r1, [r0, #4]
|
|
ldr r0, _021E7990 ; =0x000019F8
|
|
add r0, r1, r0
|
|
add r1, r7, #0
|
|
bl NNS_SndStrmSetVolume
|
|
ldr r0, _021E797C ; =_0221A684
|
|
ldr r3, _021E7994 ; =0x0000088C
|
|
ldr r2, [r0, #4]
|
|
mov r0, #0x41
|
|
str r0, [sp]
|
|
mov r0, #2
|
|
str r0, [sp, #4]
|
|
ldr r0, _021E7998 ; =ov00_021E73E8
|
|
mov r1, #1
|
|
str r0, [sp, #8]
|
|
ldr r0, _021E7990 ; =0x000019F8
|
|
str r2, [sp, #0xc]
|
|
add r0, r2, r0
|
|
add r2, r2, r3
|
|
sub r3, #0xc
|
|
bl NNS_SndStrmSetup
|
|
ldr r1, _021E797C ; =_0221A684
|
|
ldr r0, _021E799C ; =0x000019EC
|
|
ldr r2, [r1, #4]
|
|
add r3, r7, #0
|
|
str r3, [r2, r0]
|
|
ldr r1, [r1, #4]
|
|
add r0, #0x68
|
|
str r3, [r1, r0]
|
|
bl sub_0203993C
|
|
bl sub_02034084
|
|
cmp r0, #0
|
|
bne _021E7900
|
|
mov r0, #1
|
|
str r0, [sp, #0x20]
|
|
b _021E7904
|
|
_021E7900:
|
|
mov r0, #3
|
|
str r0, [sp, #0x20]
|
|
_021E7904:
|
|
ldr r1, _021E797C ; =_0221A684
|
|
ldr r3, [sp, #0x20]
|
|
ldr r2, [r1, #4]
|
|
ldr r0, _021E79A0 ; =0x000019E8
|
|
str r3, [r2, r0]
|
|
ldr r1, [r1, #4]
|
|
sub r0, #0x58
|
|
add r0, r1, r0
|
|
str r0, [sp, #0x18]
|
|
str r4, [sp, #0x1c]
|
|
bl ov00_021EE490
|
|
add r1, sp, #0x10
|
|
strb r0, [r1, #0x14]
|
|
mov r0, #0
|
|
ldrb r1, [r1, #0x14]
|
|
mvn r0, r0
|
|
cmp r1, r0
|
|
bne _021E792E
|
|
bl GF_AssertFail
|
|
_021E792E:
|
|
ldr r0, _021E797C ; =_0221A684
|
|
ldr r1, _021E79A0 ; =0x000019E8
|
|
ldr r0, [r0, #4]
|
|
ldr r1, [r0, r1]
|
|
cmp r1, #3
|
|
bne _021E7940
|
|
ldr r1, _021E79A4 ; =ov00_021E7544
|
|
str r1, [sp, #0x30]
|
|
b _021E7944
|
|
_021E7940:
|
|
ldr r1, _021E79A8 ; =ov00_021E756C
|
|
str r1, [sp, #0x30]
|
|
_021E7944:
|
|
mov r1, #0
|
|
str r1, [sp, #0x34]
|
|
ldr r1, _021E79AC ; =0x00000884
|
|
ldr r0, [r0, r1]
|
|
str r0, [sp, #0x28]
|
|
mov r0, #0x8f
|
|
lsl r0, r0, #6
|
|
mul r0, r4
|
|
add r0, #0x20
|
|
str r0, [sp, #0x2c]
|
|
add r0, sp, #0x18
|
|
bl VCT_Init
|
|
ldr r0, _021E797C ; =_0221A684
|
|
mov r2, #0
|
|
ldr r1, [r0, #4]
|
|
ldr r0, _021E79B0 ; =0x000019F0
|
|
str r2, [r1, r0]
|
|
add r0, r6, #0
|
|
bl VCT_SetCodec
|
|
bl ov00_021E79B4
|
|
mov r0, #1
|
|
bl VCT_EnableEchoCancel
|
|
add sp, #0x38
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_021E797C: .word _0221A684
|
|
_021E7980: .word _0221A688
|
|
_021E7984: .word 0x00001AB0
|
|
_021E7988: .word 0x000019F4
|
|
_021E798C: .word 0x00001A5C
|
|
_021E7990: .word 0x000019F8
|
|
_021E7994: .word 0x0000088C
|
|
_021E7998: .word ov00_021E73E8
|
|
_021E799C: .word 0x000019EC
|
|
_021E79A0: .word 0x000019E8
|
|
_021E79A4: .word ov00_021E7544
|
|
_021E79A8: .word ov00_021E756C
|
|
_021E79AC: .word 0x00000884
|
|
_021E79B0: .word 0x000019F0
|
|
thumb_func_end ov00_021E77F4
|
|
|
|
thumb_func_start ov00_021E79B4
|
|
ov00_021E79B4: ; 0x021E79B4
|
|
ldr r0, _021E79C0 ; =_0221A684
|
|
ldr r3, _021E79C4 ; =NNS_SndStrmStart
|
|
ldr r1, [r0, #4]
|
|
ldr r0, _021E79C8 ; =0x000019F8
|
|
add r0, r1, r0
|
|
bx r3
|
|
.balign 4, 0
|
|
_021E79C0: .word _0221A684
|
|
_021E79C4: .word NNS_SndStrmStart
|
|
_021E79C8: .word 0x000019F8
|
|
thumb_func_end ov00_021E79B4
|
|
|
|
thumb_func_start ov00_021E79CC
|
|
ov00_021E79CC: ; 0x021E79CC
|
|
push {r3, lr}
|
|
ldr r0, _021E7A14 ; =_0221A684
|
|
ldr r1, _021E7A18 ; =0x00001A54
|
|
ldr r2, [r0, #4]
|
|
ldr r0, [r2, r1]
|
|
cmp r0, #0
|
|
beq _021E79E2
|
|
sub r1, #0x68
|
|
ldr r1, [r2, r1]
|
|
cmp r1, #0
|
|
bne _021E79E8
|
|
_021E79E2:
|
|
bl ov00_021E6A4C
|
|
pop {r3, pc}
|
|
_021E79E8:
|
|
cmp r1, #1
|
|
bne _021E79FC
|
|
mov r1, #2
|
|
bl VCT_Request
|
|
cmp r0, #0
|
|
beq _021E79FC
|
|
bl ov00_021E6A4C
|
|
pop {r3, pc}
|
|
_021E79FC:
|
|
ldr r0, _021E7A14 ; =_0221A684
|
|
ldr r1, [r0, #4]
|
|
ldr r0, _021E7A18 ; =0x00001A54
|
|
ldr r0, [r1, r0]
|
|
mov r1, #1
|
|
bl VCT_Request
|
|
cmp r0, #0
|
|
beq _021E7A12
|
|
bl ov00_021E6A4C
|
|
_021E7A12:
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
_021E7A14: .word _0221A684
|
|
_021E7A18: .word 0x00001A54
|
|
thumb_func_end ov00_021E79CC
|
|
|
|
thumb_func_start ov00_021E7A1C
|
|
ov00_021E7A1C: ; 0x021E7A1C
|
|
ldr r1, _021E7A28 ; =_0221A684
|
|
ldr r2, [r1, #4]
|
|
ldr r1, _021E7A2C ; =0x0000198C
|
|
str r0, [r2, r1]
|
|
bx lr
|
|
nop
|
|
_021E7A28: .word _0221A684
|
|
_021E7A2C: .word 0x0000198C
|
|
thumb_func_end ov00_021E7A1C
|
|
|
|
thumb_func_start ov00_021E7A30
|
|
ov00_021E7A30: ; 0x021E7A30
|
|
push {r4, lr}
|
|
ldr r0, _021E7A90 ; =_0221A684
|
|
ldr r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _021E7A8C
|
|
ldr r0, _021E7A94 ; =0x0000198C
|
|
ldr r4, [r1, r0]
|
|
bl MIC_StopAutoSampling
|
|
ldr r0, _021E7A90 ; =_0221A684
|
|
ldr r1, [r0, #4]
|
|
ldr r0, _021E7A98 ; =0x000019F8
|
|
add r0, r1, r0
|
|
bl NNS_SndStrmStop
|
|
ldr r0, _021E7A90 ; =_0221A684
|
|
ldr r1, [r0, #4]
|
|
ldr r0, _021E7A98 ; =0x000019F8
|
|
add r0, r1, r0
|
|
bl NNS_SndStrmFreeChannel
|
|
bl VCT_Cleanup
|
|
ldr r0, _021E7A90 ; =_0221A684
|
|
ldr r1, _021E7A9C ; =0x00000888
|
|
ldr r2, [r0, #4]
|
|
ldr r0, _021E7AA0 ; =0x000019F4
|
|
ldr r1, [r2, r1]
|
|
ldr r0, [r2, r0]
|
|
bl FreeToHeapExplicit
|
|
ldr r0, _021E7A90 ; =_0221A684
|
|
mov r1, #0x22
|
|
ldr r2, [r0, #4]
|
|
ldr r0, _021E7AA0 ; =0x000019F4
|
|
lsl r1, r1, #6
|
|
ldr r0, [r2, r0]
|
|
ldr r1, [r2, r1]
|
|
bl FreeToHeapExplicit
|
|
mov r1, #0
|
|
ldr r0, _021E7A90 ; =_0221A684
|
|
cmp r4, #0
|
|
str r1, [r0, #4]
|
|
beq _021E7A8C
|
|
blx r4
|
|
_021E7A8C:
|
|
pop {r4, pc}
|
|
nop
|
|
_021E7A90: .word _0221A684
|
|
_021E7A94: .word 0x0000198C
|
|
_021E7A98: .word 0x000019F8
|
|
_021E7A9C: .word 0x00000888
|
|
_021E7AA0: .word 0x000019F4
|
|
thumb_func_end ov00_021E7A30
|
|
|
|
thumb_func_start ov00_021E7AA4
|
|
ov00_021E7AA4: ; 0x021E7AA4
|
|
push {r3, lr}
|
|
sub sp, #0x10
|
|
ldr r0, _021E7AC8 ; =_0221A684
|
|
ldr r0, [r0, #4]
|
|
cmp r0, #0
|
|
beq _021E7AC2
|
|
add r0, sp, #0
|
|
bl VCT_GetVADInfo
|
|
ldr r0, [sp, #4]
|
|
cmp r0, #2
|
|
ble _021E7AC2
|
|
ldr r0, [sp]
|
|
add sp, #0x10
|
|
pop {r3, pc}
|
|
_021E7AC2:
|
|
mov r0, #0
|
|
add sp, #0x10
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
_021E7AC8: .word _0221A684
|
|
thumb_func_end ov00_021E7AA4
|
|
|
|
thumb_func_start ov00_021E7ACC
|
|
ov00_021E7ACC: ; 0x021E7ACC
|
|
ldr r0, _021E7AD8 ; =_0221A684
|
|
mov r2, #1
|
|
ldr r1, [r0, #4]
|
|
ldr r0, _021E7ADC ; =0x000019F0
|
|
str r2, [r1, r0]
|
|
bx lr
|
|
.balign 4, 0
|
|
_021E7AD8: .word _0221A684
|
|
_021E7ADC: .word 0x000019F0
|
|
thumb_func_end ov00_021E7ACC
|
|
|
|
thumb_func_start ov00_021E7AE0
|
|
ov00_021E7AE0: ; 0x021E7AE0
|
|
ldr r0, _021E7AEC ; =_0221A684
|
|
mov r2, #0
|
|
ldr r1, [r0, #4]
|
|
ldr r0, _021E7AF0 ; =0x000019F0
|
|
str r2, [r1, r0]
|
|
bx lr
|
|
.balign 4, 0
|
|
_021E7AEC: .word _0221A684
|
|
_021E7AF0: .word 0x000019F0
|
|
thumb_func_end ov00_021E7AE0
|
|
|
|
thumb_func_start ov00_021E7AF4
|
|
ov00_021E7AF4: ; 0x021E7AF4
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r6, r0, #0
|
|
ldr r0, _021E7B54 ; =_0221A684
|
|
add r7, r1, #0
|
|
ldr r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _021E7B0A
|
|
ldr r0, _021E7B58 ; =0x000019E8
|
|
ldr r0, [r1, r0]
|
|
cmp r0, #3
|
|
beq _021E7B0E
|
|
_021E7B0A:
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021E7B0E:
|
|
mov r4, #0
|
|
add r5, r4, #0
|
|
_021E7B12:
|
|
cmp r4, r7
|
|
beq _021E7B48
|
|
mov r0, #1
|
|
lsl r0, r4
|
|
tst r0, r6
|
|
beq _021E7B48
|
|
ldr r0, _021E7B54 ; =_0221A684
|
|
ldr r0, [r0, #4]
|
|
add r1, r0, r5
|
|
ldr r0, _021E7B5C ; =0x000019D8
|
|
ldr r0, [r1, r0]
|
|
cmp r0, #1
|
|
beq _021E7B48
|
|
lsl r0, r4, #0x18
|
|
lsr r0, r0, #0x18
|
|
bl VCT_AddConferenceClient
|
|
cmp r0, #0
|
|
beq _021E7B3C
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_021E7B3C:
|
|
ldr r0, _021E7B54 ; =_0221A684
|
|
mov r1, #1
|
|
ldr r0, [r0, #4]
|
|
add r2, r0, r5
|
|
ldr r0, _021E7B5C ; =0x000019D8
|
|
str r1, [r2, r0]
|
|
_021E7B48:
|
|
add r4, r4, #1
|
|
add r5, r5, #4
|
|
cmp r4, #4
|
|
blt _021E7B12
|
|
mov r0, #1
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_021E7B54: .word _0221A684
|
|
_021E7B58: .word 0x000019E8
|
|
_021E7B5C: .word 0x000019D8
|
|
thumb_func_end ov00_021E7AF4
|
|
|
|
.rodata
|
|
|
|
_0221602C:
|
|
.byte 0x01, 0x02, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
.balign 4, 0
|
|
_02216034:
|
|
.asciz "%s = '%s'"
|
|
.balign 4, 0
|
|
|
|
.data
|
|
|
|
.balign 4, 0
|
|
_02216400:
|
|
.asciz "pokemondpds"
|
|
.balign 4, 0
|
|
_0221640C:
|
|
.asciz "1vTlwb"
|
|
.balign 4, 0
|
|
_02216414:
|
|
.asciz "ppw_lobby"
|
|
.balign 4, 0
|
|
|
|
.bss
|
|
|
|
_0221A680:
|
|
.space 0x4
|
|
|
|
_0221A684:
|
|
.space 0x4
|
|
|
|
_0221A688:
|
|
.space 0xC
|