Function at 0x6ff8fa10
Capabilities:
Create pipe
Create process on windows
Encode data using xor
Read file on windows

Disassembly:
push rbp
mov eax, 0x1118
mov rbp, rsp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
call fcn.6ff82780
xor r9d, r9d
xor r12d, r12d
sub rsp, rax
mov r13, rcx
mov dword [rbp - 0x10d8], 0x18
lea rdx, [rbp - 0x10e0]
lea rcx, [rbp - 0x10e8]
lea r8, [rbp - 0x10d8]
mov dword [rbp - 0x10c8], 1
mov qword [rbp - 0x10d0], 0
call qword [sym.imp.KERNEL32.dll_CreatePipe]
test eax, eax
je 0x6ff8fcba
xor r8d, r8d
mov rcx, qword [rbp - 0x10e8]
mov edx, 1
call qword [sym.imp.KERNEL32.dll_SetHandleInformation]
test eax, eax
jne 0x6ff8faae
mov rcx, qword [rbp - 0x10e8]
mov rbx, qword [sym.imp.KERNEL32.dll_CloseHandle]
call rbx
mov rcx, qword [rbp - 0x10e0]
call rbx
jmp 0x6ff8fcba
lea r12, [rbp - 0x10a8]
xor eax, eax
lea rbx, [rbp - 0x10c0]
mov ecx, 0x16
mov rdi, r12
mov rdx, qword [rbp - 0x10e0]
rep stosd dword [rdi], eax
mov rdi, rbx
mov ecx, 6
mov dword [rbp - 0x10a8], 0x68
rep stosd dword [rdi], eax
or rcx, 0xffffffffffffffff
mov rdi, r13
mov qword [rbp - 0x1048], rdx
mov qword [rbp - 0x1050], rdx
mov dword [rbp - 0x106c], 0x100
repne scasb al, byte [rdi]
mov rax, rcx
not rax
add rax, 0x1a
shr rax, 4
shl rax, 4
call fcn.6ff82780
sub rsp, rax
mov byte [rbp - 0x1034], 0
movabs rax, 0x5d1805185319101e
lea rdx, [rbp - 0x1035]
mov word [rbp - 0x1037], 0x1e52
lea r10, [rsp + 0x50]
mov byte [rbp - 0x1035], 0x5d
mov qword [rbp - 0x103f], rax
lea rax, [rbp - 0x1040]
mov r14, rax
xor byte [rax + 1], 0x7d
inc rax
cmp rdx, rax
jne 0x6ff8fb5c
mov rcx, r10
lea rdx, [rbp - 0x103f]
mov byte [rbp - 0x1034], 0
call sub.msvcrt.dll_strcpy
mov rdx, r13
mov rcx, rax
call sub.msvcrt.dll_strcat
xor ecx, ecx
mov qword [rsp + 0x48], rbx
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x40], r12
mov rdx, rax
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0x8000000
mov dword [rsp + 0x20], 1
call qword [sym.imp.KERNEL32.dll_CreateProcessA]
mov rbx, qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rbp - 0x10e0]
test eax, eax
jne 0x6ff8fbdf
call rbx
jmp 0x6ff8fc65
call rbx
mov r15, qword [sym.imp.KERNEL32.dll_ReadFile]
xor edi, edi
xor r12d, r12d
lea r13, [rbp - 0x10ec]
mov qword [rsp + 0x20], 0
mov rcx, qword [rbp - 0x10e8]
mov r9, r13
mov rdx, r14
mov r8d, 0xfff
call r15
test eax, eax
je 0x6ff8fc59
mov esi, dword [rbp - 0x10ec]
test esi, esi
je 0x6ff8fc59
mov r8d, esi
mov rcx, r12
mov byte [rbp + r8 - 0x1040], 0
add r8, rdi
lea rdx, [r8 + 1]
mov qword [rbp - 0x10f8], r8
call sub.msvcrt.dll_realloc
mov r8, qword [rbp - 0x10f8]
test rax, rax
jne 0x6ff8fc70
mov rcx, r12
call fcn.6ff8e3b8
jmp 0x6ff8fc65
test r12, r12
je 0x6ff8fc8a
mov byte [r12 + rdi], 0
jmp 0x6ff8fc8a
mov rcx, qword [rbp - 0x10e8]
call rbx
jmp 0x6ff8fcb7
lea rdx, [rax + rdi]
lea ecx, [rsi + 1]
mov r12, rax
mov rsi, r14
mov rdi, rdx
rep movsb byte [rdi], byte [rsi]
mov rdi, r8
jmp 0x6ff8fbf4
mov rcx, qword [rbp - 0x10e8]
call rbx
mov rcx, qword [rbp - 0x10c0]
call rbx
mov rcx, qword [rbp - 0x10b8]
call rbx
test rdi, rdi
jne 0x6ff8fcba
test r12, r12
je 0x6ff8fcba
mov rcx, r12
call fcn.6ff8e3b8
xor r12d, r12d
lea rsp, [rbp - 0x38]
mov rax, r12
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret