Function at 0x140200690
Capabilities:
Check if file exists

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x60
mov rsi, rdx
mov rdi, rcx
test rdx, rdx
je 0x1402006c4
xorps xmm0, xmm0
mov qword [rsp + 0x50], 0
movups xmmword [rdx], xmm0
movsd xmm0, qword [rsp + 0x50]
movsd qword [rdx + 0x10], xmm0
mov eax, dword [0x1405dae90]
nop
test eax, eax
je 0x1402007c4
cmp qword [rcx + 0x18], 8
jb 0x1402006dd
mov rcx, qword [rcx]
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0x2200000
mov dword [rsp + 0x20], 3
xor r9d, r9d
mov edx, 0x110199
lea r8d, [r9 + 7]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rbx, rax
mov qword [rsp + 0x78], rax
cmp rax, 0xffffffffffffffff
jne 0x140200794
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x35
ja 0x140200731
movabs rdx, 0x2000000020800c
bt rdx, rax
jb 0x140200750
lea ecx, [rax - 0x43]
cmp ecx, 0x38
ja 0x140200749
movabs rdx, 0x100000000100001
bt rdx, rcx
jb 0x140200750
cmp eax, 0xa1
jne 0x140200765
xor eax, eax
mov rbx, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x80]
add rsp, 0x60
pop rdi
ret
lea r9, str.boost::filesystem::remove_all
mov r8, rsi
mov rdx, rdi
mov ecx, eax
call fcn.140204580
nop
mov rax, 0xffffffffffffffff
mov rbx, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x80]
add rsp, 0x60
pop rdi
ret
mov r8, rsi
mov rdx, rdi
mov rcx, rbx
call fcn.140200ce0
mov rdi, rax
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rax, rdi
mov rbx, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x80]
add rsp, 0x60
pop rdi
ret
mov rbx, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x80]
add rsp, 0x60
pop rdi
jmp 0x1402007e0
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x10]
sub rsp, 0x110
mov rdi, rdx
mov r15, rcx
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
xor esi, esi
mov qword [rsp + 0x40], rsi
mov r12d, esi
lea r13, section..data
lea rbx, [0x1405cb068]
mov rcx, r15
cmp qword [r15 + 0x18], 8
jb 0x14020082f
mov rcx, qword [r15]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov r14d, eax
cmp eax, 0xffffffff
je 0x140200c00
and eax, 0x410
cmp eax, 0x10
jne 0x140200bd1
mov qword [rbp + 0x60], rsi
lea rax, [rsp + 0x30]
mov qword [rsp + 0x20], rax
xor r9d, r9d
lea r8d, [r9 + 0x10]
mov rdx, r15
lea rcx, [rbp + 0x60]
call fcn.140205770
mov rdx, qword [rsp + 0x40]
test dl, 1
je 0x140200b00
mov r9d, dword [rsp + 0x30]
cmp rdx, 1
jne 0x140200897
test r9d, r9d
setne al
test al, al
je 0x140200b00
mov dword [rsp + 0x58], reloc.WS2_32.dll_sendto
mov qword [rsp + 0x60], r13
cmp rdx, 1
jne 0x140200941
mov rcx, r13
call fcn.1401ff800
mov rcx, rax
mov eax, dword [rsp + 0x58]
mov dword [rbp - 0x78], eax
mov qword [rbp - 0x70], rcx
mov rax, qword [rsp + 0x40]
cmp rax, 1
jne 0x1402008e9
movups xmm0, xmmword [rsp + 0x30]
movups xmmword [rsp + 0x48], xmm0
movd edx, xmm0
psrldq xmm0, 8
movq rcx, xmm0
jmp 0x140200918
test rax, rax
jne 0x1402008fe
mov dword [rsp + 0x48], esi
mov rcx, rbx
mov qword [rsp + 0x50], rbx
mov edx, esi
jmp 0x140200918
mov rcx, qword [rsp + 0x38]
call fcn.1401ff800
mov rcx, rax
mov edx, dword [rsp + 0x30]
mov dword [rsp + 0x48], edx
mov qword [rsp + 0x50], rax
mov rax, qword [rcx]
lea r8, [rbp - 0x78]
call qword [rax + 0x28]
test al, al
jne 0x14020093d
mov rcx, qword [rbp - 0x70]
mov rax, qword [rcx]
mov r8d, dword [rbp - 0x78]
lea rdx, [rsp + 0x48]
call qword [rax + 0x20]
test al, al
je 0x140200986
mov al, 1
jmp 0x140200986
lea rcx, [0x1405d4090]
test rdx, rdx
cmovne rcx, qword [rsp + 0x38]
mov rax, qword [rcx]
lea r8, [rsp + 0x58]
mov edx, r9d
call qword [rax + 0x18]
test al, al
jne 0x140200a81
mov rcx, r13
mov rax, qword [rsp + 0x60]
test rax, rax
cmovne rcx, rax
mov rax, qword [rcx]
mov r8d, dword [rsp + 0x58]
lea rdx, [rsp + 0x30]
call qword [rax + reloc.WS2_32.dll_recv]
test al, al
jne 0x140200a81
mov dword [rsp + 0x78], WSAStartup
mov qword [rbp - 0x80], r13
mov rax, qword [rsp + 0x40]
cmp rax, 1
jne 0x140200a3c
mov rcx, r13
call fcn.1401ff800
mov rcx, rax
mov eax, dword [rsp + 0x78]
mov dword [rbp - 0x68], eax
mov qword [rbp - 0x60], rcx
mov rax, qword [rsp + 0x40]
cmp rax, 1
jne 0x1402009e4
movups xmm0, xmmword [rsp + 0x30]
movups xmmword [rsp + 0x68], xmm0
movd edx, xmm0
psrldq xmm0, 8
movq rcx, xmm0
jmp 0x140200a13
test rax, rax
jne 0x1402009f9
mov dword [rsp + 0x68], esi
mov rcx, rbx
mov qword [rsp + 0x70], rbx
mov edx, esi
jmp 0x140200a13
mov rcx, qword [rsp + 0x38]
call fcn.1401ff800
mov rcx, rax
mov edx, dword [rsp + 0x30]
mov dword [rsp + 0x68], edx
mov qword [rsp + 0x70], rax
mov rax, qword [rcx]
lea r8, [rbp - 0x68]
call qword [rax + 0x28]
test al, al
jne 0x140200a38
mov rcx, qword [rbp - 0x60]
mov rax, qword [rcx]
mov r8d, dword [rbp - 0x68]
lea rdx, [rsp + 0x68]
call qword [rax + 0x20]
test al, al
je 0x140200a7d
mov al, 1
jmp 0x140200a7d
lea rcx, [0x1405d4090]
test rax, rax
cmovne rcx, qword [rsp + 0x38]
mov rax, qword [rcx]
lea r8, [rsp + 0x78]
mov edx, dword [rsp + 0x30]
call qword [rax + 0x18]
test al, al
jne 0x140200a81
mov rcx, r13
mov rax, qword [rbp - 0x80]
test rax, rax
cmovne rcx, rax
mov rax, qword [rcx]
mov r8d, dword [rsp + 0x78]
lea rdx, [rsp + 0x30]
call qword [rax + reloc.WS2_32.dll_recv]
test al, al
je 0x140200ae2
mov rbx, qword [rbp + 0x60]
test rbx, rbx
je 0x140200aad
mov eax, 0xffffffff
lock xadd dword [rbx], eax
cmp eax, 1
jne 0x140200aad
test rbx, rbx
je 0x140200aad
mov rcx, rbx
call fcn.140204bb0
mov rcx, rbx
call fcn.14012d550
inc r12d
cmp r12d, 5
jb 0x14020081b
movups xmm0, xmmword [rsp + 0x30]
movsd xmm1, qword [rsp + 0x40]
test rdi, rdi
je 0x140200ca5
movups xmmword [rdi], xmm0
movsd qword [rdi + 0x10], xmm1
mov rax, 0xffffffffffffffff
jmp 0x140200c59
movups xmm0, xmmword [rsp + 0x30]
movsd xmm1, qword [rsp + 0x40]
test rdi, rdi
je 0x140200c74
movups xmmword [rdi], xmm0
movsd qword [rdi + 0x10], xmm1
jmp 0x140200b65
mov qword [rbp + 0x68], rsi
nop dword [rax]
nop dword [rax + rax]
mov rbx, qword [rbp + 0x60]
test rbx, rbx
je 0x140200ba9
cmp qword [rbx + 0x40], 0
je 0x140200ba9
lea rcx, [rbx + 0x10]
mov rdx, rdi
call 0x1402007e0
add rsi, rax
test rdi, rdi
je 0x140200b48
mov rcx, rdi
call fcn.14016e8e0
test al, al
jne 0x140200b65
mov rdx, rdi
lea rcx, [rbp + 0x60]
call fcn.140205e50
test rdi, rdi
je 0x140200b10
mov rcx, rdi
call fcn.14016e8e0
test al, al
je 0x140200b10
mov rbx, qword [rbp + 0x60]
test rbx, rbx
je 0x140200c4e
mov eax, 0xffffffff
lock xadd dword [rbx], eax
cmp eax, 1
jne 0x140200c4e
test rbx, rbx
je 0x140200c4e
mov rcx, rbx
call fcn.140204bb0
mov rcx, rbx
call fcn.14012d550
mov rax, 0xffffffffffffffff
jmp 0x140200c59
test rbx, rbx
je 0x140200bd1
mov eax, 0xffffffff
lock xadd dword [rbx], eax
cmp eax, 1
jne 0x140200bd1
test rbx, rbx
je 0x140200bd1
mov rcx, rbx
call fcn.140204bb0
mov rcx, rbx
call fcn.14012d550
mov r8, rdi
mov edx, r14d
mov rcx, r15
call fcn.1402014d0
test rdi, rdi
je 0x140200bf8
mov rcx, qword [rdi + 0x10]
test cl, 1
je 0x140200bf8
cmp rcx, 1
jne 0x140200c4e
cmp dword [rdi], 0
jne 0x140200c4e
movzx eax, al
add rax, rsi
jmp 0x140200c59
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x35
ja 0x140200c1b
movabs rdx, 0x2000000020800c
bt rdx, rax
jb 0x140200c57
lea ecx, [rax - 0x43]
cmp ecx, 0x38
ja 0x140200c33
movabs rdx, 0x100000000100001
bt rdx, rcx
jb 0x140200c57
cmp eax, 0xa1
je 0x140200c57
lea r9, str.boost::filesystem::remove_all
mov r8, rdi
mov rdx, r15
mov ecx, eax
call fcn.140204580
mov rax, 0xffffffffffffffff
jmp 0x140200c59
xor eax, eax
mov rbx, qword [rsp + 0x150]
add rsp, 0x110
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
movaps xmmword [rbp - 0x50], xmm0
movsd qword [rbp - 0x40], xmm1
lea r9, [rbp - 0x50]
mov r8, r15
lea rdx, str.boost::filesystem::remove_all
lea rcx, [rbp - 0x30]
call fcn.140203ff0
lea rdx, [0x1405c7190]
lea rcx, [rbp - 0x30]
call fcn.14045cbd0
nop
movaps xmmword [rbp - 0x50], xmm0
movsd qword [rbp - 0x40], xmm1
lea r9, [rbp - 0x50]
mov r8, r15
lea rdx, str.boost::filesystem::remove_all:_path_cannot_be_opened_as_a_directory
lea rcx, [rbp - 0x30]
call fcn.140203ff0
lea rdx, [0x1405c7190]
lea rcx, [rbp - 0x30]
call fcn.14045cbd0
int3