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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4ac090
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
sub esp, 0x244
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x250], ecx
mov dword [ebp - 0x2c], 0
mov byte [ebp - 0x28], 0
mov byte [ebp - 0x18], 1
mov byte [ebp - 0x34], 0
mov byte [ebp - 0x30], 0
mov dword [ebp - 0x1c], 0
mov eax, dword [ebp + 0x10]
mov dword [eax], 0
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0
cmp dword [ebp + 8], 0
jne 0x41914e
cmp dword [ebp + 0xc], 0
jne 0x41914e
xor eax, eax
jmp 0x419541
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x24], 0
mov dword [ebp - 4], 0
cmp dword [ebp + 8], 0
jne 0x419376
mov edx, dword [ebp + 0xc]
push edx
call dword [sym.imp.SHLWAPI.dll_StrDupW]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
mov dword [ebp + 0xc], eax
mov ecx, dword [ebp + 0xc]
mov dword [ebp + 8], ecx
mov edx, dword [ebp + 8]
mov dword [ebp - 0x2c], edx
mov eax, dword [ebp + 8]
mov dword [ebp - 0x244], eax
mov ecx, dword [ebp - 0x244]
xor edx, edx
mov dx, word [ecx]
cmp edx, 0x22
jne 0x41920b
mov byte [ebp - 0x18], 0
mov eax, dword [ebp - 0x244]
add eax, 2
mov dword [ebp - 0x244], eax
mov ecx, dword [ebp - 0x244]
mov dword [ebp + 8], ecx
mov edx, dword [ebp - 0x244]
xor eax, eax
mov ax, word [edx]
test eax, eax
je 0x419209
mov ecx, dword [ebp - 0x244]
xor edx, edx
mov dx, word [ecx]
cmp edx, 0x22
jne 0x4191ef
mov eax, dword [ebp - 0x244]
mov dword [ebp - 0x2c], eax
mov byte [ebp - 0x34], 1
jmp 0x419209
mov ecx, dword [ebp - 0x244]
add ecx, 2
mov dword [ebp - 0x244], ecx
mov edx, dword [ebp - 0x244]
mov dword [ebp - 0x2c], edx
jmp 0x4191c1
jmp 0x419265
mov eax, dword [ebp + 0xc]
mov dword [ebp + 8], eax
mov ecx, dword [ebp - 0x244]
xor edx, edx
mov dx, word [ecx]
test edx, edx
je 0x419265
mov eax, dword [ebp - 0x244]
xor ecx, ecx
mov cx, word [eax]
cmp ecx, 0x20
je 0x419240
mov edx, dword [ebp - 0x244]
xor eax, eax
mov ax, word [edx]
cmp eax, 9
jne 0x41924b
mov ecx, dword [ebp - 0x244]
mov dword [ebp - 0x2c], ecx
jmp 0x419265
mov edx, dword [ebp - 0x244]
add edx, 2
mov dword [ebp - 0x244], edx
mov eax, dword [ebp - 0x244]
mov dword [ebp - 0x2c], eax
jmp 0x419211
mov ecx, dword [ebp - 0x2c]
mov dx, word [ecx]
mov word [ebp - 0x20], dx
mov eax, dword [ebp - 0x2c]
mov word [eax], 0
push 0
lea ecx, [ebp - 0x240]
push ecx
push 0x104
push 0x4c5094
mov edx, dword [ebp + 8]
push edx
push 0
call dword [sym.imp.KERNEL32.dll_SearchPathW]
shl eax, 1
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x38], 0
je 0x4192ee
cmp dword [ebp - 0x38], 0x208
jae 0x4192ee
lea eax, [ebp - 0x240]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov dword [ebp - 0x248], eax
cmp dword [ebp - 0x248], 0xffffffff
je 0x4192dc
mov ecx, dword [ebp - 0x248]
and ecx, 0x10
test ecx, ecx
je 0x4192dc
mov dword [ebp - 0x38], 0
jmp 0x4192ee
mov edx, dword [ebp - 0x38]
add edx, 1
mov dword [ebp - 0x38], edx
mov eax, dword [ebp - 0x38]
add eax, 1
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x38], 0
je 0x4192fd
cmp dword [ebp - 0x38], 0x208
jb 0x419361
mov ecx, dword [ebp - 0x2c]
mov dx, word [ebp - 0x20]
mov word [ecx], dx
lea eax, [ebp - 0x240]
mov dword [ebp + 8], eax
mov ecx, dword [ebp - 0x244]
xor edx, edx
mov dx, word [ecx]
test edx, edx
je 0x419350
mov eax, dword [ebp - 0x18]
and eax, 0xff
test eax, eax
je 0x419350
mov ecx, dword [ebp - 0x244]
add ecx, 2
mov dword [ebp - 0x244], ecx
mov edx, dword [ebp - 0x244]
mov dword [ebp - 0x2c], edx
mov byte [ebp - 0x30], 1
mov byte [ebp - 0x34], 1
jmp 0x41920b
mov eax, dword [ebp - 0x24]
push eax
call dword [sym.imp.KERNEL32.dll_LocalFree]
xor eax, eax
jmp 0x419541
mov ecx, dword [ebp - 0x2c]
mov dx, word [ebp - 0x20]
mov word [ecx], dx
lea eax, [ebp - 0x240]
mov dword [ebp + 8], eax
jmp 0x4193b7
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4193b0
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.SHLWAPI.dll_PathIsDirectoryW]
test eax, eax
jne 0x4193b0
cmp dword [ebp + 0xc], 0
je 0x4193a4
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cx, word [eax]
test ecx, ecx
jne 0x4193ae
mov byte [ebp - 0x28], 1
mov edx, dword [ebp + 8]
mov dword [ebp + 0xc], edx
jmp 0x4193b7
xor eax, eax
jmp 0x419541
mov eax, dword [ebp - 0x30]
and eax, 0xff
test eax, eax
jne 0x4193d4
mov ecx, dword [ebp - 0x28]
and ecx, 0xff
test ecx, ecx
je 0x4194b3
mov edx, dword [ebp + 0xc]
push edx
call dword [sym.imp.ntdll.dll_wcslen]
add esp, 4
lea eax, [eax + eax + 6]
mov dword [ebp - 0x24c], eax
mov ecx, dword [ebp - 0x24c]
push ecx
push 0
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0
je 0x419491
push 0x4c50a0
mov edx, dword [ebp - 0x24c]
push edx
mov eax, dword [ebp - 0x1c]
push eax
call fcn.0041a560
mov ecx, dword [ebp - 0x30]
and ecx, 0xff
test ecx, ecx
je 0x41943b
mov edx, dword [ebp - 0x2c]
mov ax, word [edx]
mov word [ebp - 0x20], ax
mov ecx, dword [ebp - 0x2c]
mov word [ecx], 0
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp - 0x24c]
push eax
mov ecx, dword [ebp - 0x1c]
push ecx
call fcn.0041a5a0
push 0x4c50a4
mov edx, dword [ebp - 0x24c]
push edx
mov eax, dword [ebp - 0x1c]
push eax
call fcn.0041a5a0
mov ecx, dword [ebp - 0x30]
and ecx, 0xff
test ecx, ecx
je 0x41948f
mov edx, dword [ebp - 0x2c]
mov ax, word [ebp - 0x20]
mov word [edx], ax
mov ecx, dword [ebp - 0x2c]
push ecx
mov edx, dword [ebp - 0x24c]
push edx
mov eax, dword [ebp - 0x1c]
push eax
call fcn.0041a5a0
jmp 0x4194b3
mov ecx, dword [ebp - 0x30]
and ecx, 0xff
test ecx, ecx
je 0x4194a2
mov byte [ebp - 0x30], 0
mov edx, dword [ebp - 0x28]
and edx, 0xff
test edx, edx
je 0x4194b3
mov byte [ebp - 0x28], 0
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.SHLWAPI.dll_StrDupW]
mov ecx, dword [ebp + 0x10]
mov dword [ecx], eax
mov edx, dword [ebp - 0x30]
and edx, 0xff
test edx, edx
jne 0x4194e6
mov eax, dword [ebp - 0x28]
and eax, 0xff
test eax, eax
jne 0x4194e6
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x254], ecx
jmp 0x4194ef
mov edx, dword [ebp - 0x1c]
mov dword [ebp - 0x254], edx
mov eax, dword [ebp - 0x254]
push eax
call dword [sym.imp.SHLWAPI.dll_StrDupW]
mov ecx, dword [ebp + 0x14]
mov dword [ecx], eax
mov dword [ebp - 0x14], 1
jmp 0x419517
mov dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x24], 0
je 0x41952e
mov edx, dword [ebp - 0x24]
push edx
call dword [sym.imp.KERNEL32.dll_LocalFree]
cmp dword [ebp - 0x1c], 0
je 0x41953e
mov eax, dword [ebp - 0x1c]
push eax
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10