Function at 0x446810
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 [0x646040]
xor eax, ebp
mov dword [ebp - 0x10], eax
cmp byte [edi + 0xb], 0
mov eax, edi
jns 0x446830
mov eax, dword [edi]
push 4
push 0x63ccd0
push eax
call fcn.0056607a
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
movsx eax, byte [edi + 0xb]
mov edx, eax
test eax, eax
jns 0x446854
mov edx, dword [edi + 4]
lea esi, [ecx*4 + 5]
cmp edx, esi
jb 0x446885
shl ecx, 2
mov edx, edi
test al, al
jns 0x44686a
mov edx, dword [edi]
lea eax, [edx + ecx*2]
push 5
push str.pipe_
push eax
call fcn.0056607a
add esp, 0xc
test eax, eax
je 0x446a1c
xorps xmm0, xmm0
lea esi, [ebp - 0x30]
movsd qword [esi], xmm0
mov dword [esi + 8], 0
mov ecx, edi
mov edx, esi
call fcn.004471e0
movsx edx, byte [esi + 0xb]
mov ebx, edx
test edx, edx
jns 0x4468ac
mov ebx, dword [ebp - 0x2c]
cmp ebx, 3
jb 0x446a2a
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 0x446a15
test dl, dl
cmovns edi, esi
cmp word [edi + 4], 0x5c
jne 0x446a15
movzx edx, word [ecx]
and edx, 0xffffffdf
add edx, 0xffffffbf
cmp dx, 0x1a
setb al
mov edi, eax
cmp ebx, 8
jb 0x44690c
push 8
push 0x63cd30
push ecx
call fcn.0056607a
add esp, 0xc
test eax, eax
je 0x446ae9
mov eax, edi
or byte [ebp - 0x38], al
je 0x446a23
test al, al
je 0x446a2e
mov dword [ebp - 0x38], 0
xor edi, edi
dec edi
xor ebx, ebx
jmp 0x44699e
mov dword [ebp - 0x34], 0
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7b
jne 0x446b22
cmp eax, 0x7b
je 0x446966
jmp 0x446abc
mov eax, dword [ebp - 0x30]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x44692d
bt eax, 0xa
jb 0x446a11
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 0x446a0c
add eax, eax
test eax, eax
je 0x446a0c
lea edi, [eax - 2]
cmp word [ecx + eax - 2], 0x5c
mov eax, edi
jne 0x446982
sar edi, 1
cmp edi, 2
jbe 0x4469e0
lea ecx, [ebp - 0x24]
lea eax, [ebp - 0x18]
push eax
push edi
push 0
push esi
call fcn.0053c060
cmp byte [ebp - 0x25], 0
jns 0x4469bf
push dword [ebp - 0x30]
call fcn.00564050
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 0x446950
jmp 0x44694d
mov eax, 0x1126
mov esi, eax
cmp byte [ebp - 0x25], 0
jns 0x4469f8
push dword [ebp - 0x30]
call fcn.00564050
add esp, 4
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00567335
mov eax, esi
add esp, 0x34
pop esi
pop edi
pop ebx
pop ebp
ret
xor edi, edi
dec edi
jmp 0x446999
xor eax, eax
jmp 0x4469e5
xor edi, edi
jmp 0x4468ef
mov esi, 0x1126
jmp 0x4469f8
mov esi, 0x7b
jmp 0x4469e7
test al, al
je 0x446a23
lea ebx, [ebp - 0x2c]
lea edi, [ebp - 0x24]
mov ecx, edi
push str.._
call fcn.00556510
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.0053bb20
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 0x446a8d
push dword [ebp - 0x30]
call fcn.00564050
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 0x446ab2
push dword [ebp - 0x24]
call fcn.00564050
add esp, 4
mov al, 1
mov dword [ebp - 0x38], eax
jmp 0x446926
add eax, 0xfffffffe
cmp eax, 2
jb 0x446966
cmp dword [ebp - 0x34], 0
je 0x446999
mov esi, 0x1126
cmp dword [ebp - 0x34], 2
mov eax, dword [ebp - 0x3c]
jne 0x4469e5
jmp 0x4469e7
lea eax, [ebp - 0x18]
lea ecx, [ebp - 0x24]
push eax
push 0xffffffffffffffff
push 8
push esi
call fcn.0053c060
cmp byte [ebp - 0x25], 0
jns 0x446b0b
push dword [ebp - 0x30]
call fcn.00564050
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 0x446917
lea ecx, [eax - 2]
cmp ecx, 2
jb 0x446943
mov ecx, dword [ebp - 0x38]
and cl, bl
cmp cl, 1
jne 0x446b79
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 0x446b79
add edx, edx
test edx, edx
je 0x446b79
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 0x446b51
mov dword [ebp - 0x34], 2
cmp edx, 6
je 0x446943
xor ecx, ecx
inc ecx
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x3c], eax
jmp 0x446943