Function at 0x14001061c
Capabilities:
Check if file exists

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x400
lea rbp, [rsp + 0x50]
mov qword [rbp + 0x50], 0xfffffffffffffffe
mov qword [rbp + 0x408], rbx
mov rax, qword [0x140296908]
xor rax, rbp
mov qword [rbp + 0x3a0], rax
mov r14, r8
mov rsi, rdx
mov r15, rcx
mov qword [rbp + 0x60], rdx
mov qword [rbp + 0x58], r8
xor eax, eax
mov qword [rbp + 0x78], rax
call fcn.14002afb8
mov rdx, rax
xor r12d, r12d
mov ecx, r12d
test rax, rax
setne cl
test ecx, ecx
jne 0x14001068e
mov ecx, 0x80004005
call fcn.14000e734
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp + 0x78], rax
call fcn.14002afb8
mov rdx, rax
mov ecx, r12d
test rax, rax
setne cl
test ecx, ecx
jne 0x1400106bf
mov ecx, 0x80004005
call fcn.14000e734
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp + 0x90], rax
call fcn.14002afb8
mov rdx, rax
mov ecx, r12d
test rax, rax
setne cl
test ecx, ecx
jne 0x1400106f3
mov ecx, 0x80004005
call fcn.14000e734
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp + 0x88], rax
call fcn.14002afb8
mov rdx, rax
mov ecx, r12d
test rax, rax
setne cl
test ecx, ecx
jne 0x140010727
mov ecx, 0x80004005
call fcn.14000e734
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp + 0x70], rax
call fcn.14002afb8
mov rdx, rax
mov ecx, r12d
test rax, rax
setne cl
test ecx, ecx
jne 0x140010758
mov ecx, 0x80004005
call fcn.14000e734
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp + 0x80], rax
mov r8, qword [rsi]
or r13, 0xffffffffffffffff
movabs rdi, 0xffffffffffffff0
test r8, r8
je 0x1400107f5
mov rcx, r13
inc rcx
cmp word [r8 + rcx*2], r12w
jne 0x140010785
inc ecx
cmp ecx, 0x3fffffff
jg 0x1400107f5
movsxd rax, ecx
add rax, rax
lea rdx, [rax + 0xf]
cmp rdx, rax
ja 0x1400107ab
mov rdx, rdi
and rdx, 0xfffffffffffffff0
mov rax, rdx
call fcn.1401a6000
sub rsp, rdx
lea rbx, [rsp + 0x50]
test rbx, rbx
je 0x1400107f5
mov byte [rbx], r12b
lea eax, [rcx + rcx]
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x30], r12
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rbx
mov r9d, r13d
xor edx, edx
lea ecx, [rdx + 3]
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
neg eax
sbb rcx, rcx
and rcx, rbx
jmp 0x1400107f8
mov rcx, r12
mov edx, 0x100
mov qword [rsp + 0x40], rdx
lea rax, [rbp + 0x1a0]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], rdx
lea rax, [rbp + 0x2a0]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rdx
lea r9, [rbp + 0xa0]
mov r8d, 3
lea rdx, [rbp + 0x68]
call fcn.1401b5250
lea rax, [rbp + 0x68]
mov rdx, r13
inc rdx
cmp byte [rax + rdx], r12b
jne 0x140010841
inc edx
cmp edx, 0x3fffffff
jle 0x140010859
mov rbx, r12
jmp 0x1400108b1
movsxd rax, edx
add rax, rax
lea rcx, [rax + 0xf]
cmp rcx, rax
ja 0x14001086b
mov rcx, rdi
and rcx, 0xfffffffffffffff0
mov rax, rcx
call fcn.1401a6000
sub rsp, rcx
lea rbx, [rsp + 0x50]
test rbx, rbx
je 0x1400108a9
mov word [rbx], r12w
mov dword [rsp + 0x28], edx
mov qword [rsp + 0x20], rbx
mov r9d, r13d
lea r8, [rbp + 0x68]
xor edx, edx
lea ecx, [rdx + 3]
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
test eax, eax
jne 0x1400108ac
jmp 0x140010854
mov rbx, r12
test rbx, rbx
jne 0x1400108b6
mov eax, r12d
jmp 0x1400108c3
mov rax, r13
inc rax
cmp word [rbx + rax*2], r12w
jne 0x1400108b9
mov r8d, eax
mov rdx, rbx
lea rcx, [rbp + 0x90]
call fcn.140013f10
lea rax, [rbp + 0xa0]
mov rcx, r13
inc rcx
cmp byte [rax + rcx], r12b
jne 0x1400108df
inc ecx
cmp ecx, 0x3fffffff
jle 0x1400108f7
mov rbx, r12
jmp 0x140010952
movsxd rax, ecx
add rax, rax
lea rdx, [rax + 0xf]
cmp rdx, rax
ja 0x140010909
mov rdx, rdi
and rdx, 0xfffffffffffffff0
mov rax, rdx
call fcn.1401a6000
sub rsp, rdx
lea rbx, [rsp + 0x50]
test rbx, rbx
je 0x14001094a
mov word [rbx], r12w
mov dword [rsp + 0x28], ecx
mov qword [rsp + 0x20], rbx
mov r9d, r13d
lea r8, [rbp + 0xa0]
xor edx, edx
lea ecx, [rdx + 3]
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
test eax, eax
jne 0x14001094d
jmp 0x1400108f2
mov rbx, r12
test rbx, rbx
jne 0x140010957
mov eax, r12d
jmp 0x140010964
mov rax, r13
inc rax
cmp word [rbx + rax*2], r12w
jne 0x14001095a
mov r8d, eax
mov rdx, rbx
lea rcx, [rbp + 0x88]
call fcn.140013f10
mov rdx, r14
lea rcx, [rbp + 0x70]
call fcn.140013dac
lea rax, [rbp + 0x1a0]
mov rdx, r13
inc rdx
cmp byte [rax + rdx], r12b
jne 0x14001098c
inc edx
cmp edx, 0x3fffffff
jle 0x1400109a4
mov rbx, r12
jmp 0x1400109ff
movsxd rax, edx
add rax, rax
lea rcx, [rax + 0xf]
cmp rcx, rax
ja 0x1400109b6
mov rcx, rdi
and rcx, 0xfffffffffffffff0
mov rax, rcx
call fcn.1401a6000
sub rsp, rcx
lea rbx, [rsp + 0x50]
test rbx, rbx
je 0x1400109f7
mov word [rbx], r12w
mov dword [rsp + 0x28], edx
mov qword [rsp + 0x20], rbx
mov r9d, r13d
lea r8, [rbp + 0x1a0]
xor edx, edx
lea ecx, [rdx + 3]
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
test eax, eax
jne 0x1400109fa
jmp 0x14001099f
mov rbx, r12
test rbx, rbx
jne 0x140010a04
mov eax, r12d
jmp 0x140010a11
mov rax, r13
inc rax
cmp word [rbx + rax*2], r12w
jne 0x140010a07
mov r8d, eax
mov rdx, rbx
lea rcx, [rbp + 0x80]
call fcn.140013f10
lea rdx, str..JPG
mov rbx, qword [rbp + 0x80]
mov rcx, rbx
call fcn.1401b6064
test eax, eax
je 0x140010aca
lea rdx, str..jpg
mov rcx, rbx
call fcn.1401b6064
test eax, eax
je 0x140010aca
lea rdx, str..jpeg
mov rcx, rbx
call fcn.1401b6064
test eax, eax
je 0x140010aca
lea rdx, str..bmp
mov rcx, rbx
call fcn.1401b6064
test eax, eax
je 0x140010aca
lea rdx, str..png
mov rcx, rbx
call fcn.1401b6064
test eax, eax
je 0x140010aca
lea rdx, str..gif
mov rcx, rbx
call fcn.1401b6064
test eax, eax
je 0x140010aca
lea rdx, str..ico
mov rcx, rbx
call fcn.1401b6064
test eax, eax
je 0x140010aca
lea r8, [0x14024f96c]
lea rdx, str.IMG_
lea rcx, [rbp + 0x70]
call fcn.140012d38
lea r8, [rbp + 0x88]
lea rdx, [rbp + 0x90]
lea rcx, [rbp + 0x28]
call fcn.140012be8
nop
lea r8, [rbp + 0x70]
mov rdx, rax
lea rcx, [rbp + 0x20]
call fcn.140012be8
nop
lea r8, [rbp + 0x80]
mov rdx, rax
lea rcx, [rbp + 0x18]
call fcn.140012be8
nop
mov rdx, rax
lea rcx, [rbp + 0x78]
call fcn.140013dac
nop
mov rdx, qword [rbp + 0x18]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
add eax, r13d
test eax, eax
jg 0x140010b35
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp + 0x20]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
add eax, r13d
test eax, eax
jg 0x140010b56
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp + 0x28]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
add eax, r13d
test eax, eax
jg 0x140010b76
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
call fcn.14002afb8
mov rdx, rax
mov ecx, r12d
test rax, rax
setne cl
test ecx, ecx
jne 0x140010b96
mov ecx, 0x80004005
call fcn.14000e734
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp + 0x98], rax
mov r8d, dword [0x140297650]
lea rdx, [0x14024f970]
lea rcx, [rbp + 0x98]
call fcn.14000e83c
mov rcx, qword [rbp + 0x78]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x140010dc7
mov ecx, 0x18
call fcn.140014450
mov rbx, rax
mov qword [rbp + 0x10], rax
test rax, rax
je 0x140010c11
xor eax, eax
mov qword [rbx], rax
mov qword [rbx + 0x10], rax
mov qword [rbx + 8], r12
mov dword [rbx + 0x10], 1
lea rcx, [0x14024ee1c]
call fcn.1401a68d0
mov qword [rbx], rax
jmp 0x140010c14
mov rbx, r12
mov qword [rbp + 0x10], rbx
test rbx, rbx
jne 0x140010c28
mov ecx, 0x8007000e
call fcn.1401a68c0
nop
lea r8, [rbp + 0x10]
mov rdx, qword [rbp + 0x70]
lea rcx, [rbp + 8]
call fcn.1400136b4
nop
mov rcx, qword [rax]
test rcx, rcx
je 0x140010c47
mov rdx, qword [rcx]
jmp 0x140010c4a
mov rdx, r12
lea r8, [rbp + 0x98]
lea rcx, [rbp + 0x30]
call fcn.140013b34
nop
mov rdx, rax
lea rcx, [rbp + 0x70]
call fcn.140013dac
nop
mov rdx, qword [rbp + 0x30]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
add eax, r13d
test eax, eax
jg 0x140010c89
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdi, qword [rbp + 8]
test rdi, rdi
je 0x140010cd8
mov eax, r13d
lock xadd dword [rdi + 0x10], eax
add eax, r13d
jne 0x140010cd4
test rdi, rdi
je 0x140010cd4
mov rcx, qword [rdi]
test rcx, rcx
je 0x140010cb5
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov qword [rdi], r12
mov rcx, qword [rdi + 8]
test rcx, rcx
je 0x140010cc7
call fcn.140014494
mov qword [rdi + 8], r12
mov edx, 0x18
mov rcx, rdi
call fcn.14000e8e4
mov qword [rbp + 8], r12
mov eax, r13d
lock xadd dword [rbx + 0x10], eax
add eax, r13d
jne 0x140010d15
mov rcx, qword [rbx]
test rcx, rcx
je 0x140010cf6
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov qword [rbx], r12
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x140010d08
call fcn.140014494
mov qword [rbx + 8], r12
mov edx, 0x18
mov rcx, rbx
call fcn.14000e8e4
lea r8, [rbp + 0x88]
lea rdx, [rbp + 0x90]
lea rcx, [rbp + 0x48]
call fcn.140012be8
nop
lea r8, [rbp + 0x70]
mov rdx, rax
lea rcx, [rbp + 0x40]
call fcn.140012be8
nop
lea r8, [rbp + 0x80]
mov rdx, rax
lea rcx, [rbp + 0x38]
call fcn.140012be8
nop
mov rdx, rax
lea rcx, [rbp + 0x78]
call fcn.140013dac
nop
mov rdx, qword [rbp + 0x38]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
add eax, r13d
test eax, eax
jg 0x140010d80
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp + 0x40]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
add eax, r13d
test eax, eax
jg 0x140010da1
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp + 0x48]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
add eax, r13d
test eax, eax
jg 0x140010dc1
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
inc dword [0x140297650]
xor r8d, r8d
mov rdx, qword [rbp + 0x78]
mov rcx, qword [rsi]
call fcn.14003bad0
lea rcx, [r15 + 0x8f8]
mov r8, rsi
mov rdx, qword [rcx + 0x10]
call fcn.140029b08
lea rcx, [r15 + 0x920]
lea r8, [rbp + 0x78]
mov rdx, qword [rcx + 0x10]
call fcn.140029b08
nop
mov rdx, qword [rbp + 0x98]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
add eax, r13d
test eax, eax
jg 0x140010e22
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp + 0x80]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
add eax, r13d
test eax, eax
jg 0x140010e46
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp + 0x70]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
add eax, r13d
test eax, eax
jg 0x140010e67
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp + 0x88]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
add eax, r13d
test eax, eax
jg 0x140010e8b
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp + 0x90]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
add eax, r13d
test eax, eax
jg 0x140010eaf
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp + 0x78]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
add eax, r13d
test eax, eax
jg 0x140010ed0
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsi]
sub rdx, 0x18
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
add eax, r13d
test eax, eax
jg 0x140010ef0
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [r14]
sub rdx, 0x18
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
add eax, r13d
test eax, eax
jg 0x140010f0f
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rcx, qword [rbp + 0x3a0]
xor rcx, rbp
call fcn.1401a55b0
mov rbx, qword [rbp + 0x408]
lea rsp, [rbp + 0x3b0]
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret