Function at 0x140057670
Capabilities:
Check if file exists
Create process on windows
Get file attributes

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
sub rsp, 0xa0
mov qword [rsp + 0x20], 0xfffffffffffffffe
mov r13, rcx
call fcn.14012a060
mov rcx, rax
xor edx, edx
test rax, rax
setne dl
test edx, edx
jne 0x1400576ad
mov ecx, 0x80004005
call fcn.140002cb0
int3
mov rax, qword [rax]
call qword [rax + 0x18]
lea rdi, [rax + 0x18]
mov qword [rsp + 0xe8], rdi
lea r14, [0x14017f438]
or rbp, 0xffffffffffffffff
test r14, 0xffffffffffff0000
jne 0x140057700
movzx esi, r14w
mov ecx, esi
call fcn.140138f84
test rax, rax
je 0x14005772a
mov r8d, esi
mov rdx, rax
lea rcx, [rsp + 0xe8]
call fcn.140004c30
mov rdi, qword [rsp + 0xe8]
jmp 0x14005772a
xor eax, eax
mov rcx, rbp
mov rdi, r14
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
mov rdx, r14
lea rcx, [rsp + 0xe8]
call fcn.140003210
mov rdi, qword [rsp + 0xe8]
cmp qword [r13 + 0x98], 0
jne 0x140057756
lea rdx, [rdi - 0x18]
lock xadd dword [rdx + 0x10], ebp
add ebp, 0xffffffff
test ebp, ebp
jg 0x14005799e
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
jmp 0x14005799e
mov rax, qword [r13 + 0x98]
mov rcx, qword [rax + 0x520]
mov rax, qword [rcx]
lea rdx, [rsp + 0xf0]
call qword [rax + pe_nt_image_headers64]
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
add rdi, 0xffffffffffffffe8
cmp rcx, rdi
je 0x1400577d6
cmp dword [rdi + 0x10], 0
jl 0x1400577c4
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x1400577c4
call fcn.140002ed0
mov rsi, rax
mov ecx, ebp
lock xadd dword [rdi + 0x10], ecx
add ecx, 0xffffffff
test ecx, ecx
jg 0x1400577b6
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rax, [rsi + 0x18]
mov qword [rsp + 0xe8], rax
jmp 0x1400577d6
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0xe8]
call fcn.140003210
nop
mov rdx, qword [rsp + 0xf0]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x1400577f9
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov r12, qword [rsp + 0xe8]
add r12, 0xffffffffffffffe8
mov rcx, qword [r12]
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rcx, rax
cmp dword [r12 + 0x10], 0
jl 0x14005782c
cmp rax, qword [r12]
jne 0x14005782c
mov rbx, r12
lock add dword [r12 + 0x10], 1
jmp 0x140057872
mov rax, qword [rax]
mov r8d, 2
mov edx, dword [r12 + 8]
call qword [rax]
mov rbx, rax
test rax, rax
jne 0x14005784a
call fcn.1400b7870
int3
mov eax, dword [r12 + 8]
mov dword [rbx + 8], eax
mov eax, dword [r12 + 8]
add eax, 1
movsxd rdx, eax
lea r9, [rdx + rdx]
lea r8, [r12 + 0x18]
add rdx, rdx
lea rcx, [rbx + 0x18]
call fcn.140144ee0
add rbx, 0x18
mov qword [rsp + 0xf8], rbx
xor eax, eax
mov rdi, r14
mov rsi, rbx
mov ecx, 1
repe cmpsw word [rsi], word [rdi]
je 0x140057895
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
setne al
test al, al
jne 0x1400578bb
lea rdx, [rbx - 0x18]
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x1400578e5
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
jmp 0x1400578e5
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x140057909
lea rdx, [rbx - 0x18]
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x1400578e5
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lock xadd dword [r12 + 0x10], ebp
add ebp, 0xffffffff
test ebp, ebp
jg 0x14005799e
mov rcx, qword [r12]
mov rax, qword [rcx]
mov rdx, r12
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
jmp 0x14005799e
lea rdx, [rbx - 0x18]
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x140057924
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [r13 + 0x98]
cmp qword [rax + 0x520], 0
je 0x140057983
xor edx, edx
lea r8d, [rdx + 0x6c]
lea rcx, [rsp + 0x34]
call fcn.140148fe0
mov dword [rsp + 0x30], 0x70
mov qword [rsp + 0x38], 0
lea rax, str.open
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0xe8]
mov qword [rsp + 0x48], rax
mov dword [rsp + 0x60], 1
lea rcx, [rsp + 0x30]
call qword [sym.imp.SHELL32.dll_ShellExecuteExW]
nop
lock xadd dword [r12 + 0x10], ebp
add ebp, 0xffffffff
test ebp, ebp
jg 0x14005799e
mov rcx, qword [r12]
mov rax, qword [rcx]
mov rdx, r12
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
add rsp, 0xa0
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret