Function at 0x101efab
Capabilities:
Check if file exists

Disassembly:
push 0x354
mov eax, 0x102fdc5
call fcn.0100f48e
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x238], eax
push dword [ebp + 8]
xor ebx, ebx
push 0x1004c38
mov dword [ebp - 4], ebx
call dword [sym.imp.msvcrt.dll_wprintf]
pop ecx
pop ecx
push dword [ebp + 8]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x101effd
mov ecx, dword [ebp + 8]
add ecx, 0xfffffff0
call fcn.0100744d
mov eax, 0x80070057
call fcn.0100f520
ret 0xc
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0xc]
cmp eax, 0x104
jl 0x101f01e
mov esi, 0x80070057
mov ecx, dword [ebp + 8]
add ecx, 0xfffffff0
call fcn.0100744d
mov eax, esi
jmp 0x101eff5
push ebx
call dword [sym.imp.ole32.dll_CoInitialize]
mov esi, eax
cmp esi, ebx
jl 0x101f00f
mov dword [ebp - 0x234], ebx
mov dword [ebp - 0x230], ebx
mov dword [ebp - 0x224], ebx
mov dword [ebp - 0x22c], ebx
lea eax, [ebp - 0x230]
push eax
mov byte [ebp - 4], 3
call dword [sym.imp.SHELL32.dll_SHGetDesktopFolder]
mov esi, eax
cmp esi, ebx
jl 0x101f32d
mov eax, dword [ebp + 8]
push dword [eax - 0xc]
mov esi, dword [ebp - 0x230]
lea ecx, [ebp + 8]
call fcn.0100a5c5
mov ecx, dword [esi]
push ebx
lea edx, [ebp - 0x234]
push edx
push ebx
push eax
push ebx
push ebx
push esi
call dword [ecx + 0xc]
mov esi, eax
cmp esi, ebx
jl 0x101f32d
mov eax, dword [ebp - 0x230]
mov ecx, dword [eax]
lea edx, [ebp - 0x224]
push edx
push 0x100216c
push ebx
push dword [ebp - 0x234]
push eax
call dword [ecx + 0x14]
mov esi, eax
cmp esi, ebx
jl 0x101f321
mov edi, dword [sym.imp.SHLWAPI.dll_StrRetToBufW]
cmp byte [ebp + 0x10], bl
je 0x101f1e7
mov eax, dword [ebp - 0x224]
mov ecx, dword [eax]
lea edx, [ebp - 0x22c]
push edx
push 0x20
push ebx
push eax
call dword [ecx + 0x10]
cmp eax, ebx
jl 0x101f1e7
mov dword [ebp - 0x228], ebx
mov dword [ebp - 0x220], ebx
jmp 0x101f1c3
cmp dword [ebp - 0x228], 1
jne 0x101f1e7
lea eax, [ebp - 0x21c]
push eax
push dword [ebp - 0x220]
mov dword [ebp - 0x21c], ebx
push dword [ebp - 0x224]
call dword [sym.imp.SHELL32.dll_SHGetRealIDL]
cmp eax, ebx
jl 0x101f1b7
mov eax, dword [ebp - 0x224]
mov ecx, dword [eax]
lea edx, [ebp - 0x360]
push edx
push 0x8000
push dword [ebp - 0x21c]
push eax
call dword [ecx + 0x2c]
cmp eax, ebx
jl 0x101f1ab
xor eax, eax
push 0x206
mov word [ebp - 0x218], ax
lea eax, [ebp - 0x216]
push ebx
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
push 0x104
lea eax, [ebp - 0x218]
push eax
push dword [ebp - 0x21c]
lea eax, [ebp - 0x360]
push eax
call edi
cmp eax, ebx
jl 0x101f1ab
push dword [ebp + 0x10]
lea eax, [ebp - 0x218]
push dword [ebp - 0x238]
push ecx
mov ecx, esp
mov dword [ebp - 0x23c], esp
push eax
call fcn.0100c7ee
call fcn.0101efab
push dword [ebp - 0x21c]
call dword [sym.imp.ole32.dll_CoTaskMemFree]
push dword [ebp - 0x220]
call dword [sym.imp.ole32.dll_CoTaskMemFree]
mov eax, dword [ebp - 0x22c]
mov ecx, dword [eax]
lea edx, [ebp - 0x228]
push edx
lea edx, [ebp - 0x220]
push edx
push 1
push eax
call dword [ecx + 0xc]
test eax, eax
jge 0x101f0f5
mov eax, dword [ebp - 0x224]
mov ecx, dword [eax]
lea edx, [ebp - 0x22c]
push edx
push 0x40
push ebx
push eax
call dword [ecx + 0x10]
mov esi, eax
cmp esi, ebx
jl 0x101f321
mov dword [ebp - 0x228], ebx
mov dword [ebp - 0x21c], ebx
jmp 0x101f2fd
cmp dword [ebp - 0x228], 1
jne 0x101f321
lea eax, [ebp - 0x220]
push eax
push dword [ebp - 0x21c]
mov dword [ebp - 0x220], ebx
push dword [ebp - 0x224]
call dword [sym.imp.SHELL32.dll_SHGetRealIDL]
cmp eax, ebx
jl 0x101f2f1
mov eax, dword [ebp - 0x224]
mov ecx, dword [eax]
lea edx, [ebp - 0x360]
push edx
push 0x8000
push dword [ebp - 0x220]
push eax
call dword [ecx + 0x2c]
cmp eax, ebx
jl 0x101f2e5
xor eax, eax
push 0x206
mov word [ebp - 0x218], ax
lea eax, [ebp - 0x216]
push ebx
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
push 0x104
lea eax, [ebp - 0x218]
push eax
push dword [ebp - 0x220]
lea eax, [ebp - 0x360]
push eax
call edi
cmp eax, ebx
jl 0x101f2e5
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x258]
call fcn.0100b48a
mov ecx, dword [ebp - 0x238]
lea eax, [ebp - 0x258]
push eax
mov byte [ebp - 4], 4
call fcn.0101ef66
push ebx
push 1
lea ecx, [ebp - 0x258]
mov byte [ebp - 4], 3
call fcn.01008e16
push dword [ebp - 0x220]
call dword [sym.imp.ole32.dll_CoTaskMemFree]
push dword [ebp - 0x21c]
call dword [sym.imp.ole32.dll_CoTaskMemFree]
mov eax, dword [ebp - 0x22c]
mov ecx, dword [eax]
lea edx, [ebp - 0x228]
push edx
lea edx, [ebp - 0x21c]
push edx
push 1
push eax
call dword [ecx + 0xc]
test eax, eax
jge 0x101f218
push dword [ebp - 0x234]
call dword [sym.imp.ole32.dll_CoTaskMemFree]
mov eax, dword [ebp - 0x22c]
mov byte [ebp - 4], 2
cmp eax, ebx
je 0x101f341
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x224]
mov byte [ebp - 4], 1
cmp eax, ebx
je 0x101f355
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x230]
mov byte [ebp - 4], bl
cmp eax, ebx
je 0x101f368
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
call dword [sym.imp.ole32.dll_CoUninitialize]
jmp 0x101f00f