Function at 0x140128d04
Capabilities:
Check if file exists

Disassembly:
mov rax, rsp
push rbp
push rdi
push r12
push r13
push r14
mov rbp, rsp
sub rsp, 0x40
mov qword [rbp - 8], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x18], rsi
mov rsi, r8
mov r12, rdx
mov r13, rcx
mov rdx, qword [rdx]
test rdx, rdx
jne 0x140128d3f
lea edi, [rdx + 0x57]
jmp 0x140128f13
mov rdx, qword [rdx]
lea rcx, [rbp + 0x48]
call fcn.14000cb18
nop
mov rax, qword [r12]
mov rdx, qword [rax + 8]
lea rcx, [rbp + 0x48]
call fcn.14000f884
mov rcx, qword [rbp + 0x48]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x140128d75
mov edi, 0x490
jmp 0x140128ecc
mov rax, qword [r13]
mov r8, rsi
mov rdx, qword [rbp + 0x48]
mov rcx, r13
call qword [rax + 0x20]
mov edi, eax
test eax, eax
jne 0x140128ecc
lea rcx, section..data
mov rax, qword [section..data]
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rbp - 0x10], rbx
mov r14, qword [r12]
mov rdi, qword [rbp + 0x48]
lea rdx, [rbp + 0x38]
mov rcx, rdi
call qword [sym.imp.VERSION.dll_GetFileVersionInfoSizeW]
test eax, eax
jne 0x140128dca
call qword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x140128de6
lea r8, [r14 + 0x18]
mov dword [rsp + 0x20], eax
lea r9, [rbp + 0x38]
lea rdx, [rbp - 0x10]
mov rcx, rdi
call fcn.140128c04
mov rbx, qword [rbp - 0x10]
mov edi, eax
test eax, eax
jne 0x140128ead
mov r14, qword [r12]
mov rcx, qword [r14 + 0x10]
test rcx, rcx
setne al
test eax, eax
jne 0x140128e0d
mov ecx, 0x80004005
call fcn.14000cbb8
int3
mov rax, rbx
sub rcx, rbx
movzx edx, word [rax]
cmp dx, word [rax + rcx]
jne 0x140128e29
add rax, 2
test dx, dx
jne 0x140128e13
xor eax, eax
jmp 0x140128e2e
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x140128e39
mov edi, 0x32
jmp 0x140128ead
mov rcx, qword [rbp + 0x48]
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov qword [r14 + 0x28], rax
mov rax, qword [r12]
cmp qword [rax + 0x28], 0
jne 0x140128e5c
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
jmp 0x140128ead
test rsi, rsi
je 0x140128e93
mov rax, qword [rsi]
mov rdx, r12
mov rcx, rsi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov edi, eax
test eax, eax
je 0x140128e93
mov rcx, qword [r12]
cmp qword [rcx + 0x28], 0
je 0x140128ead
mov rcx, qword [rcx + 0x28]
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov r11, qword [r12]
and qword [r11 + 0x28], 0
jmp 0x140128ead
mov rax, qword [r12]
mov rcx, qword [rax + 0x28]
mov qword [r13 + 8], rcx
test rsi, rsi
je 0x140128ead
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax]
nop
lea rdx, [rbx - 0x18]
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140128ec8
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
test edi, edi
je 0x140128ef4
xor eax, eax
cmp edi, 0x800b0100
jne 0x140128edc
call qword [sym.imp.KERNEL32.dll_GetLastError]
test rsi, rsi
je 0x140128ef4
mov r10, qword [rsi]
xor r9d, r9d
mov r8d, eax
mov edx, edi
mov rcx, rsi
call qword [r10 + 0x10]
nop
mov rdx, qword [rbp + 0x48]
add rdx, 0xffffffffffffffe8
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140128f13
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov eax, edi
lea r11, [rsp + 0x40]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r14
pop r13
pop r12
pop rdi
pop rbp
ret