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

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xffffffe8
mov esi, eax
mov eax, 0x42f090
add eax, 2
mov dword [esp + 4], eax
xor ebp, ebp
mov eax, dword [0x436c2c]
xor edx, edx
mov dword [eax], edx
mov eax, dword [esi]
call fcn.0041a704
mov edi, eax
mov eax, dword [esi]
call fcn.0041a808
mov ebx, eax
cmp word [ebx], 0x3a
jne 0x42ee4b
cmp edi, 2
jle 0x42ee4b
mov word [ebx], 0
sub ebx, 2
push 0
call sub.kernel32.dll_SetErrorMode
mov dword [esp], eax
mov eax, dword [esi]
mov edx, 0x8000
call fcn.0042f878
mov dword [esp + 0xc], eax
cmp dword [esp + 0xc], 0xffffffff
je 0x42eda4
mov eax, dword [esp + 0xc]
call fcn.0041e334
test eax, eax
jne 0x42ee1f
mov eax, dword [esp + 0xc]
call fcn.0041e3c8
test eax, eax
jne 0x42ee1f
add ebx, 2
mov word [ebx], 0x3a
mov eax, dword [0x436cc4]
cmp dword [eax], 4
jne 0x42eded
mov eax, dword [0x436ce4]
cmp dword [eax], 0
jne 0x42ede0
push 0
mov eax, dword [esi]
mov dword [esp + 0x14], eax
mov byte [esp + 0x18], 0xa
lea ecx, [esp + 0x14]
mov edx, 1
mov eax, 0x42f0a8
call fcn.0042f45c
mov eax, dword [0x436bdc]
mov dword [eax], 1
jmp 0x42ee0d
push 0
mov eax, dword [esi]
mov dword [esp + 0x14], eax
mov byte [esp + 0x18], 0xa
lea ecx, [esp + 0x14]
mov edx, 1
mov eax, 0x42f0a8
call fcn.0042f45c
cmp dword [esp + 0xc], 0xffffffff
je 0x42ee42
mov eax, dword [esp + 0xc]
call fcn.0042f944
jmp 0x42ee42
mov eax, dword [esp + 0xc]
call fcn.0041e334
test eax, eax
jne 0x42ee39
mov eax, dword [esp + 0xc]
call fcn.0041e3c8
test eax, eax
je 0x42ee42
mov eax, dword [esp + 0xc]
call fcn.0042f944
mov eax, dword [esp]
push eax
call sub.kernel32.dll_SetErrorMode
mov eax, 0x250
call fcn.0042e398
mov dword [esi + 0x14], eax
movzx eax, word [ebx]
mov word [esp + 8], ax
cmp word [esp + 8], 0x5c
jne 0x42ee6f
mov ebp, 1
jmp 0x42eec4
mov eax, dword [esi]
mov dx, 0x5c
call fcn.0041a6bc
mov ebx, eax
test ebx, ebx
jne 0x42ee9c
mov ebx, dword [esi]
mov eax, ebx
call fcn.0041a704
cmp eax, 2
jl 0x42ee9f
cmp word [ebx + 2], 0x3a
jne 0x42ee9f
lea eax, [ebx + 4]
mov ebx, eax
jmp 0x42ee9f
add ebx, 2
mov edx, 0x42f0f0
mov eax, ebx
call fcn.0041532c
test eax, eax
je 0x42eebf
mov edx, 0x42f0f4
mov eax, ebx
call fcn.0041532c
test eax, eax
jne 0x42eec4
mov ebp, 1
test ebp, ebp
jne 0x42efa8
mov eax, dword [0x436cc4]
cmp dword [eax], 4
jne 0x42ef72
mov eax, dword [0x436ca8]
cmp dword [eax], 1
jne 0x42ef27
mov eax, dword [esi]
push eax
call sub.kernel32.dll_GetFileAttributesW
mov ebx, eax
cmp ebx, 0xffffffff
je 0x42eefe
mov eax, dword [0x436c2c]
xor edx, edx
mov dword [eax], edx
jmp 0x42ef0b
call sub.kernel32.dll_GetLastError_2
mov edx, dword [0x436c2c]
mov dword [edx], eax
cmp ebx, 0xffffffff
je 0x42efa8
test bl, 0x10
je 0x42efa8
mov ebp, 1
jmp 0x42efa8
mov eax, dword [0x436ccc]
cmp dword [eax], 1
jne 0x42efa8
mov eax, dword [0x436ccc]
xor edx, edx
mov dword [eax], edx
mov eax, dword [esi]
push eax
call sub.kernel32.dll_GetFileAttributesW
mov ebx, eax
cmp ebx, 0xffffffff
je 0x42ef54
mov eax, dword [0x436c2c]
xor edx, edx
mov dword [eax], edx
jmp 0x42ef61
call sub.kernel32.dll_GetLastError_2
mov edx, dword [0x436c2c]
mov dword [edx], eax
cmp ebx, 0xffffffff
je 0x42efa8
test bl, 0x10
je 0x42efa8
mov ebp, 1
jmp 0x42efa8
mov eax, dword [esi]
push eax
call sub.kernel32.dll_GetFileAttributesW
mov ebx, eax
cmp ebx, 0xffffffff
je 0x42ef8c
mov eax, dword [0x436c2c]
xor edx, edx
mov dword [eax], edx
jmp 0x42ef99
call sub.kernel32.dll_GetLastError_2
mov edx, dword [0x436c2c]
mov dword [edx], eax
cmp ebx, 0xffffffff
je 0x42efa8
test bl, 0x10
je 0x42efa8
mov ebp, 1
test ebp, ebp
je 0x42eff6
cmp word [esp + 8], 0x5c
jne 0x42efc0
mov eax, 0x42f090
add eax, 4
mov dword [esp + 4], eax
mov eax, dword [esi]
call fcn.0042ece8
test al, al
jne 0x42efed
add edi, 5
mov eax, edi
add eax, eax
call fcn.0042e398
mov edx, dword [esi]
call fcn.0041a714
mov ebx, eax
mov dword [esi], ebx
mov eax, ebx
mov edx, dword [esp + 4]
call fcn.0041a728
mov eax, dword [esi + 0x14]
mov dword [eax], 0x10
mov edi, 1
xor ebx, ebx
mov eax, dword [esi]
jmp 0x42f018
cmp word [eax], 0x5c
je 0x42f012
cmp word [eax], 0x3a
jne 0x42f014
cmp edi, 2
jne 0x42f014
mov ebx, eax
add eax, 2
inc edi
cmp word [eax], 0
jne 0x42f001
mov dword [esi + 8], ebx
test ebx, ebx
je 0x42f038
cmp word [ebx], 0
je 0x42f033
lea eax, [ebx + 2]
mov dword [esi + 0xc], eax
jmp 0x42f03f
mov dword [esi + 0xc], ebx
jmp 0x42f03f
mov eax, dword [esi]
mov dword [esi + 0xc], eax
mov ebx, eax
mov dx, 0x2a
mov eax, ebx
call fcn.0041a694
test eax, eax
jne 0x42f05d
mov dx, 0x3f
mov eax, ebx
call fcn.0041a694
test eax, eax
je 0x42f06c
or dword [esi + 0x18], 8
mov eax, dword [0x436a74]
mov dword [eax], 1
mov dx, 0x2e
mov eax, ebx
call fcn.0041a694
mov dword [esi + 0x10], eax
add esp, 0x18
pop ebp
pop edi
pop esi
pop ebx
ret