Function at 0x4486e0
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 [0x644040]
xor eax, ebp
mov dword [ebp - 0x10], eax
cmp byte [edi + 0xb], 0
mov eax, edi
jns 0x448700
mov eax, dword [edi]
push 4
push 0x63acb0
push eax
call fcn.00564f8a
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
movsx eax, byte [edi + 0xb]
mov edx, eax
test eax, eax
jns 0x448724
mov edx, dword [edi + 4]
lea esi, [ecx*4 + 5]
cmp edx, esi
jb 0x448755
shl ecx, 2
mov edx, edi
test al, al
jns 0x44873a
mov edx, dword [edi]
lea eax, [edx + ecx*2]
push 5
push str.pipe_
push eax
call fcn.00564f8a
add esp, 0xc
test eax, eax
je 0x4488ec
xorps xmm0, xmm0
lea esi, [ebp - 0x30]
movsd qword [esi], xmm0
mov dword [esi + 8], 0
mov ecx, edi
mov edx, esi
call fcn.004490b0
movsx edx, byte [esi + 0xb]
mov ebx, edx
test edx, edx
jns 0x44877c
mov ebx, dword [ebp - 0x2c]
cmp ebx, 3
jb 0x4488fa
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 0x4488e5
test dl, dl
cmovns edi, esi
cmp word [edi + 4], 0x5c
jne 0x4488e5
movzx edx, word [ecx]
and edx, 0xffffffdf
add edx, 0xffffffbf
cmp dx, 0x1a
setb al
mov edi, eax
cmp ebx, 8
jb 0x4487dc
push 8
push 0x63ad10
push ecx
call fcn.00564f8a
add esp, 0xc
test eax, eax
je 0x4489b9
mov eax, edi
or byte [ebp - 0x38], al
je 0x4488f3
test al, al
je 0x4488fe
mov dword [ebp - 0x38], 0
xor edi, edi
dec edi
xor ebx, ebx
jmp 0x44886e
mov dword [ebp - 0x34], 0
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7b
jne 0x4489f2
cmp eax, 0x7b
je 0x448836
jmp 0x44898c
mov eax, dword [ebp - 0x30]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x4487fd
bt eax, 0xa
jb 0x4488e1
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 0x4488dc
add eax, eax
test eax, eax
je 0x4488dc
lea edi, [eax - 2]
cmp word [ecx + eax - 2], 0x5c
mov eax, edi
jne 0x448852
sar edi, 1
cmp edi, 2
jbe 0x4488b0
lea ecx, [ebp - 0x24]
lea eax, [ebp - 0x18]
push eax
push edi
push 0
push esi
call fcn.0053d730
cmp byte [ebp - 0x25], 0
jns 0x44888f
push dword [ebp - 0x30]
call fcn.00562f60
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 0x448820
jmp 0x44881d
mov eax, 0x1126
mov esi, eax
cmp byte [ebp - 0x25], 0
jns 0x4488c8
push dword [ebp - 0x30]
call fcn.00562f60
add esp, 4
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00566245
mov eax, esi
add esp, 0x34
pop esi
pop edi
pop ebx
pop ebp
ret
xor edi, edi
dec edi
jmp 0x448869
xor eax, eax
jmp 0x4488b5
xor edi, edi
jmp 0x4487bf
mov esi, 0x1126
jmp 0x4488c8
mov esi, 0x7b
jmp 0x4488b7
test al, al
je 0x4488f3
lea ebx, [ebp - 0x2c]
lea edi, [ebp - 0x24]
mov ecx, edi
push str.._
call fcn.005557d0
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.0053d1f0
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 0x44895d
push dword [ebp - 0x30]
call fcn.00562f60
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 0x448982
push dword [ebp - 0x24]
call fcn.00562f60
add esp, 4
mov al, 1
mov dword [ebp - 0x38], eax
jmp 0x4487f6
add eax, 0xfffffffe
cmp eax, 2
jb 0x448836
cmp dword [ebp - 0x34], 0
je 0x448869
mov esi, 0x1126
cmp dword [ebp - 0x34], 2
mov eax, dword [ebp - 0x3c]
jne 0x4488b5
jmp 0x4488b7
lea eax, [ebp - 0x18]
lea ecx, [ebp - 0x24]
push eax
push 0xffffffffffffffff
push 8
push esi
call fcn.0053d730
cmp byte [ebp - 0x25], 0
jns 0x4489db
push dword [ebp - 0x30]
call fcn.00562f60
add esp, 4
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x28], eax
movsd xmm0, qword [ebp - 0x24]
movsd qword [ebp - 0x30], xmm0
mov eax, edi
jmp 0x4487e7
lea ecx, [eax - 2]
cmp ecx, 2
jb 0x448813
mov ecx, dword [ebp - 0x38]
and cl, bl
cmp cl, 1
jne 0x448a49
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 0x448a49
add edx, edx
test edx, edx
je 0x448a49
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 0x448a21
mov dword [ebp - 0x34], 2
cmp edx, 6
je 0x448813
xor ecx, ecx
inc ecx
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x3c], eax
jmp 0x448813