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

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x468]
sub rsp, 0x568
mov rax, qword [0x1401f5698]
xor rax, rsp
mov qword [rbp + 0x450], rax
lea eax, [rdx - 0xc8]
mov ebx, r9d
mov rdi, r8
mov r15d, edx
mov rsi, rcx
cmp eax, 0x14
ja 0x14002f749
lfence
lea r12d, [rbx + 0x30]
mov ecx, r15d
movsxd rdx, r12d
call fcn.140119328
mov r14, rax
lfence
test rax, rax
jne 0x14002f4fd
mov r9d, r15d
lea rdx, str.Pipe:_Cant_allocate_memory___i__bytes__Cmd___i_
mov r8d, r12d
lea rcx, [rbp + 0x150]
call fcn.1400011f8
lea ebx, [r14 + 1]
or r9, 0xffffffffffffffff
lea edx, [rbx + 0x3f]
mov byte [rsp + 0x20], bl
xor r8d, r8d
lea rcx, [rbp + 0x150]
call fcn.1400297d8
mov rcx, rsi
call fcn.14002f3f4
jmp 0x14002f793
test rdi, rdi
je 0x14002f515
test ebx, ebx
je 0x14002f515
mov r8, rbx
lea rcx, [rax + 0x30]
mov rdx, rdi
call fcn.14012d940
call qword [sym.imp.WINMM.dll_timeGetTime]
and qword [rsp + 0x30], 0
lea r9, [rsp + 0x50]
mov r8d, dword [r14]
mov edi, eax
mov rcx, qword [rsi + 0x210]
lea rax, [rsp + 0x40]
mov qword [rsp + 0x28], rax
mov rdx, r14
mov dword [rsp + 0x20], 0x200
call qword [sym.imp.KERNEL32.dll_TransactNamedPipe]
mov r13d, eax
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r12d, eax
lea rbx, [rsi + 4]
call qword [sym.imp.WINMM.dll_timeGetTime]
and qword [rsp + 0x28], 0
mov r8d, edi
sub eax, edi
mov qword [rsp + 0x20], rbx
mov r9d, eax
xor edx, edx
mov rcx, r14
call fcn.1400d0244
test r13d, r13d
jne 0x14002f5da
cmp r12d, 0x6d
jne 0x14002f594
lea ebx, [r13 + 1]
jmp 0x14002f63d
cmp r12d, 0xea
je 0x14002f5da
lfence
mov r9d, r12d
lea rdx, str.Pipe:_TransactNamedPipe_failed__Cmd___i__ErrCode__0x_08X_
mov r8d, r15d
lea rcx, [rbp + 0x250]
call fcn.1400011f8
mov ebx, 1
lea rcx, [rbp + 0x250]
or r9, 0xffffffffffffffff
mov byte [rsp + 0x20], bl
xor r8d, r8d
lea edx, [rbx + 0x3f]
call fcn.1400297d8
jmp 0x14002f63b
cmp dword [rsp + 0x40], 4
jb 0x14002f633
movsxd rdi, dword [rsp + 0x50]
lea rax, [rsp + 0x50]
mov qword [rsi + 0x220], rax
cmp edi, 0x30
jbe 0x14002f633
mov r8d, dword [rsp + 0x54]
cmp r8d, 0xa7
je 0x14002f657
mov eax, dword [rsp + 0x6c]
or r9d, 0xffffffff
mov edx, dword [rsp + 0x5c]
mov rcx, qword [0x14022a9e0]
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0x28], rax
mov eax, dword [rsp + 0x64]
mov dword [rsp + 0x20], eax
call fcn.14001ffc0
and qword [rsi + 0x220], 0
xor ebx, ebx
mov rcx, rsi
call fcn.14002f3f4
lfence
mov rcx, r14
call fcn.140113e18
mov eax, ebx
jmp 0x14002f795
xor r12d, r12d
mov qword [rsi + 0x220], r12
test edi, edi
jne 0x14002f683
xor r9d, r9d
mov qword [rsp + 0x20], r12
xor r8d, r8d
lea rcx, str.Empty_data_recieved_from_server
xor edx, edx
call fcn.140113304
mov ebx, r12d
jmp 0x14002f63d
mov ebx, 1
mov rcx, rdi
mov edx, ebx
call fcn.140113de8
mov r8d, dword [rsp + 0x40]
lea rdx, [rsp + 0x50]
mov rcx, rax
mov qword [rsi + 0x220], rax
call fcn.14012d940
mov r15d, dword [rsp + 0x40]
add r15, qword [rsi + 0x220]
jmp 0x14002f6f6
test r13d, r13d
jne 0x14002f6fe
mov rcx, qword [rsi + 0x210]
lea r9, [rsp + 0x40]
mov r8d, edi
mov qword [rsp + 0x20], r12
mov rdx, r15
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov r13d, eax
test eax, eax
jne 0x14002f6ef
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xea
jne 0x14002f6fe
mov eax, dword [rsp + 0x40]
add r15, rax
sub edi, dword [rsp + 0x40]
test edi, edi
jg 0x14002f6b9
mov rcx, qword [rsi + 0x210]
lea rax, [rcx - 1]
cmp rax, 0xfffffffffffffffd
ja 0x14002f71c
mov qword [rsi + 0x210], r12
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lfence
mov rcx, r14
call fcn.140113e18
mov rdx, qword [rsi + 0x220]
lea rcx, [rdx + 0x30]
mov qword [rsi + 0x228], rcx
mov ecx, dword [rdx]
sub ecx, 0x30
mov dword [rsi + 0x230], ecx
jmp 0x14002f650
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov ebx, eax
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov r8d, r15d
mov dword [rsp + 0x20], ebx
mov r9d, eax
lea rdx, str.Invalid_command_id___i___nPID_u__TID_u
lea rcx, [rbp + 0x350]
call fcn.1400011f8
mov ebx, 1
lea rcx, [rbp + 0x350]
or r9, 0xffffffffffffffff
mov byte [rsp + 0x20], bl
xor r8d, r8d
lea edx, [rbx + 0x3f]
call fcn.1400297d8
xor eax, eax
mov rcx, qword [rbp + 0x450]
xor rcx, rsp
call fcn.14012bda0
add rsp, 0x568
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret