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

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x450]
sub rsp, 0x550
mov qword [rsp + 0x58], 0xfffffffffffffffe
mov qword [rsp + 0x590], rbx
mov rax, qword [0x14006b088]
xor rax, rsp
mov qword [rbp + 0x440], rax
mov rdi, r9
mov qword [rsp + 0x48], r9
mov r14, rdx
mov qword [rsp + 0x68], rdx
mov rax, qword [rbp + 0x4b0]
mov qword [rsp + 0x50], rax
mov byte [rsp + 0x38], 1
mov qword [rsp + 0x20], 0x2c
lea r9, str.OsExecute::ReadOutput
mov r8d, 0x16
lea rdx, str.PIE_Common
lea rcx, [rbp - 0x80]
call fcn.140011450
lea rax, vtable.CTracePieCommon.0
mov qword [rbp - 0x80], rax
call fcn.140002d80
mov rcx, rax
test rax, rax
jne 0x140014d37
mov ecx, 0x80004005
call fcn.140002ad0
int3
mov rax, qword [rax]
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x78], rbx
xor r13d, r13d
or rsi, 0xffffffffffffffff
nop dword [rax]
mov edx, 0x32
mov rcx, qword [r14]
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x140014d6d
cmp eax, 0x102
jne 0x140014f02
cmp eax, 0x102
setne byte [rsp + 0x40]
mov dword [rsp + 0x70], r13d
mov dword [rsp + 0x60], r13d
mov qword [rsp + 0x28], r13
lea rax, [rsp + 0x60]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, qword [rdi]
call qword [sym.imp.KERNEL32.dll_PeekNamedPipe]
test eax, eax
je 0x140014ef2
nop dword [rax]
mov eax, dword [rsp + 0x60]
test eax, eax
je 0x140014eed
cmp eax, 0x3ff
jbe 0x140014dc8
mov eax, 0x3ff
mov qword [rsp + 0x20], r13
lea r9, [rsp + 0x70]
mov r8d, eax
lea rdx, [rbp + 0x40]
mov rcx, qword [rdi]
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x140014eed
mov eax, dword [rsp + 0x70]
test eax, eax
je 0x140014eed
cmp rax, 0x400
jae 0x140014f9c
mov byte [rbp + rax + 0x40], r13b
lea rcx, [rbp + 0x40]
mov rax, rsi
nop
inc rax
cmp byte [rcx + rax], r13b
jne 0x140014e10
lea r12, [rbp + 0x40]
lea r14, [rbp + 0x40]
sub r14, rbx
mov esi, dword [rbx - 0x10]
mov ecx, eax
not ecx
shr ecx, 0x1f
test ecx, ecx
je 0x140014f91
movsxd rdx, eax
lea rcx, [rbp + 0x40]
call fcn.140026a1c
mov r15, rax
mov ecx, 0x7fffffff
sub ecx, eax
cmp ecx, esi
jl 0x140014f86
lea edi, [rsi + rax]
test edi, edi
js 0x140014f7b
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, edi
or eax, ecx
jge 0x140014e81
mov edx, edi
lea rcx, [rsp + 0x78]
call fcn.140015510
mov rbx, qword [rsp + 0x78]
cmp r14, rsi
ja 0x140014e8a
lea r12, [r14 + rbx]
movsxd rdx, r15d
lea rcx, [rsi + rbx]
mov r9, rdx
mov r8, r12
call fcn.1400015a0
cmp edi, dword [rbx - 0xc]
jg 0x140014f70
mov dword [rbx - 0x10], edi
movsxd rax, edi
mov byte [rax + rbx], r13b
mov dword [rsp + 0x70], r13d
mov dword [rsp + 0x60], r13d
mov qword [rsp + 0x28], r13
lea rax, [rsp + 0x60]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rdi, qword [rsp + 0x48]
mov rcx, qword [rdi]
call qword [sym.imp.KERNEL32.dll_PeekNamedPipe]
test eax, eax
mov rsi, 0xffffffffffffffff
jne 0x140014db0
mov r14, qword [rsp + 0x68]
cmp byte [rsp + 0x40], r13b
jne 0x140014fa2
jmp 0x140014d50
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r9d, eax
lea r8, str.WaitForSingleObject_failed__errorCode___d
mov edx, 2
lea rcx, [rbp - 0x80]
call fcn.140011590
nop
lea rdx, [rbx - 0x18]
lock xadd dword [rdx + 0x10], esi
sub esi, 1
jg 0x140014f39
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
lea rax, vtable.CTracePie.0
mov qword [rbp - 0x80], rax
cmp byte [rbp + 0x31], 1
jne 0x140014f66
cmp byte [rbp + 0x30], 0
jne 0x140014f66
lea r8, [0x140056e3c]
mov edx, 5
lea rcx, [rbp - 0x80]
call fcn.140011590
nop
mov eax, 0x1f
jmp 0x140015095
mov ecx, 0x80070057
call fcn.140002ad0
int3
mov ecx, 0x80070057
call fcn.140002ad0
int3
mov ecx, 0x80070057
call fcn.140002ad0
int3
mov ecx, 0x80070057
call fcn.140002ad0
int3
call fcn.14001efc4
int3
call fcn.140002d80
mov rcx, rax
test rax, rax
jne 0x140014fba
mov ecx, 0x80004005
call fcn.140002ad0
int3
mov rax, qword [rax]
call qword [rax + 0x18]
lea rdi, [rax + 0x18]
mov qword [rsp + 0x68], rdi
test rbx, rbx
je 0x140014ff8
test rbx, 0xffffffffffff0000
jne 0x140014ff8
movzx ebx, bx
mov ecx, ebx
call fcn.140002bb0
test rax, rax
je 0x14001500a
mov r8d, ebx
mov rdx, rax
lea rcx, [rsp + 0x68]
call fcn.14000a4d0
jmp 0x140015005
mov rdx, rbx
lea rcx, [rsp + 0x68]
call fcn.1400153e0
mov rdi, qword [rsp + 0x68]
cmp word [rdi], 0
je 0x14001501e
mov r13, rsi
inc r13
cmp word [rdi + r13*2], 0
jne 0x140015013
mov r8, r13
mov rdx, rdi
mov rcx, qword [rsp + 0x50]
call fcn.140007f20
nop
lea rdx, [rdi - 0x18]
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140015049
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdx, qword [rsp + 0x78]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], esi
sub esi, 1
jg 0x140015066
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
lea rax, vtable.CTracePie.0
mov qword [rbp - 0x80], rax
cmp byte [rbp + 0x31], 1
jne 0x140015093
cmp byte [rbp + 0x30], 0
jne 0x140015093
lea r8, [0x140056e3c]
mov edx, 5
lea rcx, [rbp - 0x80]
call fcn.140011590
nop
xor eax, eax
mov rcx, qword [rbp + 0x440]
xor rcx, rsp
call fcn.14001e5b0
mov rbx, qword [rsp + 0x590]
add rsp, 0x550
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret