Function at 0x140010e60
Capabilities:
Check if file exists

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 7]
sub rsp, 0xd8
mov rax, qword [0x14035f028]
xor rax, rsp
mov qword [rbp - 9], rax
mov rsi, r9
mov qword [rsp + 0x50], r9
mov r15, r8
mov rdi, rdx
mov rbx, rcx
mov rax, qword [rbp + 0x6f]
mov qword [rbp - 0x79], rax
mov r12, qword [rbp + 0x77]
mov r13, qword [rbp + 0x7f]
xor r14d, r14d
cmp dword [rcx + 0x98], r14d
je 0x140010ef1
mov esi, dword [rcx + 0x98]
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp esi, eax
je 0x140010eec
cmp byte [rbx + 0x91], r14b
jne 0x140010eec
test esi, esi
je 0x140010eec
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [rbx + 0x98], eax
je 0x140010eec
cmp byte [rbx + 0x91], r14b
je 0x1400111cd
mov rsi, qword [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [rbx + 0x98], eax
xor ecx, ecx
cmp qword [rdi + 0x10], rcx
je 0x1400111cd
cmp qword [r15 + 0x10], rcx
je 0x1400111cd
cmp qword [rsi + 0x10], rcx
je 0x1400111cd
mov rax, qword [rbp - 0x79]
cmp qword [rax + 0x10], rcx
je 0x1400111cd
cmp qword [r12 + 0x10], rcx
je 0x1400111cd
cmp qword [r13 + 0x10], rcx
je 0x1400111cd
call fcn.1400c8120
mov rdx, rax
mov rcx, qword [rax]
mov rax, qword [rcx + 0x358]
mov rcx, rdx
call qword [case.0x140066cb3.0]
xor esi, esi
test al, al
je 0x140010f6d
call fcn.1400c10cc
test al, al
mov r8b, 1
jne 0x140010f70
mov r8b, sil
lea rsi, [rbx + 0x50]
mov r9, rsi
mov rdx, qword [rbp - 0x79]
mov rcx, qword [rsp + 0x50]
call fcn.140010418
mov byte [rbp - 0x31], r14b
mov rcx, rsi
cmp qword [rsi + 0x18], 8
jb 0x140010f96
mov rcx, qword [rsi]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
xor ecx, ecx
test eax, eax
je 0x140011020
cmp qword [rbx + 0x18], rcx
jne 0x140010fa9
int3
mov rcx, qword [rbx + 0x18]
mov rax, qword [rcx]
mov rdx, rsi
cmp qword [rsi + 0x18], 8
jb 0x140010fbd
mov rdx, qword [rsi]
mov rax, qword [rax + 0x20]
call qword [case.0x140066cb3.0]
mov r14d, eax
xor ecx, ecx
test eax, eax
js 0x140011020
cmp qword [rbx + 0x18], rcx
jne 0x140010fd7
int3
mov rcx, qword [rbx + 0x18]
mov rax, qword [rcx]
mov r9, r13
cmp qword [r13 + 0x18], 8
jb 0x140010fec
mov r9, qword [r13]
mov r8, r12
cmp qword [r12 + 0x18], 8
jb 0x140010ffb
mov r8, qword [r12]
mov rdx, rsi
cmp qword [rsi + 0x18], 8
jb 0x140011008
mov rdx, qword [rsi]
lea r10, [rbp - 0x31]
mov qword [rsp + 0x20], r10
mov rax, qword [rax + 0x68]
call qword [case.0x140066cb3.0]
mov r14d, eax
xor ecx, ecx
cmp byte [rbp - 0x31], cl
jne 0x1400110f5
mov byte [rbp - 0x30], cl
mov byte [rbp - 0x2f], cl
mov qword [rbp - 0x29], rcx
movdqa xmm0, xmmword [0x14030b010]
movdqu xmmword [rbp - 0x19], xmm0
mov word [rbp - 0x29], cx
mov rax, qword [rbx]
lea rcx, vtable.std::_Func_impl_no_alloc_class__lambda_48acb124156b377cf70e793bd703ce67___long_int__struct_IStream____ptr64_.0
mov qword [rbp - 0x71], rcx
mov qword [rbp - 0x69], rbx
lea rcx, [rbp - 0x71]
mov qword [rbp - 0x39], rcx
lea rcx, [rbp - 0x30]
mov qword [rsp + 0x40], rcx
lea rcx, [rbp - 0x2f]
mov qword [rsp + 0x38], rcx
lea rcx, [rbp - 0x29]
mov qword [rsp + 0x30], rcx
lea rcx, [rbp - 0x71]
mov qword [rsp + 0x28], rcx
mov byte [rsp + 0x20], 1
mov r9, rsi
mov r8, r15
mov rdx, rdi
mov rcx, rbx
mov rax, qword [rax + 0x108]
call qword [case.0x140066cb3.0]
mov r14d, eax
mov rcx, qword [rbp - 0x39]
test rcx, rcx
je 0x1400110c3
mov rax, qword [rcx]
lea rdx, [rbp - 0x71]
cmp rcx, rdx
setne dl
mov rax, qword [rax + 0x20]
call qword [case.0x140066cb3.0]
test r14d, r14d
js 0x1400110ec
mov rax, qword [rbx]
mov byte [rsp + 0x20], 1
mov r9, r13
mov r8, r12
mov rdx, rsi
mov rcx, rbx
mov rax, qword [rax + 0x110]
call qword [case.0x140066cb3.0]
mov r14d, eax
lea rcx, [rbp - 0x29]
call fcn.140007b58
test r14d, r14d
js 0x140011178
call fcn.1400c8120
mov rdx, rax
mov rcx, qword [rax]
mov rax, qword [rcx + 0x358]
mov rcx, rdx
call qword [case.0x140066cb3.0]
xor r8d, r8d
test al, al
je 0x1400111aa
mov rdx, qword [rdi + 0x10]
cmp qword [rdi + 0x18], 8
jb 0x14001112e
mov rdi, qword [rdi]
cmp rdx, 0xc
jne 0x1400111aa
lea rcx, str.UpdateBinary
sub rdi, rcx
movzx eax, word [rcx + rdi]
cmp ax, word [rcx]
jne 0x1400111aa
add rcx, 2
sub rdx, 1
jne 0x14001113e
cmp qword [rbx + 0x18], r8
jne 0x140011158
int3
mov rcx, qword [rbx + 0x18]
mov rax, qword [rcx]
cmp qword [rsi + 0x18], 8
jb 0x140011169
mov rsi, qword [rsi]
mov rdx, rsi
mov rax, qword [rax + 0x28]
call qword [case.0x140066cb3.0]
jmp 0x1400111aa
cmp qword [rdi + 0x18], 8
jb 0x140011182
mov rdi, qword [rdi]
cmp qword [r15 + 0x18], 8
jb 0x14001118c
mov r15, qword [r15]
mov dword [rsp + 0x28], r14d
mov qword [rsp + 0x20], rdi
mov r9, r15
lea r8, str.DownloaderUtil::DownloadAndVerifyBinaryFile
mov edx, 0x247
call fcn.14000ebd8
mov eax, r14d
mov rcx, qword [rbp - 9]
xor rcx, rsp
call fcn.140020930
add rsp, 0xd8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov ecx, 0x80004005
call fcn.140007ad8
int3