Function at 0x63f4f0
Capabilities:
Read pipe
Write pipe

Disassembly:
push rbp
push r13
push rdi
push rsi
push rbx
sub rsp, 0x2c0
mov rbp, rsp
mov rbx, rcx
mov rsi, rdx
mov edi, r8d
mov r13, r9
xor rax, rax
mov byte [rbp + 0x4b], al
xor rax, rax
mov dword [rbp + 0x4c], eax
lea rcx, [rbp + 0x56]
mov edx, 0x20a
xor r8, r8
call fcn.00408d50
lea rcx, [rbp + 0x56]
lea rdx, [0x0063f82c]
call sub.kernel32.dll_lstrcpyW
lea rcx, [rbp + 0x56]
mov rdx, rbx
call sub.kernel32.dll_lstrcatW
lea rcx, [rbp + 0x56]
mov edx, dword [rbp + 0x318]
call sub.kernel32.dll_WaitNamedPipeW
test eax, eax
setne al
test al, al
je 0x63f818
lea rcx, [rbp + 0x56]
mov edx, 0xc0000000
xor r8, r8
xor r9, r9
mov dword [rsp + 0x20], 3
mov dword [rsp + 0x28], 0x40000000
mov qword [rsp + 0x30], 0
call sub.kernel32.dll_CreateFileW_1
mov rbx, rax
cmp rbx, 0xffffffffffffffff
je 0x63f818
xor rcx, rcx
or edx, 0xffffffff
xor r8, r8
xor r9, r9
call sub.kernel32.dll_CreateEventW
mov qword [rbp + 0x2b8], rax
cmp qword [rbp + 0x2b8], 0
jne 0x63f5dc
call sub.kernel32.dll_GetLastError_2
mov dword [rbp + 0x4c], eax
mov rcx, rbx
call sub.kernel32.dll_CloseHandle_1
mov ecx, dword [rbp + 0x4c]
call sub.kernel32.dll_SetLastError
jmp 0x63f818
mov dword [rbp + 0x2b4], 2
mov rcx, rbx
lea rdx, [rbp + 0x2b4]
xor r8, r8
xor r9, r9
call sub.kernel32.dll_SetNamedPipeHandleState
test eax, eax
setne al
test al, al
jne 0x63f62d
call sub.kernel32.dll_GetLastError_2
mov dword [rbp + 0x4c], eax
mov rcx, rbx
call sub.kernel32.dll_CloseHandle_1
mov rcx, qword [rbp + 0x2b8]
call sub.kernel32.dll_CloseHandle_1
mov ecx, dword [rbp + 0x4c]
call sub.kernel32.dll_SetLastError
jmp 0x63f818
lea rcx, [rbp + 0x290]
mov edx, 0x20
xor r8, r8
call fcn.00408d50
mov rax, qword [rbp + 0x2b8]
mov qword [rbp + 0x2a8], rax
mov dword [rbp + 0x2b0], 0
mov rcx, rbx
mov rdx, rsi
mov r8d, edi
mov r9, r13
mov eax, dword [rbp + 0x310]
mov dword [rsp + 0x20], eax
lea rax, [rbp + 0x2b0]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x290]
mov qword [rsp + 0x30], rax
call sub.kernel32.dll_TransactNamedPipe
test eax, eax
setne al
test al, al
jne 0x63f7f7
call sub.kernel32.dll_GetLastError_2
mov dword [rbp + 0x4c], eax
mov eax, dword [rbp + 0x4c]
cmp eax, 0x3e5
jne 0x63f7d9
cmp dword [rbp + 0x310], 0
jne 0x63f6e6
mov al, 1
mov byte [rbp + 0x4b], al
xor rax, rax
mov dword [rbp + 0x4c], eax
mov rcx, rbx
call sub.kernel32.dll_CloseHandle_1
mov rcx, qword [rbp + 0x2b8]
call sub.kernel32.dll_CloseHandle_1
mov ecx, dword [rbp + 0x4c]
call sub.kernel32.dll_SetLastError
jmp 0x63f818
mov rcx, qword [rbp + 0x2b8]
call sub.kernel32.dll_ResetEvent
cmp byte [rbp + 0x320], 1
jne 0x63f75b
mov ecx, 1
lea rdx, [rbp + 0x2b8]
xor r8, r8
or r9d, 0xffffffff
mov dword [rsp + 0x20], 0x4ff
call sub.user32.dll_MsgWaitForMultipleObjects
cmp eax, 1
jne 0x63f75a
lea rcx, [rbp + 0x260]
xor rdx, rdx
xor r8, r8
xor r9, r9
call sub.user32.dll_GetMessageW
test eax, eax
setne al
cmp al, 1
jne 0x63f6fb
lea rcx, [rbp + 0x260]
call sub.user32.dll_TranslateMessage
lea rcx, [rbp + 0x260]
call sub.user32.dll_DispatchMessageW
jmp 0x63f6fb
nop
mov rcx, rbx
lea rdx, [rbp + 0x290]
lea r8, [rbp + 0x2b0]
or r9d, 0xffffffff
call sub.kernel32.dll_GetOverlappedResult
test eax, eax
setne al
test al, al
jne 0x63f7a4
call sub.kernel32.dll_GetLastError_2
mov dword [rbp + 0x4c], eax
mov rcx, rbx
call sub.kernel32.dll_CloseHandle_1
mov rcx, qword [rbp + 0x2b8]
call sub.kernel32.dll_CloseHandle_1
mov ecx, dword [rbp + 0x4c]
call sub.kernel32.dll_SetLastError
jmp 0x63f818
mov eax, dword [rbp + 0x2b0]
cmp eax, dword [rbp + 0x310]
jae 0x63f7f7
mov eax, 0xd
mov dword [rbp + 0x4c], eax
mov rcx, rbx
call sub.kernel32.dll_CloseHandle_1
mov rcx, qword [rbp + 0x2b8]
call sub.kernel32.dll_CloseHandle_1
mov ecx, dword [rbp + 0x4c]
call sub.kernel32.dll_SetLastError
jmp 0x63f818
mov rcx, rbx
call sub.kernel32.dll_CloseHandle_1
mov rcx, qword [rbp + 0x2b8]
call sub.kernel32.dll_CloseHandle_1
mov ecx, dword [rbp + 0x4c]
call sub.kernel32.dll_SetLastError
jmp 0x63f818
mov al, 1
mov byte [rbp + 0x4b], al
mov rcx, rbx
call sub.kernel32.dll_CloseHandle_1
mov rcx, qword [rbp + 0x2b8]
call sub.kernel32.dll_CloseHandle_1
mov ecx, dword [rbp + 0x4c]
call sub.kernel32.dll_SetLastError
movzx rax, byte [rbp + 0x4b]
lea rsp, [rbp + 0x2c0]
pop rbx
pop rsi
pop rdi
pop r13
pop rbp
ret