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

Disassembly:
push 0x70
mov eax, 0x4438e8
call fcn.0041f670
mov esi, dword [ebp + 8]
xor ebx, ebx
mov dword [ebp - 0x74], esi
mov dword [ebp - 0x74], ebx
lea eax, [ebp - 0x74]
mov dword [ebp - 4], ebx
push eax
push str.product_info.dll
lea ecx, [ebp - 0x50]
call fcn.004037b8
lea ecx, [ebp - 0x74]
call fcn.00403890
lea ecx, [ebp - 0x70]
call fcn.00403851
lea eax, [ebp - 0x74]
mov byte [ebp - 4], 3
push eax
push fcn.0040c930
push 6
call dword [sym.imp.KERNEL32.dll_GetModuleHandleExW]
test eax, eax
jne 0x40c993
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
call fcn.00405534
jmp 0x40c995
mov eax, ebx
test eax, eax
js 0x40c9a9
push dword [ebp - 0x74]
lea ecx, [ebp - 0x70]
call fcn.0040f362
pop ecx
test eax, eax
jns 0x40c9b9
lea eax, [ebp - 0x50]
mov ecx, esi
push eax
call fcn.00403801
jmp 0x40cbc4
lea edx, [ebp - 0x70]
lea ecx, [ebp - 0x7c]
call fcn.0040ee21
mov dword [ebp - 0x74], ebx
lea ecx, [ebp - 0x74]
mov byte [ebp - 4], 4
push ecx
push dword [eax + 4]
lea ecx, [ebp - 0x30]
push dword [eax]
call fcn.0040f40c
lea ecx, [ebp - 0x74]
call fcn.00403890
lea edx, [ebp - 0x50]
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x30]
call fcn.0040fab2
push dword [ebp - 0x30]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x40cba8
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
call fcn.00405534
test eax, eax
je 0x40cba8
mov edi, 0x80010103
cmp eax, 0x80010102
je 0x40ca2a
cmp eax, edi
jne 0x40ca2d
xor eax, eax
inc eax
test eax, eax
je 0x40cba8
mov edx, dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
lea ecx, [ebp - 0x30]
call fcn.0040fb52
test eax, eax
jns 0x40ca57
lea eax, [ebp - 0x50]
mov ecx, esi
push eax
call fcn.00403801
jmp 0x40cbb3
lea edx, [ebp - 0x50]
lea ecx, [ebp - 0x30]
call fcn.0040fab2
push dword [ebp - 0x30]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x40cba8
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
call fcn.00405534
test eax, eax
je 0x40cba8
cmp eax, 0x80010102
je 0x40ca94
cmp eax, edi
jne 0x40ca97
xor eax, eax
inc eax
test eax, eax
je 0x40cba8
push str.Kernel32.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov edi, eax
test edi, edi
jne 0x40cabe
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x40cb90
push str.GetDllDirectoryW
push edi
mov ebx, edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
jne 0x40cae1
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x40cb90
mov eax, dword [ebp - 0x74]
push eax
lea ecx, [ebp - 0x30]
call fcn.0040ee72
pop ecx
test eax, eax
jns 0x40cb28
lea eax, [ebp - 0x50]
mov ecx, esi
push eax
call fcn.00403801
test edi, edi
je 0x40cafe
xor edi, edi
lea ecx, [ebp - 0x30]
push edi
call fcn.00403990
lea ecx, [ebp - 0x24]
call fcn.00403890
push edi
lea ecx, [ebp - 0x70]
call fcn.00403990
lea ecx, [ebp - 0x64]
call fcn.00403890
push edi
jmp 0x40cbd6
lea edx, [ebp - 0x50]
lea ecx, [ebp - 0x30]
call fcn.0040fab2
push dword [ebp - 0x30]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x40cb78
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
call fcn.00405534
test eax, eax
je 0x40cb78
cmp eax, 0x80010102
je 0x40cb60
cmp eax, 0x80010103
jne 0x40cb63
xor eax, eax
inc eax
test eax, eax
je 0x40cb78
lea eax, [ebp - 0x50]
mov ecx, esi
push eax
call fcn.00403801
test edi, edi
je 0x40cafe
jmp 0x40cafe
lea eax, [ebp - 0x30]
mov ecx, esi
push eax
call fcn.00403774
test edi, edi
je 0x40cafe
jmp 0x40cafe
lea eax, [ebp - 0x50]
mov ecx, esi
push eax
call fcn.00403801
test ebx, ebx
je 0x40cafe
jmp 0x40cafe
lea eax, [ebp - 0x30]
mov ecx, esi
push eax
call fcn.00403774
push ebx
lea ecx, [ebp - 0x30]
call fcn.00403990
lea ecx, [ebp - 0x24]
call fcn.00403890
push ebx
lea ecx, [ebp - 0x70]
call fcn.00403990
lea ecx, [ebp - 0x64]
call fcn.00403890
push ebx
lea ecx, [ebp - 0x50]
call fcn.00403990
lea ecx, [ebp - 0x44]
call fcn.00403890
mov eax, esi
call fcn.0041f61a
ret