Function at 0x63f840
Capabilities:
Read file on windows
Read pipe

Disassembly:
push rbp
add rsp, 0xffffffffffffff80
mov rbp, rsp
mov qword [rbp + 0x38], rbp
mov qword [rbp + 0x90], rcx
mov dword [rbp + 0x98], edx
mov qword [rbp + 0xa0], r8
mov qword [rbp + 0xa8], r9
mov dword [rbp + 0x74], 0
xor rcx, rcx
or edx, 0xffffffff
xor r8, r8
xor r9, r9
call sub.kernel32.dll_CreateEventW
mov qword [rbp + 0x78], rax
cmp qword [rbp + 0x78], 0
je 0x63fad7
mov rax, qword [rbp + 0xa0]
mov dword [rax], 0
mov eax, dword [rbp + 0x98]
mov dword [rbp + 0x44], eax
mov eax, dword [rbp + 0x98]
mov dword [rbp + 0x40], eax
mov ecx, dword [rbp + 0x40]
call fcn.00405da0
mov rcx, qword [rbp + 0xa8]
mov qword [rcx], rax
nop
lea rcx, [rbp + 0x50]
mov edx, 0x20
xor r8, r8
call fcn.00408d50
mov rax, qword [rbp + 0x78]
mov qword [rbp + 0x68], rax
mov dword [rbp + 0x4c], 0
mov rcx, qword [rbp + 0x68]
call sub.kernel32.dll_ResetEvent
mov rcx, qword [rbp + 0x90]
mov rax, qword [rbp + 0xa8]
mov rdx, qword [rbp + 0xa0]
mov edx, dword [rdx]
mov rax, qword [rax]
add rax, rdx
mov rdx, rax
mov r8d, dword [rbp + 0x44]
lea r9, [rbp + 0x4c]
lea rax, [rbp + 0x50]
mov qword [rsp + 0x20], rax
call sub.kernel32.dll_ReadFile_1
test eax, eax
setne al
test al, al
jne 0x63fa67
call sub.kernel32.dll_GetLastError_2
mov dword [rbp + 0x48], eax
cmp dword [rbp + 0x48], 0x3e5
jne 0x63f98e
mov rcx, qword [rbp + 0x90]
lea rdx, [rbp + 0x50]
lea r8, [rbp + 0x4c]
or r9d, 0xffffffff
call sub.kernel32.dll_GetOverlappedResult
test eax, eax
setne al
cmp al, 1
jne 0x63f986
mov rax, qword [rbp + 0xa0]
mov ecx, dword [rbp + 0x4c]
add dword [rax], ecx
mov rcx, qword [rbp + 0xa8]
mov rax, qword [rbp + 0xa0]
mov edx, dword [rax]
call fcn.00405e00
jmp 0x63faaa
call sub.kernel32.dll_GetLastError_2
mov dword [rbp + 0x48], eax
cmp dword [rbp + 0x48], 0xea
jne 0x63fa49
mov rcx, qword [rbp + 0x90]
lea rdx, [rbp + 0x50]
lea r8, [rbp + 0x4c]
or r9d, 0xffffffff
call sub.kernel32.dll_GetOverlappedResult
mov dword [rbp + 0x44], 0
mov rcx, qword [rbp + 0x90]
xor rdx, rdx
xor r8, r8
xor r9, r9
mov qword [rsp + 0x20], 0
lea rax, [rbp + 0x44]
mov qword [rsp + 0x28], rax
call sub.kernel32.dll_PeekNamedPipe
test eax, eax
setne al
cmp al, 1
jne 0x63fa30
cmp dword [rbp + 0x44], 0
jne 0x63fa0a
call sub.kernel32.dll_GetLastError_2
mov dword [rbp + 0x74], eax
xor rcx, rcx
mov rdx, qword [rbp + 0x38]
call fcn.0063faf0
jmp 0x63fad7
mov rax, qword [rbp + 0xa0]
mov ecx, dword [rbp + 0x4c]
add dword [rax], ecx
mov eax, dword [rbp + 0x44]
add dword [rbp + 0x40], eax
mov rcx, qword [rbp + 0xa8]
mov edx, dword [rbp + 0x40]
call fcn.00405e00
jmp 0x63f8da
call sub.kernel32.dll_GetLastError_2
mov dword [rbp + 0x74], eax
xor rcx, rcx
mov rdx, qword [rbp + 0x38]
call fcn.0063faf0
jmp 0x63fad7
cmp dword [rbp + 0x48], 0
je 0x63f8da
mov eax, dword [rbp + 0x48]
mov dword [rbp + 0x74], eax
xor rcx, rcx
mov rdx, qword [rbp + 0x38]
call fcn.0063faf0
jmp 0x63fad7
mov rax, qword [rbp + 0xa0]
mov ecx, dword [rbp + 0x4c]
add dword [rax], ecx
mov rcx, qword [rbp + 0xa8]
mov rax, qword [rbp + 0xa0]
mov edx, dword [rax]
call fcn.00405e00
mov rax, qword [rbp + 0xa0]
cmp dword [rax], 0
jne 0x63faaa
call sub.kernel32.dll_GetLastError_2
mov dword [rbp + 0x74], eax
xor rcx, rcx
mov rdx, qword [rbp + 0x38]
call fcn.0063faf0
jmp 0x63fad7
nop
nop
mov rcx, qword [rbp + 0x78]
call sub.kernel32.dll_CloseHandle_1
cmp dword [rbp + 0x74], 0
je 0x63fad7
mov rax, qword [rbp + 0xa8]
mov rcx, qword [rax]
call fcn.00405dd0
mov rax, qword [rbp + 0xa0]
mov dword [rax], 0
mov eax, dword [rbp + 0x74]
lea rsp, [rbp + 0x80]
pop rbp
ret