Function at 0x100686a0
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x864
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
push ebx
push esi
mov esi, ecx
mov dword [ebp - 0x82c], eax
push edi
xor ecx, ecx
mov dword [ebp - 0x824], esi
mov word [eax], cx
or ebx, 0xffffffff
lea eax, [ebp - 0x818]
push eax
push 0x1009a3f0
push 0x17
push ecx
push 0x1009a400
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x10068a96
mov ecx, dword [ebp - 0x818]
test ecx, ecx
je 0x10068a96
mov eax, dword [ecx]
lea edx, [ebp - 0x81c]
push edx
push ecx
call dword [eax + 0x1c]
test eax, eax
js 0x10068a8a
lea eax, [ebp - 0x860]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
xor edi, edi
mov dword [ebp - 0x810], edi
cmp dword [ebp - 0x81c], edi
jle 0x10068a7d
mov ecx, 3
mov dword [ebp - 0x858], edi
mov word [ebp - 0x860], cx
lea eax, [ebp - 0x814]
mov ecx, dword [ebp - 0x818]
movdqu xmm0, xmmword [ebp - 0x860]
push eax
sub esp, 0x10
mov dword [ebp - 0x814], 0
mov edx, dword [ecx]
mov eax, esp
push ecx
movdqu xmmword [eax], xmm0
call dword [edx + 0x20]
test eax, eax
js 0x10068ad0
mov ecx, dword [ebp - 0x814]
test ecx, ecx
je 0x10068ad0
lea edx, [ebp - 0x80c]
mov dword [ebp - 0x80c], 0
mov eax, dword [ecx]
push edx
push 0x1009a3e0
push ecx
call dword [eax]
test eax, eax
js 0x10068ac4
mov ecx, dword [ebp - 0x80c]
test ecx, ecx
je 0x10068ac4
mov eax, dword [ecx]
lea edx, [ebp - 0x828]
push edx
push ecx
call dword [eax + 0x94]
test eax, eax
js 0x10068ab2
cmp dword [ebp - 0x828], esi
jne 0x10068ab2
mov eax, dword [ebp - 0x80c]
lea edx, [ebp - 0x820]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x78]
test eax, eax
js 0x10068aa9
mov esi, dword [ebp - 0x820]
test esi, esi
je 0x10068aa9
lea edx, [ebp - 0x808]
mov ecx, esi
sub edx, esi
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edx + ecx - 2], ax
test ax, ax
jne 0x10068813
push esi
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov ax, word [ebp - 0x808]
cmp ax, 0x66
je 0x10068841
cmp ax, 0x46
jne 0x10068ab2
mov ax, word [ebp - 0x806]
cmp ax, 0x69
je 0x10068858
cmp ax, 0x49
jne 0x10068ab2
mov ax, word [ebp - 0x804]
cmp ax, 0x6c
je 0x1006886f
cmp ax, 0x4c
jne 0x10068ab2
mov ax, word [ebp - 0x802]
cmp ax, 0x65
je 0x10068886
cmp ax, 0x45
jne 0x10068ab2
cmp word [ebp - 0x800], 0x3a
jne 0x10068ab2
cmp word [ebp - 0x7fe], 0x2f
jne 0x10068ab2
cmp word [ebp - 0x7fc], 0x2f
jne 0x10068ab2
cmp word [ebp - 0x7fa], 0x2f
jne 0x10068ab2
xor ecx, ecx
cmp word [ebp - 0x7f8], cx
je 0x10068923
lea edx, [ebp - 0x7f8]
xor eax, eax
lea edi, [ecx + 0x5c]
movzx edx, word [edx]
cmp edx, 0x2f
jne 0x100688e6
mov word [ebp + eax - 0x808], di
jmp 0x100688ee
mov word [ebp + eax - 0x808], dx
inc ecx
lea edx, [ebp - 0x7f8]
lea eax, [ecx + ecx]
add edx, eax
cmp word [edx], 0
jne 0x100688d4
mov edi, dword [ebp - 0x810]
test ecx, ecx
je 0x10068923
cmp word [ebp + ecx*2 - 0x80a], 0x5c
je 0x10068923
mov eax, 0x5c
mov word [ebp + ecx*2 - 0x808], ax
inc ecx
add ecx, ecx
cmp ecx, 0x800
jae 0x10068ae4
lea edx, [ebp - 0x808]
xor eax, eax
add edx, ecx
mov word [edx], ax
mov eax, dword [ebp + 8]
sub edx, eax
movzx ecx, word [eax]
lea eax, [eax + 2]
mov word [edx + eax - 2], cx
test cx, cx
jne 0x10068943
lea eax, [ebp - 0x808]
push eax
call dword [sym.imp.KERNEL32.DLL_GetFileAttributesW]
mov ebx, eax
cmp ebx, 0xffffffff
je 0x10068ab2
mov edx, dword [ebp - 0x82c]
lea ecx, [ebp - 0x808]
mov eax, ecx
sub edx, eax
jmp 0x10068980
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edx + ecx - 2], ax
test ax, ax
jne 0x10068980
test bl, 0x10
je 0x10068ab2
mov esi, dword [sym.imp.OLEAUT32.dll_VariantClear]
lea eax, [ebp - 0x840]
push eax
call esi
lea eax, [ebp - 0x850]
push eax
call esi
mov eax, 8
mov word [ebp - 0x840], ax
lea eax, [ebp - 0x808]
push eax
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
lea edx, [ebp - 0x850]
mov dword [ebp - 0x838], eax
mov eax, dword [ebp - 0x80c]
push edx
push edx
push edx
mov ecx, dword [eax]
push edx
lea edx, [ebp - 0x840]
push edx
push eax
call dword [ecx + 0xd0]
mov eax, dword [ebp - 0x80c]
lea edx, [ebp - 0x810]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x7c]
test eax, eax
js 0x10068a35
mov esi, dword [sym.imp.KERNEL32.DLL_Sleep]
lea ecx, [ecx]
cmp word [ebp - 0x810], 0
je 0x10068a35
push 0x64
call esi
mov eax, dword [ebp - 0x80c]
lea edx, [ebp - 0x810]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x7c]
test eax, eax
jns 0x10068a10
push dword [ebp - 0x838]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
lea eax, [ebp - 0x840]
mov dword [ebp - 0x838], 0
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
lea eax, [ebp - 0x850]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [ebp - 0x80c]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [ebp - 0x814]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
lea eax, [ebp - 0x860]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [ebp - 0x818]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov ecx, dword [ebp - 4]
mov eax, ebx
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.1007aa10
mov esp, ebp
pop ebp
ret
xor eax, eax
mov word [ebp - 0x808], ax
mov eax, dword [ebp - 0x80c]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov esi, dword [ebp - 0x824]
mov eax, dword [ebp - 0x814]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
inc edi
mov dword [ebp - 0x810], edi
cmp edi, dword [ebp - 0x81c]
jge 0x10068a7d
jmp 0x10068735
call fcn.1007bb23
int3