Function at 0x425a8c
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 0x425e87
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, 0x425ea4
add eax, 2
mov dword [ebp - 8], eax
xor eax, eax
mov dword [ebp - 0x10], eax
mov eax, dword [0x458938]
xor edx, edx
mov dword [eax], edx
mov eax, dword [edi]
test eax, eax
je 0x425ad3
call fcn.00406ea8
jmp 0x425ad5
xor eax, eax
mov dword [ebp - 0xc], eax
mov eax, dword [edi]
call fcn.0041c45c
mov ebx, eax
cmp word [ebx], 0x3a
jne 0x425be5
cmp dword [ebp - 0xc], 2
jle 0x425be5
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.0042b81c
mov esi, eax
cmp esi, 0xffffffff
je 0x425b38
mov eax, esi
call fcn.004246bc
test eax, eax
jne 0x425bbf
mov eax, esi
call fcn.00424750
test eax, eax
jne 0x425bbf
add ebx, 2
mov word [ebx], 0x3a
mov eax, dword [0x458a18]
cmp dword [eax], 4
jne 0x425b89
mov eax, dword [0x458a5c]
cmp dword [eax], 0
jne 0x425b7c
push 0
lea edx, [ebp - 0x14]
mov eax, dword [0x458a48]
call fcn.00409d44
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.0042b400
mov eax, dword [0x4588d0]
mov dword [eax], 1
jmp 0x425bb1
push 0
lea edx, [ebp - 0x20]
mov eax, dword [0x458a48]
call fcn.00409d44
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.0042b400
cmp esi, 0xffffffff
je 0x425bdc
mov eax, esi
call fcn.0042b8e8
jmp 0x425bdc
mov eax, esi
call fcn.004246bc
test eax, eax
jne 0x425bd5
mov eax, esi
call fcn.00424750
test eax, eax
je 0x425bdc
mov eax, esi
call fcn.0042b8e8
mov eax, dword [ebp - 4]
push eax
call sub.kernel32.dll_SetErrorMode
mov eax, 0x250
call fcn.0041cb78
mov dword [edi + 0x14], eax
movzx esi, word [ebx]
cmp si, 0x5c
jne 0x425c04
mov dword [ebp - 0x10], 1
jmp 0x425c63
mov eax, dword [edi]
mov dx, 0x5c
call fcn.0041c2e0
mov ebx, eax
test ebx, ebx
jne 0x425c39
mov ebx, dword [edi]
test ebx, ebx
je 0x425c24
mov eax, ebx
call fcn.00406ea8
jmp 0x425c26
xor eax, eax
cmp eax, 2
jl 0x425c3c
cmp word [ebx + 2], 0x3a
jne 0x425c3c
lea eax, [ebx + 4]
mov ebx, eax
jmp 0x425c3c
add ebx, 2
mov edx, 0x425eb0
mov eax, ebx
call fcn.00415204
test eax, eax
je 0x425c5c
mov edx, 0x425eb4
mov eax, ebx
call fcn.00415204
test eax, eax
jne 0x425c63
mov dword [ebp - 0x10], 1
cmp dword [ebp - 0x10], 0
jne 0x425d4f
mov eax, dword [0x458a18]
cmp dword [eax], 4
jne 0x425d17
mov eax, dword [0x4589e0]
cmp dword [eax], 1
jne 0x425cca
mov eax, dword [edi]
push eax
call sub.kernel32.dll_GetFileAttributesW
mov ebx, eax
cmp ebx, 0xffffffff
je 0x425c9f
mov eax, dword [0x458938]
xor edx, edx
mov dword [eax], edx
jmp 0x425cac
call sub.kernel32.dll_GetLastError_2
mov edx, dword [0x458938]
mov dword [edx], eax
cmp ebx, 0xffffffff
je 0x425d4f
test bl, 0x10
je 0x425d4f
mov dword [ebp - 0x10], 1
jmp 0x425d4f
mov eax, dword [0x458a34]
cmp dword [eax], 1
jne 0x425d4f
mov eax, dword [0x458a34]
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 0x425cf7
mov eax, dword [0x458938]
xor edx, edx
mov dword [eax], edx
jmp 0x425d04
call sub.kernel32.dll_GetLastError_2
mov edx, dword [0x458938]
mov dword [edx], eax
cmp ebx, 0xffffffff
je 0x425d4f
test bl, 0x10
je 0x425d4f
mov dword [ebp - 0x10], 1
jmp 0x425d4f
mov eax, dword [edi]
push eax
call sub.kernel32.dll_GetFileAttributesW
mov ebx, eax
cmp ebx, 0xffffffff
je 0x425d31
mov eax, dword [0x458938]
xor edx, edx
mov dword [eax], edx
jmp 0x425d3e
call sub.kernel32.dll_GetLastError_2
mov edx, dword [0x458938]
mov dword [edx], eax
cmp ebx, 0xffffffff
je 0x425d4f
test bl, 0x10
je 0x425d4f
mov dword [ebp - 0x10], 1
cmp dword [ebp - 0x10], 0
je 0x425d9c
cmp si, 0x5c
jne 0x425d66
mov eax, 0x425ea4
add eax, 4
mov dword [ebp - 8], eax
mov eax, dword [edi]
call fcn.00425a54
test al, al
jne 0x425d93
mov eax, dword [ebp - 0xc]
add eax, 5
add eax, eax
call fcn.0041cb78
mov edx, dword [edi]
call fcn.0041c338
mov ebx, eax
mov dword [edi], ebx
mov eax, ebx
mov edx, dword [ebp - 8]
call fcn.0041c34c
mov eax, dword [edi + 0x14]
mov dword [eax], 0x10
mov dword [ebp - 0xc], 1
xor ebx, ebx
mov eax, dword [edi]
jmp 0x425dc3
cmp si, 0x5c
je 0x425dbb
cmp si, 0x3a
jne 0x425dbd
cmp dword [ebp - 0xc], 2
jne 0x425dbd
mov ebx, eax
add eax, 2
inc dword [ebp - 0xc]
cmp si, word [eax]
je 0x425da9
mov dword [edi + 8], ebx
test ebx, ebx
je 0x425de2
cmp word [ebx], 0
je 0x425ddd
lea eax, [ebx + 2]
mov dword [edi + 0xc], eax
jmp 0x425de9
mov dword [edi + 0xc], ebx
jmp 0x425de9
mov eax, dword [edi]
mov dword [edi + 0xc], eax
mov ebx, eax
xor ecx, ecx
test ebx, ebx
je 0x425e08
mov eax, ebx
jmp 0x425e00
cmp dx, 0x2a
jne 0x425dfd
mov ecx, eax
jmp 0x425e08
add eax, 2
movzx edx, word [eax]
test dx, dx
jne 0x425df3
test ecx, ecx
je 0x425e10
mov al, 1
jmp 0x425e34
xor esi, esi
test ebx, ebx
je 0x425e2f
mov eax, ebx
jmp 0x425e27
cmp dx, 0x3f
jne 0x425e24
mov esi, eax
jmp 0x425e2f
add eax, 2
movzx edx, word [eax]
test dx, dx
jne 0x425e1a
test esi, esi
setne al
test al, al
je 0x425e47
or dword [edi + 0x18], 8
mov eax, dword [0x45869c]
mov dword [eax], 1
xor eax, eax
test ebx, ebx
je 0x425e66
mov edx, ebx
jmp 0x425e5e
cmp cx, 0x2e
jne 0x425e5b
mov eax, edx
jmp 0x425e66
add edx, 2
movzx ecx, word [edx]
test cx, cx
jne 0x425e51
mov dword [edi + 0x10], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x425e8e
lea eax, [ebp - 0x20]
call fcn.004069bc
lea eax, [ebp - 0x14]
call fcn.004069bc
ret