Function at 0x1007ac8a
Capabilities:
Check if file exists

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x6ec
mov eax, dword [0x100a8ba4]
xor eax, esp
mov dword [esp + 0x6e8], eax
mov eax, dword [ebp + 8]
push ebx
push esi
mov dword [esp + 0x14], eax
mov ebx, ecx
mov eax, dword [ebp + 0xc]
push edi
mov dword [esp + 0x24], eax
mov edi, edx
xor eax, eax
mov dword [esp + 0x14], edi
push 0x208
push eax
mov esi, eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x24], eax
lea eax, [esp + 0x2e8]
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
test edi, edi
je 0x1007addc
push 0x10027ae8
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edi, eax
test edi, edi
jne 0x1007ad39
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x1007ad13
movzx eax, ax
or eax, 0x80070000
test eax, eax
jns 0x1007ad2c
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x1007ad33
movzx esi, si
or esi, 0x80070000
jmp 0x1007ad31
mov esi, 0x80004005
test esi, esi
js 0x1007b063
push 0x10027afc
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [esp + 0x20], eax
test eax, eax
jne 0x1007ad87
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x1007ad61
movzx eax, ax
or eax, 0x80070000
test eax, eax
jns 0x1007ad7a
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x1007ad81
movzx esi, si
or esi, 0x80070000
jmp 0x1007ad7f
mov esi, 0x80004005
test esi, esi
js 0x1007b063
xor eax, eax
mov ecx, edi
push eax
push eax
push eax
push dword [esp + 0x20]
call dword [0x100aa3f8]
call edi
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x1007addc
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x1007adb6
movzx eax, ax
or eax, 0x80070000
test eax, eax
jns 0x1007adcf
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x1007add6
movzx esi, si
or esi, 0x80070000
jmp 0x1007add4
mov esi, 0x80004005
test esi, esi
js 0x1007b063
push 0x10027b10
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edi, eax
test edi, edi
jne 0x1007af79
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7f
jne 0x1007ae11
push 0x10027b30
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [esp + 0x10], eax
test eax, eax
jne 0x1007ae4b
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x1007ae25
movzx eax, ax
or eax, 0x80070000
test eax, eax
jns 0x1007ae42
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov eax, dword [esp + 0x10]
test esi, esi
jle 0x1007ae4d
movzx esi, si
or esi, 0x80070000
jmp 0x1007ae4b
mov eax, dword [esp + 0x10]
mov esi, 0x80004005
test esi, esi
js 0x1007b04c
test eax, eax
je 0x1007b020
mov ebx, dword [esp + 0x1c]
xor edi, edi
push 0x208
lea eax, [esp + 0x4ec]
push 0
push eax
call sub.msvcrt.dll_memset
push 0x2b8
lea eax, [esp + 0x38]
push 0
push eax
call sub.msvcrt.dll_memset
mov ecx, dword [esp + 0x28]
lea eax, [esp + 0x40]
add esp, 0x18
push eax
push 0x104
lea eax, [esp + 0x4f0]
push eax
movzx eax, word [edi + 0x10027b44]
push 0
push 0
push eax
push dword [esp + 0x30]
push ebx
call dword [0x100aa3f8]
call dword [esp + 0x30]
test eax, eax
jne 0x1007af1d
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x490
je 0x1007af48
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
je 0x1007af48
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x57
je 0x1007af48
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x1007aef5
movzx eax, ax
or eax, 0x80070000
test eax, eax
jns 0x1007af0e
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x1007af15
movzx esi, si
or esi, 0x80070000
jmp 0x1007af13
mov esi, 0x80004005
test esi, esi
js 0x1007b04c
jmp 0x1007af48
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x14]
and dword [esp + 0x14], 0
lea edx, [esp + 0x4e8]
push eax
call fcn.1007913e
mov esi, eax
test esi, esi
js 0x1007b04c
cmp dword [esp + 0x14], 0
jne 0x1007af59
add edi, 2
cmp edi, 0xa
jb 0x1007ae61
jmp 0x1007b020
lea eax, [esp + 0xd4]
mov edx, 0x104
push eax
lea ecx, [esp + 0x2e4]
call fcn.100529e2
mov esi, eax
jmp 0x1007b01c
mov ebx, dword [esp + 0x1c]
xor eax, eax
push eax
mov dword [esp + 0x14], eax
mov ecx, edi
mov dword [esp + 0x18], eax
lea eax, [esp + 0x14]
push eax
push 0x208
lea eax, [esp + 0x2ec]
push eax
lea eax, [esp + 0x24]
push eax
push 0x10023230
push dword [esp + 0x30]
push 2
push ebx
call dword [0x100aa3f8]
call edi
test eax, eax
jne 0x1007b010
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x490
je 0x1007b01c
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
je 0x1007b01c
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x57
je 0x1007b01c
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x1007aff0
movzx eax, ax
or eax, 0x80070000
test eax, eax
jns 0x1007b009
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x1007b01e
movzx esi, si
or esi, 0x80070000
jmp 0x1007b01c
mov esi, 0x80004005
jmp 0x1007b01c
cmp dword [esp + 0x14], 0x12
je 0x1007b01c
mov esi, 0x8000ffff
test esi, esi
js 0x1007b04c
cmp word [esp + 0x2e0], 0
mov eax, dword [esp + 0x18]
je 0x1007b036
lea eax, [esp + 0x2e0]
push eax
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov ecx, dword [esp + 0x24]
mov dword [ecx], eax
test eax, eax
jne 0x1007b04c
mov esi, 0x8007000e
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x1007b063
mov edi, dword [esp + 0x20]
mov ecx, edi
push eax
call dword [0x100aa3f8]
call edi
mov ecx, dword [esp + 0x6f4]
mov eax, esi
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.1002c750
mov esp, ebp
pop ebp
ret 8