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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe0
push ebx
push esi
push edi
xor edx, edx
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x14], edx
mov edi, eax
xor eax, eax
push ebp
push 0x42ae5a
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, 0x42ae74
add eax, 2
mov dword [ebp - 8], eax
xor eax, eax
mov dword [ebp - 0x10], eax
mov eax, dword [0x43211c]
xor edx, edx
mov dword [eax], edx
mov eax, dword [edi]
call fcn.00418150
mov dword [ebp - 0xc], eax
mov eax, dword [edi]
call fcn.00418254
mov ebx, eax
cmp word [ebx], 0x3a
jne 0x42ac05
cmp dword [ebp - 0xc], 2
jle 0x42ac05
mov word [ebx], 0
sub ebx, 2
push 0
call sub.kernel32.dll_SetErrorMode
mov dword [ebp - 4], eax
mov eax, dword [edi]
mov edx, 0x8000
call fcn.0042b5cc
mov esi, eax
cmp esi, 0xffffffff
je 0x42ab58
mov eax, esi
call fcn.0041beb0
test eax, eax
jne 0x42abdf
mov eax, esi
call fcn.0041bf44
test eax, eax
jne 0x42abdf
add ebx, 2
mov word [ebx], 0x3a
mov eax, dword [0x4321d8]
cmp dword [eax], 4
jne 0x42aba9
mov eax, dword [0x43220c]
cmp dword [eax], 0
jne 0x42ab9c
push 0
lea edx, [ebp - 0x14]
mov eax, dword [0x4321fc]
call fcn.004095b4
mov eax, dword [ebp - 0x14]
mov edx, dword [edi]
mov dword [ebp - 0x1c], edx
mov byte [ebp - 0x18], 0xa
lea ecx, [ebp - 0x1c]
mov edx, 1
call fcn.0042b1b0
mov eax, dword [0x4320c0]
mov dword [eax], 1
jmp 0x42abd1
push 0
lea edx, [ebp - 0x20]
mov eax, dword [0x4321fc]
call fcn.004095b4
mov eax, dword [ebp - 0x20]
mov edx, dword [edi]
mov dword [ebp - 0x1c], edx
mov byte [ebp - 0x18], 0xa
lea ecx, [ebp - 0x1c]
mov edx, 1
call fcn.0042b1b0
cmp esi, 0xffffffff
je 0x42abfc
mov eax, esi
call fcn.0042b698
jmp 0x42abfc
mov eax, esi
call fcn.0041beb0
test eax, eax
jne 0x42abf5
mov eax, esi
call fcn.0041bf44
test eax, eax
je 0x42abfc
mov eax, esi
call fcn.0042b698
mov eax, dword [ebp - 4]
push eax
call sub.kernel32.dll_SetErrorMode
mov eax, 0x250
call fcn.0042a27c
mov dword [edi + 0x14], eax
movzx esi, word [ebx]
cmp si, 0x5c
jne 0x42ac24
mov dword [ebp - 0x10], 1
jmp 0x42ac7b
mov eax, dword [edi]
mov dx, 0x5c
call fcn.00418108
mov ebx, eax
test ebx, ebx
jne 0x42ac51
mov ebx, dword [edi]
mov eax, ebx
call fcn.00418150
cmp eax, 2
jl 0x42ac54
cmp word [ebx + 2], 0x3a
jne 0x42ac54
lea eax, [ebx + 4]
mov ebx, eax
jmp 0x42ac54
add ebx, 2
mov edx, 0x42ae80
mov eax, ebx
call fcn.00413b28
test eax, eax
je 0x42ac74
mov edx, 0x42ae84
mov eax, ebx
call fcn.00413b28
test eax, eax
jne 0x42ac7b
mov dword [ebp - 0x10], 1
cmp dword [ebp - 0x10], 0
jne 0x42ad67
mov eax, dword [0x4321d8]
cmp dword [eax], 4
jne 0x42ad2f
mov eax, dword [0x4321b0]
cmp dword [eax], 1
jne 0x42ace2
mov eax, dword [edi]
push eax
call sub.kernel32.dll_GetFileAttributesW
mov ebx, eax
cmp ebx, 0xffffffff
je 0x42acb7
mov eax, dword [0x43211c]
xor edx, edx
mov dword [eax], edx
jmp 0x42acc4
call sub.kernel32.dll_GetLastError_2
mov edx, dword [0x43211c]
mov dword [edx], eax
cmp ebx, 0xffffffff
je 0x42ad67
test bl, 0x10
je 0x42ad67
mov dword [ebp - 0x10], 1
jmp 0x42ad67
mov eax, dword [0x4321ec]
cmp dword [eax], 1
jne 0x42ad67
mov eax, dword [0x4321ec]
xor edx, edx
mov dword [eax], edx
mov eax, dword [edi]
push eax
call sub.kernel32.dll_GetFileAttributesW
mov ebx, eax
cmp ebx, 0xffffffff
je 0x42ad0f
mov eax, dword [0x43211c]
xor edx, edx
mov dword [eax], edx
jmp 0x42ad1c
call sub.kernel32.dll_GetLastError_2
mov edx, dword [0x43211c]
mov dword [edx], eax
cmp ebx, 0xffffffff
je 0x42ad67
test bl, 0x10
je 0x42ad67
mov dword [ebp - 0x10], 1
jmp 0x42ad67
mov eax, dword [edi]
push eax
call sub.kernel32.dll_GetFileAttributesW
mov ebx, eax
cmp ebx, 0xffffffff
je 0x42ad49
mov eax, dword [0x43211c]
xor edx, edx
mov dword [eax], edx
jmp 0x42ad56
call sub.kernel32.dll_GetLastError_2
mov edx, dword [0x43211c]
mov dword [edx], eax
cmp ebx, 0xffffffff
je 0x42ad67
test bl, 0x10
je 0x42ad67
mov dword [ebp - 0x10], 1
cmp dword [ebp - 0x10], 0
je 0x42adb4
cmp si, 0x5c
jne 0x42ad7e
mov eax, 0x42ae74
add eax, 4
mov dword [ebp - 8], eax
mov eax, dword [edi]
call fcn.0042aa84
test al, al
jne 0x42adab
mov eax, dword [ebp - 0xc]
add eax, 5
add eax, eax
call fcn.0042a27c
mov edx, dword [edi]
call fcn.00418160
mov ebx, eax
mov dword [edi], ebx
mov eax, ebx
mov edx, dword [ebp - 8]
call fcn.00418174
mov eax, dword [edi + 0x14]
mov dword [eax], 0x10
mov dword [ebp - 0xc], 1
xor ebx, ebx
mov eax, dword [edi]
jmp 0x42addb
cmp si, 0x5c
je 0x42add3
cmp si, 0x3a
jne 0x42add5
cmp dword [ebp - 0xc], 2
jne 0x42add5
mov ebx, eax
add eax, 2
inc dword [ebp - 0xc]
cmp si, word [eax]
je 0x42adc1
mov dword [edi + 8], ebx
test ebx, ebx
je 0x42adfa
cmp word [ebx], 0
je 0x42adf5
lea eax, [ebx + 2]
mov dword [edi + 0xc], eax
jmp 0x42ae01
mov dword [edi + 0xc], ebx
jmp 0x42ae01
mov eax, dword [edi]
mov dword [edi + 0xc], eax
mov ebx, eax
mov dx, 0x2a
mov eax, ebx
call fcn.004180e0
test eax, eax
jne 0x42ae1f
mov dx, 0x3f
mov eax, ebx
call fcn.004180e0
test eax, eax
je 0x42ae2e
or dword [edi + 0x18], 8
mov eax, dword [0x431ebc]
mov dword [eax], 1
mov dx, 0x2e
mov eax, ebx
call fcn.004180e0
mov dword [edi + 0x10], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x42ae61
lea eax, [ebp - 0x20]
call fcn.004069d4
lea eax, [ebp - 0x14]
call fcn.004069d4
ret