Function at 0x7ff7e1a4e6b0
Capabilities:
Read file on windows
Read pipe
Write file on windows

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rbp
push rdi
push r14
lea rbp, [rsp - 0xff60]
mov eax, 0x10060
call fcn.7ff7e1c65b20
sub rsp, rax
mov rax, qword [0x7ff7e1d8f600]
xor rax, rsp
mov qword [rbp + 0xff58], rax
mov eax, dword [rcx + 8]
mov rsi, rdx
dec eax
mov rdi, rcx
test eax, 0xfffffffd
jne 0x7ff7e1a4eac8
xor r14d, r14d
nop dword [rax]
mov rbx, qword [rdi]
test rbx, rbx
je 0x7ff7e1a4ea31
mov rcx, qword [rbx + 8]
cmp rcx, 0xffffffffffffffff
je 0x7ff7e1a4ea4a
lea rax, [rbp + 0xff30]
mov qword [rsp + 0x28], r14
xor r9d, r9d
mov qword [rsp + 0x20], rax
xor r8d, r8d
mov dword [rbp + 0xff30], r14d
xor edx, edx
call qword [sym.imp.kernel32.dll_PeekNamedPipe]
test eax, eax
je 0x7ff7e1a4ea1a
cmp dword [rbp + 0xff30], 8
jb 0x7ff7e1a4ea4a
mov rcx, qword [rbx + 8]
lea r9, [rbp + 0xff34]
mov r8d, 8
mov dword [rbp + 0xff34], r14d
lea rdx, [rsp + 0x30]
mov qword [rsp + 0x20], r14
call qword [sym.imp.kernel32.dll_ReadFile]
cmp eax, 1
jne 0x7ff7e1a4ea1a
cmp dword [rbp + 0xff34], 8
je 0x7ff7e1a4e7a6
lea r8d, [rax + 0x73]
lea rdx, [0x7ff7e1d4b040]
lea rcx, [0x7ff7e1d4b0d8]
call fcn.7ff7e1c744f8
mov ecx, dword [rsp + 0x34]
test ecx, ecx
je 0x7ff7e1a4e7d3
mov r8d, ecx
lea rdx, [rsp + 0x38]
mov rcx, qword [rdi]
call fcn.7ff7e1a4ba70
test al, al
je 0x7ff7e1a4e8f1
mov eax, dword [rsp + 0x34]
mov byte [rsp + rax + 0x38], r14b
mov ecx, dword [rsp + 0x34]
mov eax, dword [rsp + 0x30]
test eax, eax
je 0x7ff7e1a4e7fb
sub eax, 1
je 0x7ff7e1a4e9e5
sub eax, 1
je 0x7ff7e1a4e956
sub eax, 1
je 0x7ff7e1a4e846
cmp eax, 1
je 0x7ff7e1a4e700
lea rdx, [0x7ff7e1d4b680]
mov dword [rdi + 0x60], 2
mov ecx, 1
lea r8, [rdi + 0x64]
sub rcx, rdx
nop word [rax + rax]
lea rax, [rcx + rdx]
cmp rax, 0x100
jae 0x7ff7e1a4e92d
movzx eax, byte [rdx]
inc rdx
mov byte [r8], al
inc r8
cmp byte [rdx], r14b
jne 0x7ff7e1a4e820
jmp 0x7ff7e1a4e92d
mov rax, qword [rdi]
mov ebx, ecx
add rbx, 8
mov dword [rsp + 0x30], 4
test rax, rax
jne 0x7ff7e1a4e875
lea r8d, [rax + 0x4f]
lea rdx, [0x7ff7e1d4b040]
lea rcx, [0x7ff7e1d4b0b8]
call fcn.7ff7e1c744f8
jmp 0x7ff7e1a4e8b1
mov rcx, qword [rax + 8]
cmp rcx, 0xffffffffffffffff
je 0x7ff7e1a4e8b1
lea r9, [rbp + 0xff38]
mov dword [rbp + 0xff38], r14d
mov r8d, ebx
mov qword [rsp + 0x20], r14
lea rdx, [rsp + 0x30]
call qword [sym.imp.kernel32.dll_WriteFile]
cmp eax, 1
jne 0x7ff7e1a4e8b1
cmp dword [rbp + 0xff38], ebx
je 0x7ff7e1a4e700
mov r8, qword [rdi + 0x18]
test r8, r8
je 0x7ff7e1a4e8d0
mov eax, dword [rdi + 8]
dec eax
test eax, 0xfffffffd
jne 0x7ff7e1a4e8d0
mov ecx, dword [rdi + 0x60]
lea rdx, [rdi + 0x64]
call r8
mov rbx, qword [rdi]
mov rcx, qword [rbx + 8]
call qword [sym.imp.kernel32.dll_CloseHandle]
mov qword [rbx + 8], 0xffffffffffffffff
mov byte [rbx], r14b
mov dword [rdi + 8], r14d
jmp 0x7ff7e1a4e700
lea rdx, [0x7ff7e1d4b668]
mov dword [rdi + 0x60], 2
mov ecx, 1
lea r8, [rdi + 0x64]
sub rcx, rdx
nop dword [rax + rax]
lea rax, [rcx + rdx]
cmp rax, 0x100
jae 0x7ff7e1a4e92d
movzx eax, byte [rdx]
inc rdx
mov byte [r8], al
inc r8
cmp byte [rdx], r14b
jne 0x7ff7e1a4e910
mov byte [r8], r14b
mov r8, qword [rdi + 0x18]
test r8, r8
je 0x7ff7e1a4eaac
mov eax, dword [rdi + 8]
dec eax
test eax, 0xfffffffd
jne 0x7ff7e1a4eaac
lea rdx, [rdi + 0x64]
jmp 0x7ff7e1a4eaa6
lea rax, [rsp + 0x38]
mov qword [rbp + 0xff48], r14
mov qword [rbp + 0xff40], rax
lea rdx, [rbp + 0xff40]
lea rax, [rsp + 0x38]
mov rcx, rsi
mov qword [rbp + 0xff50], rax
call fcn.7ff7e1a4eb00
mov rcx, rsi
call fcn.7ff7e1a4c140
lea r8, [0x7ff7e1d4b270]
mov dword [rdi + 0x60], eax
lea rdx, [0x7ff7e1d4b298]
mov rcx, rsi
call fcn.7ff7e1a4c220
test rax, rax
je 0x7ff7e1a4e930
movzx r8d, byte [rax]
lea rdx, [rdi + 0x64]
test r8b, r8b
je 0x7ff7e1a4e9dd
mov ecx, 1
sub rax, rdx
nop
cmp rcx, 0x100
jae 0x7ff7e1a4e9dd
mov byte [rdx], r8b
inc rcx
movzx r8d, byte [rax + rdx + 1]
inc rdx
test r8b, r8b
jne 0x7ff7e1a4e9c0
mov byte [rdx], r14b
jmp 0x7ff7e1a4e930
lea rax, [rsp + 0x38]
mov qword [rbp + 0xff48], r14
mov qword [rbp + 0xff40], rax
lea rdx, [rbp + 0xff40]
lea rax, [rsp + 0x38]
mov rcx, rsi
mov qword [rbp + 0xff50], rax
call fcn.7ff7e1a4eb00
mov al, 1
jmp 0x7ff7e1a4eaca
mov rcx, qword [rbx + 8]
call qword [sym.imp.kernel32.dll_CloseHandle]
mov qword [rbx + 8], 0xffffffffffffffff
mov byte [rbx], r14b
jmp 0x7ff7e1a4ea4a
mov r8d, 0x67
lea rdx, [0x7ff7e1d4b040]
lea rcx, [0x7ff7e1d4b0b8]
call fcn.7ff7e1c744f8
mov rax, qword [rdi]
cmp byte [rax], r14b
jne 0x7ff7e1a4eac8
mov ecx, 1
lea r8, [0x7ff7e1d4b658]
lea rdx, [rdi + 0x64]
mov dword [rdi + 0x60], ecx
sub rcx, r8
mov r9, rdx
nop dword [rax + rax]
lea rax, [rcx + r8]
cmp rax, 0x100
jae 0x7ff7e1a4ea8e
movzx eax, byte [r8]
inc r8
mov byte [r9], al
inc r9
cmp byte [r8], r14b
jne 0x7ff7e1a4ea70
mov byte [r9], r14b
mov r8, qword [rdi + 0x18]
test r8, r8
je 0x7ff7e1a4eaac
mov eax, dword [rdi + 8]
dec eax
test eax, 0xfffffffd
jne 0x7ff7e1a4eaac
mov ecx, dword [rdi + 0x60]
call r8
mov rbx, qword [rdi]
mov rcx, qword [rbx + 8]
call qword [sym.imp.kernel32.dll_CloseHandle]
mov qword [rbx + 8], 0xffffffffffffffff
mov byte [rbx], r14b
mov dword [rdi + 8], r14d
xor al, al
mov rcx, qword [rbp + 0xff58]
xor rcx, rsp
call fcn.7ff7e1c64cb0
lea r11, [rsp + 0x10060]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rsp, r11
pop r14
pop rdi
pop rbp
ret