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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x5c
mov eax, dword [0x477edc]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, dword [ebp + 8]
push esi
call fcn.0042a219
pop ecx
test al, al
je 0x42a2b9
mov eax, 0x1126
jmp 0x42a585
and dword [ebp - 0xc], 0
xor eax, eax
push ebx
push edi
push 7
pop edi
mov word [ebp - 0x1c], ax
lea eax, [ebp - 0x1c]
push eax
push esi
mov dword [ebp - 8], edi
call fcn.0042a156
cmp dword [ebp - 0xc], 3
mov bh, al
pop ecx
pop ecx
push 0x5c
pop ecx
jb 0x42a31e
cmp dword [ebp - 8], 8
lea eax, [ebp - 0x1c]
cmovae eax, dword [ebp - 0x1c]
cmp word [eax + 2], 0x3a
jne 0x42a31e
cmp dword [ebp - 8], 8
lea eax, [ebp - 0x1c]
cmovae eax, dword [ebp - 0x1c]
cmp word [eax + 4], cx
jne 0x42a31e
cmp dword [ebp - 8], 8
lea eax, [ebp - 0x1c]
cmovae eax, dword [ebp - 0x1c]
movzx eax, word [eax]
push eax
call fcn.004294bf
pop ecx
mov bl, al
jmp 0x42a320
xor bl, bl
lea eax, [ebp - 0x1c]
push eax
push eax
call fcn.0042a093
pop ecx
pop ecx
test bl, bl
jne 0x42a340
test al, al
jne 0x42a340
test bh, bh
jne 0x42a340
push 0x7b
pop esi
jmp 0x42a543
mov byte [ebp - 0x4e], 0
test bl, bl
jne 0x42a3e1
and dword [ebp - 0x24], 0
lea ecx, [ebp - 0x34]
xor eax, eax
mov dword [ebp - 0x20], edi
push str.._
mov word [ebp - 0x34], ax
call fcn.00416518
cmp dword [ebp - 8], 8
lea eax, [ebp - 0x1c]
push dword [ebp - 0xc]
cmovae eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x34]
push eax
call fcn.00420511
push eax
lea ecx, [ebp - 0x4c]
call fcn.0041754a
mov byte [ebp - 0x54], bl
lea eax, [ebp - 0x4c]
push dword [ebp - 0x54]
lea ecx, [ebp - 0x1c]
push eax
call fcn.00413fd1
lea ecx, [ebp - 0x4c]
call fcn.0041181b
mov eax, dword [ebp - 0x20]
cmp eax, 8
jb 0x42a3dd
mov ecx, dword [ebp - 0x34]
lea eax, [eax*2 + 2]
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], ecx
cmp eax, 0x1000
jb 0x42a3d4
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0x54]
push eax
call fcn.00411710
mov eax, dword [ebp - 0x58]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x54]
push eax
push ecx
call fcn.00455eef
pop ecx
pop ecx
mov byte [ebp - 0x4e], 1
mov edx, dword [ebp - 8]
or edi, 0xffffffff
mov ebx, dword [ebp - 0xc]
xor al, al
mov byte [ebp - 0x4d], al
mov byte [ebp - 0x5c], al
mov ecx, edi
and dword [ebp - 0x24], 0
xor eax, eax
cmp ebx, ecx
mov word [ebp - 0x34], ax
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x20], 7
cmovb ecx, ebx
cmp edx, 8
push ecx
cmovae eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x34]
push eax
call fcn.00414049
push dword [ebp - 0x5c]
lea eax, [ebp - 0x34]
push eax
lea ecx, [ebp - 0x1c]
call fcn.00413fd1
mov eax, dword [ebp - 0x20]
cmp eax, 8
jb 0x42a46a
mov ecx, dword [ebp - 0x34]
lea eax, [eax*2 + 2]
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], ecx
cmp eax, 0x1000
jb 0x42a461
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0x54]
push eax
call fcn.00411710
mov eax, dword [ebp - 0x58]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x54]
push eax
push ecx
call fcn.00455eef
pop ecx
pop ecx
cmp dword [ebp - 8], 8
lea eax, [ebp - 0x1c]
cmovae eax, dword [ebp - 0x1c]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, edi
jne 0x42a4d1
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
cmp esi, 2
je 0x42a4d8
cmp esi, 3
je 0x42a4d8
cmp esi, 0x7b
je 0x42a4d8
cmp byte [ebp - 0x4d], 0
mov edx, dword [ebp - 8]
je 0x42a546
cmp byte [ebp - 0x4e], 0
je 0x42a546
mov eax, dword [ebp - 0xc]
lea ecx, [ebp - 0x1c]
cmp edx, 8
cmovae ecx, dword [ebp - 0x1c]
test eax, eax
je 0x42a546
dec eax
cmp eax, edi
push 0x5c
cmovb edi, eax
lea eax, [ecx + edi*2]
pop edi
jmp 0x42a52c
test eax, 0x400
jne 0x42a541
mov edx, dword [ebp - 8]
lea esi, [ebp - 0x1c]
mov ebx, dword [ebp - 0xc]
cmp edx, 8
mov byte [ebp - 0x4d], 1
cmovae esi, dword [ebp - 0x1c]
test ebx, ebx
je 0x42a3f2
lea eax, [ebx - 1]
mov ecx, edi
cmp eax, edi
push 0x5c
cmovb ecx, eax
pop eax
lea ecx, [esi + ecx*2]
jmp 0x42a511
cmp ecx, esi
je 0x42a3f2
sub ecx, 2
cmp word [ecx], ax
jne 0x42a506
sub ecx, esi
sar ecx, 1
cmp ecx, 2
ja 0x42a3f4
jmp 0x42a53a
cmp eax, ecx
je 0x42a546
sub eax, 2
cmp word [eax], di
jne 0x42a525
sub eax, ecx
sar eax, 1
cmp eax, 3
jne 0x42a546
mov esi, 0x1126
jmp 0x42a546
xor esi, esi
mov edx, dword [ebp - 8]
pop edi
pop ebx
cmp edx, 8
jb 0x42a583
mov eax, dword [ebp - 0x1c]
lea edx, [edx*2 + 2]
mov dword [ebp - 0x54], edx
mov dword [ebp - 0x58], eax
cmp edx, 0x1000
jb 0x42a57a
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp - 0x58]
push eax
call fcn.00411710
mov edx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x58]
pop ecx
pop ecx
push edx
push eax
call fcn.00455eef
pop ecx
pop ecx
mov eax, esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop esi
call fcn.00455cf4
leave
ret