Function at 0x42f690
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, 0x42fa08
add eax, 2
mov dword [esp + 4], eax
xor ebp, ebp
mov eax, dword [0x436c60]
xor edx, edx
mov dword [eax], edx
mov eax, dword [esi]
call fcn.0041af9c
mov edi, eax
mov eax, dword [esi]
call fcn.0041b0a0
mov ebx, eax
cmp word [ebx], 0x3a
jne 0x42f7c3
cmp edi, 2
jle 0x42f7c3
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.004301f0
mov dword [esp + 0xc], eax
cmp dword [esp + 0xc], 0xffffffff
je 0x42f71c
mov eax, dword [esp + 0xc]
call fcn.0041ebd4
test eax, eax
jne 0x42f797
mov eax, dword [esp + 0xc]
call fcn.0041ec68
test eax, eax
jne 0x42f797
add ebx, 2
mov word [ebx], 0x3a
mov eax, dword [0x436d00]
cmp dword [eax], 4
jne 0x42f765
mov eax, dword [0x436d20]
cmp dword [eax], 0
jne 0x42f758
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, 0x42fa20
call fcn.0042fdd4
mov eax, dword [0x436c10]
mov dword [eax], 1
jmp 0x42f785
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, 0x42fa20
call fcn.0042fdd4
cmp dword [esp + 0xc], 0xffffffff
je 0x42f7ba
mov eax, dword [esp + 0xc]
call fcn.004302bc
jmp 0x42f7ba
mov eax, dword [esp + 0xc]
call fcn.0041ebd4
test eax, eax
jne 0x42f7b1
mov eax, dword [esp + 0xc]
call fcn.0041ec68
test eax, eax
je 0x42f7ba
mov eax, dword [esp + 0xc]
call fcn.004302bc
mov eax, dword [esp]
push eax
call sub.kernel32.dll_SetErrorMode
mov eax, 0x250
call fcn.0042ec30
mov dword [esi + 0x14], eax
movzx eax, word [ebx]
mov word [esp + 8], ax
cmp word [esp + 8], 0x5c
jne 0x42f7e7
mov ebp, 1
jmp 0x42f83c
mov eax, dword [esi]
mov dx, 0x5c
call fcn.0041af54
mov ebx, eax
test ebx, ebx
jne 0x42f814
mov ebx, dword [esi]
mov eax, ebx
call fcn.0041af9c
cmp eax, 2
jl 0x42f817
cmp word [ebx + 2], 0x3a
jne 0x42f817
lea eax, [ebx + 4]
mov ebx, eax
jmp 0x42f817
add ebx, 2
mov edx, 0x42fa68
mov eax, ebx
call fcn.00415660
test eax, eax
je 0x42f837
mov edx, 0x42fa6c
mov eax, ebx
call fcn.00415660
test eax, eax
jne 0x42f83c
mov ebp, 1
test ebp, ebp
jne 0x42f920
mov eax, dword [0x436d00]
cmp dword [eax], 4
jne 0x42f8ea
mov eax, dword [0x436ce4]
cmp dword [eax], 1
jne 0x42f89f
mov eax, dword [esi]
push eax
call sub.kernel32.dll_GetFileAttributesW
mov ebx, eax
cmp ebx, 0xffffffff
je 0x42f876
mov eax, dword [0x436c60]
xor edx, edx
mov dword [eax], edx
jmp 0x42f883
call sub.kernel32.dll_GetLastError_2
mov edx, dword [0x436c60]
mov dword [edx], eax
cmp ebx, 0xffffffff
je 0x42f920
test bl, 0x10
je 0x42f920
mov ebp, 1
jmp 0x42f920
mov eax, dword [0x436d08]
cmp dword [eax], 1
jne 0x42f920
mov eax, dword [0x436d08]
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 0x42f8cc
mov eax, dword [0x436c60]
xor edx, edx
mov dword [eax], edx
jmp 0x42f8d9
call sub.kernel32.dll_GetLastError_2
mov edx, dword [0x436c60]
mov dword [edx], eax
cmp ebx, 0xffffffff
je 0x42f920
test bl, 0x10
je 0x42f920
mov ebp, 1
jmp 0x42f920
mov eax, dword [esi]
push eax
call sub.kernel32.dll_GetFileAttributesW
mov ebx, eax
cmp ebx, 0xffffffff
je 0x42f904
mov eax, dword [0x436c60]
xor edx, edx
mov dword [eax], edx
jmp 0x42f911
call sub.kernel32.dll_GetLastError_2
mov edx, dword [0x436c60]
mov dword [edx], eax
cmp ebx, 0xffffffff
je 0x42f920
test bl, 0x10
je 0x42f920
mov ebp, 1
test ebp, ebp
je 0x42f96e
cmp word [esp + 8], 0x5c
jne 0x42f938
mov eax, 0x42fa08
add eax, 4
mov dword [esp + 4], eax
mov eax, dword [esi]
call fcn.0042f660
test al, al
jne 0x42f965
add edi, 5
mov eax, edi
add eax, eax
call fcn.0042ec30
mov edx, dword [esi]
call fcn.0041afac
mov ebx, eax
mov dword [esi], ebx
mov eax, ebx
mov edx, dword [esp + 4]
call fcn.0041afc0
mov eax, dword [esi + 0x14]
mov dword [eax], 0x10
mov edi, 1
xor ebx, ebx
mov eax, dword [esi]
jmp 0x42f990
cmp word [eax], 0x5c
je 0x42f98a
cmp word [eax], 0x3a
jne 0x42f98c
cmp edi, 2
jne 0x42f98c
mov ebx, eax
add eax, 2
inc edi
cmp word [eax], 0
jne 0x42f979
mov dword [esi + 8], ebx
test ebx, ebx
je 0x42f9b0
cmp word [ebx], 0
je 0x42f9ab
lea eax, [ebx + 2]
mov dword [esi + 0xc], eax
jmp 0x42f9b7
mov dword [esi + 0xc], ebx
jmp 0x42f9b7
mov eax, dword [esi]
mov dword [esi + 0xc], eax
mov ebx, eax
mov dx, 0x2a
mov eax, ebx
call fcn.0041af2c
test eax, eax
jne 0x42f9d5
mov dx, 0x3f
mov eax, ebx
call fcn.0041af2c
test eax, eax
je 0x42f9e4
or dword [esi + 0x18], 8
mov eax, dword [0x436aa4]
mov dword [eax], 1
mov dx, 0x2e
mov eax, ebx
call fcn.0041af2c
mov dword [esi + 0x10], eax
add esp, 0x18
pop ebp
pop edi
pop esi
pop ebx
ret