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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x34
mov edi, dword [ebp + 8]
mov eax, dword [0x64a040]
xor eax, ebp
mov dword [ebp - 0x10], eax
cmp byte [edi + 0xb], 0
mov eax, edi
jns 0x4526d0
mov eax, dword [edi]
push 4
push 0x6410b0
push eax
call fcn.0057fcba
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
movsx eax, byte [edi + 0xb]
mov edx, eax
test eax, eax
jns 0x4526f4
mov edx, dword [edi + 4]
lea esi, [ecx*4 + 5]
cmp edx, esi
jb 0x452725
shl ecx, 2
mov edx, edi
test al, al
jns 0x45270a
mov edx, dword [edi]
lea eax, [edx + ecx*2]
push 5
push str.pipe_
push eax
call fcn.0057fcba
add esp, 0xc
test eax, eax
je 0x4528ba
xorps xmm0, xmm0
lea esi, [ebp - 0x30]
movsd qword [esi], xmm0
mov dword [esi + 8], 0
mov ecx, edi
mov edx, esi
call fcn.00453090
movsx edx, byte [esi + 0xb]
mov ebx, edx
test edx, edx
jns 0x45274c
mov ebx, dword [ebp - 0x2c]
cmp ebx, 3
jb 0x4528c8
test dl, dl
mov edi, dword [ebp - 0x30]
mov ecx, esi
cmovs ecx, edi
cmp word [ecx + 2], 0x3a
mov byte [ebp - 0x38], al
jne 0x4528b3
test dl, dl
cmovns edi, esi
cmp word [edi + 4], 0x5c
jne 0x4528b3
movzx edx, word [ecx]
and edx, 0xffffffdf
add edx, 0xffffffbf
cmp dx, 0x1a
setb al
mov edi, eax
cmp ebx, 8
jb 0x4527ac
push 8
push 0x641110
push ecx
call fcn.0057fcba
add esp, 0xc
test eax, eax
je 0x4529f1
mov ecx, edi
or byte [ebp - 0x38], cl
je 0x4528c1
mov al, 1
mov dword [ebp - 0x38], eax
test cl, cl
je 0x4528cc
xor edi, edi
dec edi
xor ebx, ebx
jmp 0x45283c
mov dword [ebp - 0x34], 0
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7b
jne 0x452989
cmp eax, 0x7b
je 0x452804
jmp 0x45295c
mov eax, dword [ebp - 0x30]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x4527cb
bt eax, 0xa
jb 0x4528af
movsx eax, byte [ebp - 0x25]
test eax, eax
cmovs eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x30]
cmovns ecx, esi
mov bl, 1
test eax, eax
je 0x4528aa
add eax, eax
test eax, eax
je 0x4528aa
lea edi, [eax - 2]
cmp word [ecx + eax - 2], 0x5c
mov eax, edi
jne 0x452820
sar edi, 1
cmp edi, 2
jbe 0x45287e
lea ecx, [ebp - 0x24]
lea eax, [ebp - 0x18]
push eax
push edi
push 0
push esi
call fcn.0054ef10
cmp byte [ebp - 0x25], 0
jns 0x45285d
push dword [ebp - 0x30]
call fcn.0057dc2b
add esp, 4
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x28], eax
movsd xmm0, qword [ebp - 0x24]
movsd qword [ebp - 0x30], xmm0
cmp byte [ebp - 0x25], 0
mov eax, esi
jns 0x4527ee
jmp 0x4527eb
mov eax, 0x1126
mov esi, eax
cmp byte [ebp - 0x25], 0
jns 0x452896
push dword [ebp - 0x30]
call fcn.0057dc2b
add esp, 4
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.005810d5
mov eax, esi
add esp, 0x34
pop esi
pop edi
pop ebx
pop ebp
ret
xor edi, edi
dec edi
jmp 0x452837
xor eax, eax
jmp 0x452883
xor edi, edi
jmp 0x45278f
mov esi, 0x1126
jmp 0x452896
mov esi, 0x7b
jmp 0x452885
test al, al
je 0x4528c1
lea ebx, [ebp - 0x2c]
lea edi, [ebp - 0x24]
mov ecx, edi
push str.._
call fcn.00565460
movsx eax, byte [ebx + 7]
test eax, eax
cmovs eax, dword [ebx]
lea ecx, [ebp - 0x30]
mov edx, dword [ecx]
cmovns edx, ecx
mov ecx, edi
push eax
push edx
call fcn.0054e9f0
mov edi, dword [eax]
mov ecx, dword [eax + 4]
mov edx, dword [eax + 7]
mov dword [ebp - 0x15], edx
mov dword [ebp - 0x18], ecx
mov bl, byte [eax + 0xb]
xorps xmm0, xmm0
movsd qword [eax], xmm0
mov dword [eax + 8], 0
lea eax, [ebp - 0x30]
cmp byte [eax + 0xb], 0
jns 0x45292b
push dword [ebp - 0x30]
call fcn.0057dc2b
add esp, 4
mov dword [ebp - 0x30], edi
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x15]
lea edx, [ebp - 0x2c]
mov dword [edx + 3], ecx
mov dword [edx], eax
mov byte [ebp - 0x25], bl
cmp byte [ebp - 0x19], 0
jns 0x452950
push dword [ebp - 0x24]
call fcn.0057dc2b
add esp, 4
mov dword [ebp - 0x38], 0
jmp 0x4527c4
add eax, 0xfffffffe
cmp eax, 2
jb 0x452804
cmp dword [ebp - 0x34], 0
je 0x452837
mov esi, 0x1126
cmp dword [ebp - 0x34], 2
mov eax, dword [ebp - 0x3c]
jne 0x452883
jmp 0x452885
lea ecx, [eax - 2]
cmp ecx, 2
jb 0x4527e1
test bl, 1
sete cl
or cl, byte [ebp - 0x38]
jne 0x4529e3
lea ecx, [ebp - 0x30]
movsx edx, byte [ecx + 0xb]
test edx, edx
cmovs edx, dword [ecx + 4]
cmovs ecx, dword [ecx]
mov dword [ebp - 0x34], ecx
test edx, edx
je 0x4529e3
add edx, edx
test edx, edx
je 0x4529e3
lea ecx, [edx - 2]
mov dword [ebp - 0x40], ecx
mov ecx, dword [ebp - 0x34]
cmp word [ecx + edx - 2], 0x5c
mov edx, dword [ebp - 0x40]
jne 0x4529b9
mov ecx, edx
mov dword [ebp - 0x34], 2
cmp edx, 6
je 0x4527e1
xor ecx, ecx
inc ecx
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x3c], eax
jmp 0x4527e1
lea eax, [ebp - 0x18]
lea ecx, [ebp - 0x24]
push eax
push 0xffffffffffffffff
push 8
push esi
call fcn.0054ef10
cmp byte [ebp - 0x25], 0
jns 0x452a13
push dword [ebp - 0x30]
call fcn.0057dc2b
add esp, 4
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x28], eax
movsd xmm0, qword [ebp - 0x24]
movsd qword [ebp - 0x30], xmm0
mov al, 1
mov dword [ebp - 0x38], eax
mov eax, edi
test al, al
jne 0x4527c4
jmp 0x4528cc