Function at 0x14001e5e0
Capabilities:
Identify system language via api

Disassembly:
mov rax, rsp
mov qword [rax + 0x18], r8
mov qword [rax + 0x10], rdx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x90
mov qword [rsp + 0x78], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov r13, r8
mov r12, rdx
xor esi, esi
mov dword [rax + 0x20], esi
mov rdi, qword [r8]
sub rdi, 0x18
mov rcx, qword [rdi]
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rcx, rax
cmp dword [rdi + 0x10], esi
jl 0x14001e63c
cmp rax, qword [rdi]
jne 0x14001e63c
mov rbx, rdi
lock add dword [rdi + 0x10], 1
jmp 0x14001e67b
mov rax, qword [rax]
mov r8d, 2
mov edx, dword [rdi + 8]
call qword [rax]
mov rbx, rax
test rax, rax
jne 0x14001e658
call fcn.140003050
int3
mov eax, dword [rdi + 8]
mov dword [rbx + 8], eax
mov eax, dword [rdi + 8]
add eax, 1
movsxd rdx, eax
lea r9, [rdx + rdx]
lea r8, [rdi + 0x18]
add rdx, rdx
lea rcx, [rbx + 0x18]
call fcn.1400525a0
lea rax, [rbx + 0x18]
mov qword [rsp + 0x68], rax
lea rcx, [rsp + 0x68]
call fcn.140008130
movzx edi, ax
call qword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
mov ebx, esi
movzx ecx, ax
xor cx, di
mov r15d, 1
test cx, 0x3ff
jne 0x14001e6c1
shr di, 0xa
shr ax, 0xa
cmp ax, di
je 0x14001e6be
test di, di
jne 0x14001e6c1
mov ebx, r15d
call fcn.1400280cc
mov rdx, rax
mov ecx, esi
test rax, rax
setne cl
test ecx, ecx
jne 0x14001e6e0
mov ecx, 0x80004005
call fcn.140003280
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x30], rax
test ebx, ebx
je 0x14001e723
xor eax, eax
or rbx, 0xffffffffffffffff
mov rcx, rbx
lea rdi, str.UPNAVIRES
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
lea rdx, str.UPNAVIRES
lea rcx, [rsp + 0x30]
call fcn.1400036f0
jmp 0x14001e74e
xor eax, eax
or rbx, 0xffffffffffffffff
mov rcx, rbx
lea rdi, str.UPNAVIRESE
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
lea rdx, str.UPNAVIRESE
lea rcx, [rsp + 0x30]
call fcn.1400036f0
call fcn.1400280cc
mov rdx, rax
mov ecx, esi
test rax, rax
setne cl
test ecx, ecx
jne 0x14001e76d
mov ecx, 0x80004005
call fcn.140003280
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
add rax, 0x18
mov qword [r12], rax
mov dword [rsp + 0xe8], r15d
call fcn.1400280cc
mov rdx, rax
mov ecx, esi
test rax, rax
setne cl
test ecx, ecx
jne 0x14001e7a5
mov ecx, 0x80004005
call fcn.140003280
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x20], rax
mov rdi, qword [r13]
mov rcx, qword [rdi - 0x18]
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rcx, rax
cmp dword [rdi - 8], 0
jl 0x14001e7df
cmp rax, qword [rdi - 0x18]
jne 0x14001e7df
lea rbp, [rdi - 0x18]
lock add dword [rdi - 8], 1
jmp 0x14001e81d
mov rax, qword [rax]
mov r8d, 2
mov edx, dword [rdi - 0x10]
call qword [rax]
mov rbp, rax
test rax, rax
jne 0x14001e7fb
call fcn.140003050
int3
mov eax, dword [rdi - 0x10]
mov dword [rbp + 8], eax
mov eax, dword [rdi - 0x10]
add eax, 1
movsxd rdx, eax
lea r9, [rdx + rdx]
mov r8, rdi
add rdx, rdx
lea rcx, [rbp + 0x18]
call fcn.1400525a0
lea rax, [rbp + 0x18]
mov qword [rsp + 0x48], rax
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x28]
call fcn.140004c50
nop
mov rax, qword [rsp + 0x28]
cmp dword [rax - 0x10], 0
je 0x14001ec10
lea rax, [rsp + 0x40]
mov qword [rsp + 0x80], rax
lea rax, [rsp + 0x38]
mov qword [rsp + 0x88], rax
mov rdi, qword [rsp + 0x30]
mov rcx, qword [rdi - 0x18]
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rcx, rax
cmp dword [rdi - 8], 0
jl 0x14001e888
cmp rax, qword [rdi - 0x18]
jne 0x14001e888
lea rbp, [rdi - 0x18]
lock add dword [rdi - 8], 1
jmp 0x14001e8c6
mov rax, qword [rax]
mov r8d, 2
mov edx, dword [rdi - 0x10]
call qword [rax]
mov rbp, rax
test rax, rax
jne 0x14001e8a4
call fcn.140003050
int3
mov eax, dword [rdi - 0x10]
mov dword [rbp + 8], eax
mov eax, dword [rdi - 0x10]
add eax, 1
movsxd rdx, eax
lea r9, [rdx + rdx]
mov r8, rdi
add rdx, rdx
lea rcx, [rbp + 0x18]
call fcn.1400525a0
lea rax, [rbp + 0x18]
mov qword [rsp + 0x40], rax
call fcn.1400280cc
mov rcx, rax
test rax, rax
setne sil
test esi, esi
jne 0x14001e8ed
mov ecx, 0x80004005
call fcn.140003280
int3
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x38], rax
lea rdx, str.DownLoad
test rdx, 0xffffffffffff0000
jne 0x14001e92d
movzx edi, dx
mov ecx, edi
call fcn.1400280b8
test rax, rax
je 0x14001e94a
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x38]
call fcn.140003060
jmp 0x14001e94a
xor eax, eax
mov rcx, rbx
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
lea rcx, [rsp + 0x38]
call fcn.1400036f0
nop
mov rdi, qword [rsp + 0x28]
mov rcx, qword [rdi - 0x18]
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rcx, rax
cmp dword [rdi - 8], 0
jl 0x14001e973
cmp rax, qword [rdi - 0x18]
jne 0x14001e973
lea rsi, [rdi - 0x18]
lock add dword [rdi - 8], 1
jmp 0x14001e9b1
mov rax, qword [rax]
mov r8d, 2
mov edx, dword [rdi - 0x10]
call qword [rax]
mov rsi, rax
test rax, rax
jne 0x14001e98f
call fcn.140003050
int3
mov eax, dword [rdi - 0x10]
mov dword [rsi + 8], eax
mov eax, dword [rdi - 0x10]
add eax, 1
movsxd rdx, eax
lea r9, [rdx + rdx]
mov r8, rdi
add rdx, rdx
lea rcx, [rsi + 0x18]
call fcn.1400525a0
lea rax, [rsi + 0x18]
mov qword [rsp + 0x60], rax
lea r9, [rsp + 0x40]
lea r8, [rsp + 0x38]
lea rdx, [rsp + 0x60]
lea rcx, [rsp + 0x70]
call fcn.1400067b0
nop
mov rdx, qword [rax]
lea rdi, [rdx - 0x18]
mov rsi, qword [rsp + 0x20]
add rsi, 0xffffffffffffffe8
cmp rdi, rsi
je 0x14001ea94
cmp dword [rsi + 0x10], 0
jl 0x14001ea85
mov rcx, qword [rdi]
cmp rcx, qword [rsi]
jne 0x14001ea85
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rcx, rax
cmp dword [rdi + 0x10], 0
jl 0x14001ea21
cmp rax, qword [rdi]
jne 0x14001ea21
mov rbp, rdi
lock add dword [rdi + 0x10], 1
jmp 0x14001ea60
mov rax, qword [rax]
mov r8d, 2
mov edx, dword [rdi + 8]
call qword [rax]
mov rbp, rax
test rax, rax
jne 0x14001ea3d
call fcn.140003050
int3
mov eax, dword [rdi + 8]
mov dword [rbp + 8], eax
mov eax, dword [rdi + 8]
add eax, 1
movsxd rdx, eax
lea r9, [rdx + rdx]
lea r8, [rdi + 0x18]
add rdx, rdx
lea rcx, [rbp + 0x18]
call fcn.1400525a0
mov eax, ebx
lock xadd dword [rsi + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14001ea7a
mov rcx, qword [rsi]
mov rax, qword [rcx]
mov rdx, rsi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rax, [rbp + 0x18]
mov qword [rsp + 0x20], rax
jmp 0x14001ea94
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x20]
call fcn.1400036f0
nop
mov rdx, qword [rsp + 0x70]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14001eab4
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rbp, qword [rsp + 0x20]
cmp dword [rbp - 0x10], 0
je 0x14001ec10
mov rdi, qword [rsp + 0x28]
mov rcx, qword [rdi - 0x18]
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rcx, rax
cmp dword [rdi - 8], 0
jl 0x14001eaec
cmp rax, qword [rdi - 0x18]
jne 0x14001eaec
lea rsi, [rdi - 0x18]
lock add dword [rdi - 8], 1
jmp 0x14001eb2a
mov rax, qword [rax]
mov r8d, 2
mov edx, dword [rdi - 0x10]
call qword [rax]
mov rsi, rax
test rax, rax
jne 0x14001eb08
call fcn.140003050
int3
mov eax, dword [rdi - 0x10]
mov dword [rsi + 8], eax
mov eax, dword [rdi - 0x10]
add eax, 1
movsxd rdx, eax
lea r9, [rdx + rdx]
mov r8, rdi
add rdx, rdx
lea rcx, [rsi + 0x18]
call fcn.1400525a0
lea rax, [rsi + 0x18]
mov qword [rsp + 0x50], rax
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x58]
call fcn.140006210
nop
mov rdx, rax
mov rcx, r12
call fcn.140003600
nop
mov rdx, qword [rsp + 0x58]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14001eb6f
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [r12]
cmp dword [rax - 0x10], 0
je 0x14001ec10
mov rcx, r12
call fcn.140008c10
movsxd r14, dword [rbp - 0x10]
mov rbp, qword [rsp + 0x20]
mov rax, qword [r12]
mov rsi, rbp
sub rsi, rax
sar rsi, 1
mov r13d, dword [rax - 0x10]
lea edi, [r13 + r14]
sub r15d, dword [rax - 8]
mov eax, dword [rax - 0xc]
sub eax, edi
or eax, r15d
jge 0x14001ebbc
mov edx, edi
mov rcx, r12
call fcn.140003380
mov rax, qword [r12]
cmp rsi, r13
ja 0x14001ebc9
lea rbp, [rax + rsi*2]
mov rdx, r14
add rdx, rdx
lea rcx, [rax + r13*2]
mov r9, rdx
mov r8, rbp
call fcn.1400525a0
test edi, edi
js 0x14001ec05
mov rax, qword [r12]
cmp edi, dword [rax - 0xc]
jg 0x14001ec05
mov dword [rax - 0x10], edi
movsxd rcx, edi
mov rax, qword [r12]
mov word [rax + rcx*2], 0
mov r13, qword [rsp + 0xe0]
jmp 0x14001ec10
mov ecx, 0x80070057
call fcn.140003280
nop
mov rdx, qword [rsp + 0x28]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14001ec31
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x20]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14001ec52
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x30]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14001ec73
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [r13]
sub rdx, 0x18
lock xadd dword [rdx + 0x10], ebx
add ebx, 0xffffffff
test ebx, ebx
jg 0x14001ec90
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, r12
mov rbx, qword [rsp + 0xd0]
add rsp, 0x90
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret