Function at 0x447ee0
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 0x447f00
mov eax, dword [edi]
push 4
push 0x63acd0
push eax
call fcn.00564bba
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
movsx eax, byte [edi + 0xb]
mov edx, eax
test eax, eax
jns 0x447f24
mov edx, dword [edi + 4]
lea esi, [ecx*4 + 5]
cmp edx, esi
jb 0x447f55
shl ecx, 2
mov edx, edi
test al, al
jns 0x447f3a
mov edx, dword [edi]
lea eax, [edx + ecx*2]
push 5
push str.pipe_
push eax
call fcn.00564bba
add esp, 0xc
test eax, eax
je 0x4480ec
xorps xmm0, xmm0
lea esi, [ebp - 0x30]
movsd qword [esi], xmm0
mov dword [esi + 8], 0
mov ecx, edi
mov edx, esi
call fcn.004488b0
movsx edx, byte [esi + 0xb]
mov ebx, edx
test edx, edx
jns 0x447f7c
mov ebx, dword [ebp - 0x2c]
cmp ebx, 3
jb 0x4480fa
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 0x4480e5
test dl, dl
cmovns edi, esi
cmp word [edi + 4], 0x5c
jne 0x4480e5
movzx edx, word [ecx]
and edx, 0xffffffdf
add edx, 0xffffffbf
cmp dx, 0x1a
setb al
mov edi, eax
cmp ebx, 8
jb 0x447fdc
push 8
push 0x63ad30
push ecx
call fcn.00564bba
add esp, 0xc
test eax, eax
je 0x4481b9
mov eax, edi
or byte [ebp - 0x38], al
je 0x4480f3
test al, al
je 0x4480fe
mov dword [ebp - 0x38], 0
xor edi, edi
dec edi
xor ebx, ebx
jmp 0x44806e
mov dword [ebp - 0x34], 0
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7b
jne 0x4481f2
cmp eax, 0x7b
je 0x448036
jmp 0x44818c
mov eax, dword [ebp - 0x30]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x447ffd
bt eax, 0xa
jb 0x4480e1
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 0x4480dc
add eax, eax
test eax, eax
je 0x4480dc
lea edi, [eax - 2]
cmp word [ecx + eax - 2], 0x5c
mov eax, edi
jne 0x448052
sar edi, 1
cmp edi, 2
jbe 0x4480b0
lea ecx, [ebp - 0x24]
lea eax, [ebp - 0x18]
push eax
push edi
push 0
push esi
call fcn.0053def0
cmp byte [ebp - 0x25], 0
jns 0x44808f
push dword [ebp - 0x30]
call fcn.00562bc0
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 0x448020
jmp 0x44801d
mov eax, 0x1126
mov esi, eax
cmp byte [ebp - 0x25], 0
jns 0x4480c8
push dword [ebp - 0x30]
call fcn.00562bc0
add esp, 4
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00565ea5
mov eax, esi
add esp, 0x34
pop esi
pop edi
pop ebx
pop ebp
ret
xor edi, edi
dec edi
jmp 0x448069
xor eax, eax
jmp 0x4480b5
xor edi, edi
jmp 0x447fbf
mov esi, 0x1126
jmp 0x4480c8
mov esi, 0x7b
jmp 0x4480b7
test al, al
je 0x4480f3
lea ebx, [ebp - 0x2c]
lea edi, [ebp - 0x24]
mov ecx, edi
push str.._
call fcn.00555430
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.0053d9b0
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 0x44815d
push dword [ebp - 0x30]
call fcn.00562bc0
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 0x448182
push dword [ebp - 0x24]
call fcn.00562bc0
add esp, 4
mov al, 1
mov dword [ebp - 0x38], eax
jmp 0x447ff6
add eax, 0xfffffffe
cmp eax, 2
jb 0x448036
cmp dword [ebp - 0x34], 0
je 0x448069
mov esi, 0x1126
cmp dword [ebp - 0x34], 2
mov eax, dword [ebp - 0x3c]
jne 0x4480b5
jmp 0x4480b7
lea eax, [ebp - 0x18]
lea ecx, [ebp - 0x24]
push eax
push 0xffffffffffffffff
push 8
push esi
call fcn.0053def0
cmp byte [ebp - 0x25], 0
jns 0x4481db
push dword [ebp - 0x30]
call fcn.00562bc0
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 0x447fe7
lea ecx, [eax - 2]
cmp ecx, 2
jb 0x448013
mov ecx, dword [ebp - 0x38]
and cl, bl
cmp cl, 1
jne 0x448249
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 0x448249
add edx, edx
test edx, edx
je 0x448249
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 0x448221
mov dword [ebp - 0x34], 2
cmp edx, 6
je 0x448013
xor ecx, ecx
inc ecx
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x3c], eax
jmp 0x448013