Function at 0x42148c
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 0x421887
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, 0x4218a4
add eax, 2
mov dword [ebp - 8], eax
xor eax, eax
mov dword [ebp - 0x10], eax
mov eax, dword [0x432d3c]
xor edx, edx
mov dword [eax], edx
mov eax, dword [edi]
test eax, eax
je 0x4214d3
call fcn.0040685c
jmp 0x4214d5
xor eax, eax
mov dword [ebp - 0xc], eax
mov eax, dword [edi]
call fcn.00417b08
mov ebx, eax
cmp word [ebx], 0x3a
jne 0x4215e5
cmp dword [ebp - 0xc], 2
jle 0x4215e5
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.0042721c
mov esi, eax
cmp esi, 0xffffffff
je 0x421538
mov eax, esi
call fcn.0041fd1c
test eax, eax
jne 0x4215bf
mov eax, esi
call fcn.0041fdb0
test eax, eax
jne 0x4215bf
add ebx, 2
mov word [ebx], 0x3a
mov eax, dword [0x432df8]
cmp dword [eax], 4
jne 0x421589
mov eax, dword [0x432e2c]
cmp dword [eax], 0
jne 0x42157c
push 0
lea edx, [ebp - 0x14]
mov eax, dword [0x432e1c]
call fcn.00408e50
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.00426e00
mov eax, dword [0x432ce0]
mov dword [eax], 1
jmp 0x4215b1
push 0
lea edx, [ebp - 0x20]
mov eax, dword [0x432e1c]
call fcn.00408e50
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.00426e00
cmp esi, 0xffffffff
je 0x4215dc
mov eax, esi
call fcn.004272e8
jmp 0x4215dc
mov eax, esi
call fcn.0041fd1c
test eax, eax
jne 0x4215d5
mov eax, esi
call fcn.0041fdb0
test eax, eax
je 0x4215dc
mov eax, esi
call fcn.004272e8
mov eax, dword [ebp - 4]
push eax
call sub.kernel32.dll_SetErrorMode
mov eax, 0x250
call fcn.004181f4
mov dword [edi + 0x14], eax
movzx esi, word [ebx]
cmp si, 0x5c
jne 0x421604
mov dword [ebp - 0x10], 1
jmp 0x421663
mov eax, dword [edi]
mov dx, 0x5c
call fcn.0041798c
mov ebx, eax
test ebx, ebx
jne 0x421639
mov ebx, dword [edi]
test ebx, ebx
je 0x421624
mov eax, ebx
call fcn.0040685c
jmp 0x421626
xor eax, eax
cmp eax, 2
jl 0x42163c
cmp word [ebx + 2], 0x3a
jne 0x42163c
lea eax, [ebx + 4]
mov ebx, eax
jmp 0x42163c
add ebx, 2
mov edx, 0x4218b0
mov eax, ebx
call fcn.004133ac
test eax, eax
je 0x42165c
mov edx, 0x4218b4
mov eax, ebx
call fcn.004133ac
test eax, eax
jne 0x421663
mov dword [ebp - 0x10], 1
cmp dword [ebp - 0x10], 0
jne 0x42174f
mov eax, dword [0x432df8]
cmp dword [eax], 4
jne 0x421717
mov eax, dword [0x432dd0]
cmp dword [eax], 1
jne 0x4216ca
mov eax, dword [edi]
push eax
call sub.kernel32.dll_GetFileAttributesW
mov ebx, eax
cmp ebx, 0xffffffff
je 0x42169f
mov eax, dword [0x432d3c]
xor edx, edx
mov dword [eax], edx
jmp 0x4216ac
call sub.kernel32.dll_GetLastError_2
mov edx, dword [0x432d3c]
mov dword [edx], eax
cmp ebx, 0xffffffff
je 0x42174f
test bl, 0x10
je 0x42174f
mov dword [ebp - 0x10], 1
jmp 0x42174f
mov eax, dword [0x432e0c]
cmp dword [eax], 1
jne 0x42174f
mov eax, dword [0x432e0c]
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 0x4216f7
mov eax, dword [0x432d3c]
xor edx, edx
mov dword [eax], edx
jmp 0x421704
call sub.kernel32.dll_GetLastError_2
mov edx, dword [0x432d3c]
mov dword [edx], eax
cmp ebx, 0xffffffff
je 0x42174f
test bl, 0x10
je 0x42174f
mov dword [ebp - 0x10], 1
jmp 0x42174f
mov eax, dword [edi]
push eax
call sub.kernel32.dll_GetFileAttributesW
mov ebx, eax
cmp ebx, 0xffffffff
je 0x421731
mov eax, dword [0x432d3c]
xor edx, edx
mov dword [eax], edx
jmp 0x42173e
call sub.kernel32.dll_GetLastError_2
mov edx, dword [0x432d3c]
mov dword [edx], eax
cmp ebx, 0xffffffff
je 0x42174f
test bl, 0x10
je 0x42174f
mov dword [ebp - 0x10], 1
cmp dword [ebp - 0x10], 0
je 0x42179c
cmp si, 0x5c
jne 0x421766
mov eax, 0x4218a4
add eax, 4
mov dword [ebp - 8], eax
mov eax, dword [edi]
call fcn.00421454
test al, al
jne 0x421793
mov eax, dword [ebp - 0xc]
add eax, 5
add eax, eax
call fcn.004181f4
mov edx, dword [edi]
call fcn.004179e4
mov ebx, eax
mov dword [edi], ebx
mov eax, ebx
mov edx, dword [ebp - 8]
call fcn.004179f8
mov eax, dword [edi + 0x14]
mov dword [eax], 0x10
mov dword [ebp - 0xc], 1
xor ebx, ebx
mov eax, dword [edi]
jmp 0x4217c3
cmp si, 0x5c
je 0x4217bb
cmp si, 0x3a
jne 0x4217bd
cmp dword [ebp - 0xc], 2
jne 0x4217bd
mov ebx, eax
add eax, 2
inc dword [ebp - 0xc]
cmp si, word [eax]
je 0x4217a9
mov dword [edi + 8], ebx
test ebx, ebx
je 0x4217e2
cmp word [ebx], 0
je 0x4217dd
lea eax, [ebx + 2]
mov dword [edi + 0xc], eax
jmp 0x4217e9
mov dword [edi + 0xc], ebx
jmp 0x4217e9
mov eax, dword [edi]
mov dword [edi + 0xc], eax
mov ebx, eax
xor ecx, ecx
test ebx, ebx
je 0x421808
mov eax, ebx
jmp 0x421800
cmp dx, 0x2a
jne 0x4217fd
mov ecx, eax
jmp 0x421808
add eax, 2
movzx edx, word [eax]
test dx, dx
jne 0x4217f3
test ecx, ecx
je 0x421810
mov al, 1
jmp 0x421834
xor esi, esi
test ebx, ebx
je 0x42182f
mov eax, ebx
jmp 0x421827
cmp dx, 0x3f
jne 0x421824
mov esi, eax
jmp 0x42182f
add eax, 2
movzx edx, word [eax]
test dx, dx
jne 0x42181a
test esi, esi
setne al
test al, al
je 0x421847
or dword [edi + 0x18], 8
mov eax, dword [0x432ae0]
mov dword [eax], 1
xor eax, eax
test ebx, ebx
je 0x421866
mov edx, ebx
jmp 0x42185e
cmp cx, 0x2e
jne 0x42185b
mov eax, edx
jmp 0x421866
add edx, 2
movzx ecx, word [edx]
test cx, cx
jne 0x421851
mov dword [edi + 0x10], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x42188e
lea eax, [ebp - 0x20]
call fcn.00406414
lea eax, [ebp - 0x14]
call fcn.00406414
ret