Function at 0x4431e0
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 0x443200
mov eax, dword [edi]
push 4
push 0x63b150
push eax
call fcn.00566e95
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
movsx eax, byte [edi + 0xb]
mov edx, eax
test eax, eax
jns 0x443224
mov edx, dword [edi + 4]
lea esi, [ecx*4 + 5]
cmp edx, esi
jb 0x443255
shl ecx, 2
mov edx, edi
test al, al
jns 0x44323a
mov edx, dword [edi]
lea eax, [edx + ecx*2]
push 5
push str.pipe_
push eax
call fcn.00566e95
add esp, 0xc
test eax, eax
je 0x4433ea
xorps xmm0, xmm0
lea esi, [ebp - 0x30]
movsd qword [esi], xmm0
mov dword [esi + 8], 0
mov ecx, edi
mov edx, esi
call fcn.00443bc0
movsx edx, byte [esi + 0xb]
mov ebx, edx
test edx, edx
jns 0x44327c
mov ebx, dword [ebp - 0x2c]
cmp ebx, 3
jb 0x4433f8
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 0x4433e3
test dl, dl
cmovns edi, esi
cmp word [edi + 4], 0x5c
jne 0x4433e3
movzx edx, word [ecx]
and edx, 0xffffffdf
add edx, 0xffffffbf
cmp dx, 0x1a
setb al
mov edi, eax
cmp ebx, 8
jb 0x4432dc
push 8
push 0x63b1b0
push ecx
call fcn.00566e95
add esp, 0xc
test eax, eax
je 0x443521
mov ecx, edi
or byte [ebp - 0x38], cl
je 0x4433f1
mov al, 1
mov dword [ebp - 0x38], eax
test cl, cl
je 0x4433fc
xor edi, edi
dec edi
xor ebx, ebx
jmp 0x44336c
mov dword [ebp - 0x34], 0
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7b
jne 0x4434b9
cmp eax, 0x7b
je 0x443334
jmp 0x44348c
mov eax, dword [ebp - 0x30]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x4432fb
bt eax, 0xa
jb 0x4433df
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 0x4433da
add eax, eax
test eax, eax
je 0x4433da
lea edi, [eax - 2]
cmp word [ecx + eax - 2], 0x5c
mov eax, edi
jne 0x443350
sar edi, 1
cmp edi, 2
jbe 0x4433ae
lea ecx, [ebp - 0x24]
lea eax, [ebp - 0x18]
push eax
push edi
push 0
push esi
call fcn.0053a010
cmp byte [ebp - 0x25], 0
jns 0x44338d
push dword [ebp - 0x30]
call fcn.00564ea0
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 0x44331e
jmp 0x44331b
mov eax, 0x1126
mov esi, eax
cmp byte [ebp - 0x25], 0
jns 0x4433c6
push dword [ebp - 0x30]
call fcn.00564ea0
add esp, 4
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00568175
mov eax, esi
add esp, 0x34
pop esi
pop edi
pop ebx
pop ebp
ret
xor edi, edi
dec edi
jmp 0x443367
xor eax, eax
jmp 0x4433b3
xor edi, edi
jmp 0x4432bf
mov esi, 0x1126
jmp 0x4433c6
mov esi, 0x7b
jmp 0x4433b5
test al, al
je 0x4433f1
lea ebx, [ebp - 0x2c]
lea edi, [ebp - 0x24]
mov ecx, edi
push str.._
call fcn.0052b240
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.00539af0
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 0x44345b
push dword [ebp - 0x30]
call fcn.00564ea0
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 0x443480
push dword [ebp - 0x24]
call fcn.00564ea0
add esp, 4
mov dword [ebp - 0x38], 0
jmp 0x4432f4
add eax, 0xfffffffe
cmp eax, 2
jb 0x443334
cmp dword [ebp - 0x34], 0
je 0x443367
mov esi, 0x1126
cmp dword [ebp - 0x34], 2
mov eax, dword [ebp - 0x3c]
jne 0x4433b3
jmp 0x4433b5
lea ecx, [eax - 2]
cmp ecx, 2
jb 0x443311
test bl, 1
sete cl
or cl, byte [ebp - 0x38]
jne 0x443513
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 0x443513
add edx, edx
test edx, edx
je 0x443513
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 0x4434e9
mov ecx, edx
mov dword [ebp - 0x34], 2
cmp edx, 6
je 0x443311
xor ecx, ecx
inc ecx
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x3c], eax
jmp 0x443311
lea eax, [ebp - 0x18]
lea ecx, [ebp - 0x24]
push eax
push 0xffffffffffffffff
push 8
push esi
call fcn.0053a010
cmp byte [ebp - 0x25], 0
jns 0x443543
push dword [ebp - 0x30]
call fcn.00564ea0
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 0x4432f4
jmp 0x4433fc