Function at 0x140114a70
Capabilities:
Check if file exists

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x90]
sub rsp, 0x190
mov qword [rbp - 8], 0xfffffffffffffffe
mov qword [rsp + 0x1e8], rbx
mov rax, qword [0x14047b0a0]
xor rax, rsp
mov qword [rbp + 0x88], rax
mov edi, r8d
mov r13, rdx
mov r12, rcx
mov qword [rsp + 0x68], rcx
mov qword [rbp], rdx
xor eax, eax
mov dword [rsp + 0x30], eax
mov rax, qword [rdx]
test rax, rax
jne 0x140114b0c
mov rbx, qword [rdx + 8]
test rbx, rbx
je 0x140114b07
mov r15, 0xffffffffffffffff
mov eax, r15d
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x140114b07
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
lock xadd dword [rbx + 0xc], r15d
cmp r15d, 1
jne 0x140114b07
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
jmp 0x1401155ef
mov rbx, qword [rax + 0xa30]
test rbx, rbx
je 0x140114b23
lock inc dword [rbx + 8]
mov rbx, qword [rax + 0xa30]
mov r14, qword [rax + 0xa28]
mov qword [rbp - 0x30], r14
mov r15, 0xffffffffffffffff
test rbx, rbx
je 0x140114b66
mov eax, r15d
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x140114b66
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
mov eax, r15d
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x140114b66
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
test r14, r14
jne 0x140114ba4
mov rbx, qword [r13 + 8]
test rbx, rbx
je 0x140114b9f
mov eax, r15d
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x140114b9f
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
lock xadd dword [rbx + 0xc], r15d
cmp r15d, 1
jne 0x140114b9f
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
jmp 0x1401155ef
mov esi, dword [r14 + 0x84]
mov rcx, qword [r13]
mov eax, dword [r12 - 0x868]
mov dword [rcx + 0xa90], eax
mov rcx, qword [r13]
mov eax, dword [r14 + 8]
mov dword [rcx + 0x30], eax
movzx edx, byte [r14 + 0x60]
mov rcx, qword [r13]
call fcn.14012b7a0
mov rcx, qword [r13]
movzx eax, byte [r14 + 0x80]
mov byte [rcx + 0xc1], al
mov rcx, qword [r13]
mov eax, dword [r14 + 0x118]
mov dword [rcx + 0x314], eax
mov rbx, qword [r13]
call fcn.1400a2300
mov byte [rbx + 0xa00], al
mov rbx, qword [r13]
call fcn.1400a2360
mov dword [rbx + 0xa04], eax
mov rcx, qword [r13]
movzx eax, byte [r14 + 0x114]
mov byte [rcx + 0x940], al
mov rcx, qword [r13]
mov eax, dword [r14 + 0x64]
mov dword [rcx + 0x944], eax
mov rbx, qword [r13]
mov ecx, dword [r14 + 0x138]
call fcn.1400c27f0
mov dword [rbx + 0xad0], eax
mov rbx, qword [r13]
call fcn.1400a3380
mov rcx, qword [rax]
call fcn.1400af4c0
movzx edx, al
mov rcx, rbx
call fcn.14012b8a0
mov rbx, qword [r13]
call fcn.1400a3380
lea rdx, [rbp + 8]
mov rcx, qword [rax]
call fcn.1400afaf0
nop
mov rdx, qword [rax]
mov dword [rsp + 0x34], 0
cmp qword [rdx + 0x18], 8
jb 0x140114c94
mov rdx, qword [rdx]
lea r9, [rsp + 0x34]
lea r8, str.auto_tab
call fcn.140136ae0
cmp dword [rsp + 0x34], 0
setne dl
mov rcx, rbx
call fcn.140132880
nop
mov rbx, qword [rbp + 0x10]
test rbx, rbx
je 0x140114ceb
mov eax, r15d
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x140114ceb
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
mov eax, r15d
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x140114ceb
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rbx, qword [r13]
mov ecx, dword [r14 + 0x134]
call fcn.1400c2730
mov edx, eax
mov rcx, rbx
call fcn.140132bd0
mov rbx, qword [r13]
mov ecx, dword [r14 + 0x144]
call fcn.1400c28b0
mov dword [rbx + 0xa08], eax
mov rbx, qword [r13]
mov ecx, dword [r14 + 0x12c]
call fcn.1400c2510
cmp dword [rbx + 0x6c4], eax
je 0x140114d56
mov dword [rbx + 0x6c4], eax
test dword [rbx + 0x90], 0xc00000
je 0x140114d56
cmp dword [rbx + 0x32c], 0
je 0x140114d56
mov rcx, rbx
call fcn.140130b00
mov rbx, qword [r13]
lea rdx, [r14 + 0x150]
cmp qword [rdx + 0x18], 8
jb 0x140114d6b
mov rdx, qword [rdx]
lea rcx, [rbp + 0x68]
call fcn.1400c2970
nop
cmp qword [rax + 0x18], 8
jb 0x140114d7f
mov rax, qword [rax]
lea rcx, [rbx + 0x290]
mov byte [rsp + 0x20], 1
mov r9d, 1
mov r8d, dword [rbx + 0x314]
mov rdx, rax
call fcn.140117f60
nop
lea rcx, [rbp + 0x68]
call fcn.14007ec70
mov edx, edi
lea rcx, [rsp + 0x38]
call fcn.1400d5910
nop
mov rax, qword [r13]
cmp dword [rax + 0x30], 0x3e7
jne 0x140114dfe
cmp dword [rax + 0x260], 0xf
je 0x140114dd7
mov dword [rax + 0x260], reloc.WS2_32.dll_ntohs
mov rax, qword [r13]
mov byte [rax + 0xc1], 1
mov rax, qword [r13]
mov dword [rax + 0x330], 1
mov rax, qword [r13]
mov dword [rax + 0xacc], 0x1000100
mov rax, qword [r13]
cmp dword [rax + 0x944], 0
jne 0x140114e21
mov dword [r14 + 0x64], 3
mov rax, qword [r13]
mov dword [rax + 0x944], 3
mov edi, 0x40c00000
lea eax, [rsi - 2]
test eax, 0xfffffffc
jne 0x140114e8d
cmp esi, 3
je 0x140114e8d
mov rbx, qword [r13]
mov ecx, dword [r14 + 0x128]
call fcn.1400c2450
cmp dword [rbx + 0x8b8], eax
je 0x140114e64
mov dword [rbx + 0x8b8], eax
cmp byte [rbx + 0x8bc], 0
je 0x140114e64
mov rcx, rbx
call fcn.140130b00
mov rax, qword [r13]
mov dword [rax + 0x310], 2
xor eax, eax
mov qword [rbp - 0x18], rax
mov qword [rbp - 0x10], rax
mov rax, qword [r13]
movups xmm0, xmmword [rbp - 0x18]
movups xmmword [rax + 0x264], xmm0
jmp 0x140114eb7
mov rax, qword [r13]
mov ecx, dword [rax + 0x944]
lea eax, [rcx - 1]
test eax, 0xfffffffd
jne 0x140114ea8
mov edi, 0x40e00000
jmp 0x140114eb7
lea eax, [rcx - 2]
test eax, 0xfffffffd
jne 0x140114eb7
mov edi, 0x40d00000
mov rbx, qword [r13]
mov eax, dword [r14 + 0x120]
cmp eax, 0xffffffff
jne 0x140114ed4
call fcn.1400a3380
mov rcx, qword [rax]
call fcn.1400af830
mov r8d, eax
mov rcx, rbx
call fcn.140131650
mov rbx, qword [r13]
mov ecx, dword [r14 + 0x124]
call fcn.1400c2380
mov r8d, eax
mov rcx, rbx
call fcn.1401315a0
mov rbx, qword [r13]
mov ecx, dword [r14 + 0x130]
call fcn.1400c25d0
mov dword [rbx + 0x31c], eax
mov rbx, qword [r13]
mov ecx, dword [r14 + 0x148]
call fcn.1400c2670
mov dword [rbx + 0x32c], eax
cmp esi, 5
jne 0x140114f38
mov rax, qword [r13]
mov byte [rax + 0x8bd], 0
jmp 0x140114f3d
cmp esi, 2
jne 0x140114fb1
lea rdx, [r14 + 0x10]
cmp qword [r14 + 0x28], 8
jb 0x140114f4c
mov rdx, qword [r14 + 0x10]
xor eax, eax
mov qword [rbp + 0x48], rax
mov qword [rbp + 0x50], 7
mov word [rbp + 0x38], ax
mov r8, r15
inc r8
cmp word [rdx + r8*2], ax
jne 0x140114f61
lea rcx, [rbp + 0x38]
call fcn.14007ece0
nop
cmp qword [rbp + 0x48], 0
jne 0x140114fa8
mov rcx, r14
call fcn.140083b10
test rax, rax
je 0x140114fa8
mov r8, r15
nop dword [rax]
inc r8
cmp word [rax + r8*2], 0
jne 0x140114f90
mov rdx, rax
lea rcx, [r14 + 0x10]
call fcn.14007ece0
nop
lea rcx, [rbp + 0x38]
call fcn.14007ec70
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x140114fdc
mov rax, qword [rcx + 0xa28]
test rax, rax
je 0x140114fdc
mov edx, dword [rax + 0x84]
lea eax, [rdx - 2]
test eax, 0xfffffffc
jne 0x140114fdc
cmp edx, 3
jne 0x140114fe0
bts edi, 0x1c
movups xmm0, xmmword [r14 + 0x50]
movups xmmword [rbp + 0x58], xmm0
lea r9, [r14 + 0x10]
cmp qword [r9 + 0x18], 8
jb 0x140114ff7
mov r9, qword [r9]
test rcx, rcx
je 0x140115004
mov edx, dword [rcx + 0x88]
jmp 0x14011500c
mov edx, dword [r12 - 0x868]
mov dword [rsp + 0x20], edi
lea r8, [rbp + 0x58]
mov rcx, qword [r13]
call fcn.14012a430
mov rax, qword [rsp + 0x38]
test rax, rax
je 0x14011502f
mov eax, dword [rax + 0x314]
jmp 0x140115037
mov eax, dword [r12 - 0x5dc]
movzx r8d, ax
xor r9d, r9d
mov edx, 0x2e0
mov rcx, qword [r13]
call fcn.14012b090
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x1401151b5
mov rax, qword [rcx + 0xa28]
test rax, rax
je 0x1401151a8
mov edx, dword [rax + 0x84]
lea eax, [rdx - 2]
test eax, 0xfffffffc
jne 0x1401151a8
cmp edx, 3
je 0x1401151a8
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x70], xmm0
mov rdx, qword [r13 + 8]
test rdx, rdx
je 0x1401150a1
lock inc dword [rdx + 8]
mov rdx, qword [r13 + 8]
mov rax, qword [r13]
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], rdx
mov r8d, r15d
lea rdx, [rsp + 0x70]
call fcn.140131050
mov rcx, qword [rsp + 0x38]
lea rax, [rcx + 0xa28]
mov rbx, qword [rax + 8]
test rbx, rbx
je 0x1401150de
lock inc dword [rbx + 8]
mov rbx, qword [rax + 8]
mov rcx, qword [rsp + 0x38]
mov rax, qword [rax]
mov edi, dword [rax + 0x110]
test rbx, rbx
je 0x14011511c
mov eax, r15d
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x140115117
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
mov eax, r15d
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x140115117
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rcx, qword [rsp + 0x38]
cmp edi, 0xffffffff
jne 0x140115182
mov rax, qword [r13]
mov edi, dword [rax + 0x30]
mov rbx, qword [rcx + 0xa30]
test rbx, rbx
je 0x14011513f
lock inc dword [rbx + 8]
mov rbx, qword [rcx + 0xa30]
mov rax, qword [rcx + 0xa28]
mov dword [rax + 0x110], edi
test rbx, rbx
je 0x14011517d
mov eax, r15d
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x14011517d
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
mov eax, r15d
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x14011517d
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rcx, qword [rsp + 0x38]
mov rax, qword [r13]
cmp edi, dword [rax + 0x30]
jne 0x1401151a8
mov edx, dword [rax + 0x88]
add rcx, 0x780
add edx, 0x3e8
call fcn.14011ff50
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x1401151b5
mov ecx, dword [rcx + 0x88]
jmp 0x1401151bd
mov ecx, dword [r12 - 0x868]
xor r9d, r9d
xor r8d, r8d
mov edx, 0x81f
call fcn.140125f60
mov rax, qword [r13]
mov ecx, dword [rax + 0x30]
mov dword [rbp - 0x60], ecx
mov rdx, qword [r13 + 8]
test rdx, rdx
je 0x1401151e8
lock inc dword [rdx + 8]
mov rdx, qword [r13 + 8]
mov rax, qword [r13]
mov qword [rbp - 0x58], rax
mov qword [rbp - 0x50], rdx
lea rdx, [rbp - 0x60]
lea rcx, [r12 + 0x588]
call fcn.1400deb40
lea r9, [rax + 0x20]
mov qword [rsp + 0x20], rax
lea rdx, [rbp + 0x18]
lea rcx, [r12 + 0x588]
call fcn.140102aa0
nop
mov rcx, qword [rbp - 0x50]
test rcx, rcx
je 0x14011525a
mov eax, r15d
lock xadd dword [rcx + 8], eax
cmp eax, 1
jne 0x14011525a
mov rbx, qword [rbp - 0x50]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
mov eax, r15d
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x14011525a
mov rcx, qword [rbp - 0x50]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rax, qword [r13]
mov byte [rax + 0xa94], 0
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x58], xmm0
xor r8d, r8d
xor edx, edx
call fcn.140085770
mov qword [rsp + 0x58], rax
lea r8, [r14 + 0xa8]
lea rax, [rsp + 0x58]
cmp rax, r8
je 0x14011529e
mov r8, qword [r8]
mov rdx, qword [r8]
lea rcx, [rsp + 0x58]
call fcn.140085990
mov rax, qword [rsp + 0x58]
mov rbx, qword [rax]
cmp rbx, rax
je 0x140115530
mov r14, qword [rsp + 0x50]
mov rsi, qword [rbx + 0x18]
test rsi, rsi
je 0x1401152c5
lock inc dword [rsi + 8]
mov rsi, qword [rbx + 0x18]
mov rax, qword [rbx + 0x10]
mov qword [rbp - 0x70], rax
mov qword [rbp - 0x68], rsi
lea rdi, [rax + 8]
mov r12, rdi
cmp qword [rdi + 0x18], 8
jb 0x1401152e2
mov r12, qword [rdi]
test r12, r12
je 0x1401153bd
mov rax, r15
nop
inc rax
cmp word [r12 + rax*2], 0
jne 0x1401152f0
test rax, rax
je 0x1401153bd
mov r8d, 2
lea rdx, [0x1403fe454]
mov rcx, r12
call fcn.1402e4d88
test eax, eax
je 0x1401153bd
mov rcx, r12
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x1401153bd
mov rcx, rdi
cmp qword [rdi + 0x18], 8
jb 0x14011533f
mov rcx, qword [rdi]
call fcn.140081a00
mov rcx, qword [rsp + 0x68]
mov r8, qword [rcx + 0x598]
mov rdx, r8
mov rcx, qword [r8 + 8]
cmp byte [rcx + 0x19], 0
jne 0x140115383
nop dword [rax]
cmp qword [rcx + 0x20], rax
jae 0x14011536c
mov rcx, qword [rcx + 0x10]
jmp 0x140115372
mov rdx, rcx
mov rcx, qword [rcx]
cmp byte [rcx + 0x19], 0
je 0x140115360
cmp rdx, r8
je 0x140115383
cmp rax, qword [rdx + 0x20]
jae 0x140115386
mov rdx, r8
cmp rdx, r8
je 0x1401153a3
mov r14, qword [rdx + 0x30]
test r14, r14
je 0x14011539d
lock inc dword [r14 + 8]
mov r14, qword [rdx + 0x30]
mov rax, qword [rdx + 0x28]
jmp 0x1401153a8
xor eax, eax
mov r14d, eax
mov ecx, dword [rsp + 0x30]
or ecx, 1
mov dword [rsp + 0x30], ecx
test rax, rax
jne 0x1401153c1
mov r12b, 1
jmp 0x1401153c4
mov ecx, dword [rsp + 0x30]
xor r12b, r12b
test cl, 1
je 0x140115403
and ecx, 0xfffffffe
mov dword [rsp + 0x30], ecx
test r14, r14
je 0x140115403
mov eax, r15d
lock xadd dword [r14 + 8], eax
cmp eax, 1
jne 0x140115403
mov rax, qword [r14]
mov rcx, r14
call qword [rax]
mov eax, r15d
lock xadd dword [r14 + 0xc], eax
cmp eax, 1
jne 0x140115403
mov rax, qword [r14]
mov rcx, r14
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
test r12b, r12b
je 0x1401154ce
mov rcx, qword [r13]
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x80], xmm0
test rsi, rsi
je 0x140115421
lock inc dword [rsi + 8]
mov rax, qword [rbp - 0x70]
mov qword [rbp - 0x80], rax
mov qword [rbp - 0x78], rsi
lea rdx, [rbp - 0x80]
call fcn.1400d1160
mov r12, qword [rsp + 0x68]
cmp qword [rdi + 0x18], 8
jb 0x140115445
mov rdi, qword [rdi]
mov rcx, rdi
call fcn.140081a00
mov qword [rbp - 0x48], rax
test rsi, rsi
je 0x14011545a
lock inc dword [rsi + 8]
mov rax, qword [rbp - 0x70]
mov qword [rbp - 0x40], rax
mov qword [rbp - 0x38], rsi
lea rdx, [rbp - 0x48]
lea rcx, [r12 + 0x598]
call fcn.140102c00
lea r9, [rax + 0x20]
mov qword [rsp + 0x20], rax
lea rdx, [rbp + 0x28]
lea rcx, [r12 + 0x598]
call fcn.14007f530
nop
mov rcx, qword [rbp - 0x38]
test rcx, rcx
je 0x1401154cc
mov eax, r15d
lock xadd dword [rcx + 8], eax
cmp eax, 1
jne 0x1401154cc
mov rdi, qword [rbp - 0x38]
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax]
mov eax, r15d
lock xadd dword [rdi + 0xc], eax
cmp eax, 1
jne 0x1401154cc
mov rcx, qword [rbp - 0x38]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
jmp 0x1401154f1
test rsi, rsi
je 0x1401154d7
lock inc dword [rsi + 8]
mov rax, qword [rbp - 0x70]
mov qword [rbp - 0x28], rax
mov qword [rbp - 0x20], rsi
lea rdx, [rbp - 0x28]
mov rcx, qword [rbp - 0x30]
call fcn.140083e60
nop
test rsi, rsi
je 0x140115522
mov eax, r15d
lock xadd dword [rsi + 8], eax
cmp eax, 1
jne 0x140115522
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax]
mov eax, r15d
lock xadd dword [rsi + 0xc], eax
cmp eax, 1
jne 0x140115522
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rbx, qword [rbx]
cmp rbx, qword [rsp + 0x58]
jne 0x1401152b4
mov rcx, qword [r13]
mov byte [rcx + 0xa94], 1
xor eax, eax
mov dword [rsp + 0x48], eax
mov rax, qword [rcx + 0xa28]
mov r8d, dword [rax + 0x68]
mov eax, 0x2718
add r8w, ax
lea edx, [rax + 8]
lea rax, [rsp + 0x48]
mov qword [rsp + 0x20], rax
xor r9d, r9d
call fcn.1400ca500
nop
lea rcx, [rsp + 0x58]
call fcn.1400855b0
mov edx, 0x20
mov rcx, qword [rsp + 0x58]
call fcn.1401aed44
nop
mov rbx, qword [rsp + 0x40]
test rbx, rbx
je 0x1401155bb
mov eax, r15d
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x1401155bb
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
mov eax, r15d
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x1401155bb
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rbx, qword [r13 + 8]
test rbx, rbx
je 0x1401155ef
mov eax, r15d
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x1401155ef
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
lock xadd dword [rbx + 0xc], r15d
cmp r15d, 1
jne 0x1401155ef
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
xor eax, eax
mov rcx, qword [rbp + 0x88]
xor rcx, rsp
call fcn.1401aed20
mov rbx, qword [rsp + 0x1e8]
add rsp, 0x190
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret