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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x4a8
movaps xmmword [rsp + 0x490], xmm6
mov byte [rsp + 0x4c], r9b
mov r13, rdx
mov rdi, rcx
mov rax, qword [0x140362028]
xor rax, rsp
mov qword [rsp + 0x488], rax
movaps xmm6, xmmword [0x140232ef0]
lea rax, [rsp + 0x60]
movaps xmmword [rax], xmm6
lea rbx, [rsp + 0x80]
mov r15, qword [sym.imp.KERNEL32.dll_ReadFile]
mov r12d, 0xffffffff
lea rsi, [rsp + 0x7c]
xor ecx, ecx
mov dword [rsp + 0x40], r8d
test r8b, 1
je 0x14010db7f
mov eax, ecx
and al, 1
jne 0x14010db7f
mov dword [rsp + 0x3c], ecx
mov eax, 0xaaaaaaaa
mov dword [rsp + 0x5c], eax
mov dword [rsp + 0x58], eax
lea rax, [rsp + 0x58]
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x28], 0
mov rcx, rdi
lea rdx, [rsp + 0x60]
mov r8d, reloc.WS2_32.dll_recv
lea r9, [rsp + 0x5c]
call qword [sym.imp.KERNEL32.dll_PeekNamedPipe]
test eax, eax
je case.default.0x14010db2b
mov eax, dword [rsp + 0x5c]
cmp rax, 0x10
jb 0x14010df3d
mov ecx, dword [rsp + 0x60]
cmp rcx, 3
ja case.default.0x14010db2b
lea rdx, [0x14010e2e8]
movsxd rcx, dword [rdx + rcx*4]
add rcx, rdx
jmp rcx
xor ebp, ebp
cmp rbp, 0xf
ja 0x14010de26
mov dword [rsp + 0x80], 0xaaaaaaaa
mov r8d, reloc.WS2_32.dll_recv
sub r8d, ebp
lea rdx, [rsp + rbp]
add rdx, 0x60
mov qword [rsp + 0x20], 0
mov rcx, rdi
mov r9, rbx
call r15
test eax, eax
mov ecx, dword [rsp + 0x80]
cmove ecx, eax
add rbp, rcx
test eax, eax
jne 0x14010db2f
jmp case.default.0x14010db2b
xor ebp, ebp
cmp rbp, 0xf
ja 0x14010dbcd
mov dword [rsp + 0x80], 0xaaaaaaaa
mov r8d, reloc.WS2_32.dll_recv
sub r8d, ebp
lea rdx, [rsp + rbp]
add rdx, 0x60
mov qword [rsp + 0x20], 0
mov rcx, rdi
mov r9, rbx
call r15
test eax, eax
mov ecx, dword [rsp + 0x80]
cmove ecx, eax
add rbp, rcx
test eax, eax
jne 0x14010db81
jmp case.default.0x14010db2b
mov r14d, 0xffffffff
cmp ebp, 0x10
jne case.default.0x14010dbf8
mov eax, dword [rsp + 0x60]
cmp rax, 3
ja case.default.0x14010dbf8
lea rcx, [0x14010e2d8]
movsxd rax, dword [rcx + rax*4]
add rax, rcx
jmp rax
mov dword [rsp + 0x60], 1
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov dword [rsp + 0x64], eax
xor ebp, ebp
cmp rbp, 0xf
ja case.0x14010dbf8.1
mov dword [rsp + 0x80], 0xaaaaaaaa
mov r8d, reloc.WS2_32.dll_recv
sub r8d, ebp
lea rdx, [rsp + rbp]
add rdx, 0x60
mov qword [rsp + 0x20], 0
mov rcx, rdi
mov r9, rbx
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
mov ecx, dword [rsp + 0x80]
cmove ecx, eax
add rbp, rcx
test eax, eax
jne 0x14010dc0e
jmp case.0x14010dbf8.1
mov r14d, dword [rsp + 0x6c]
test r14, r14
je case.0x14010dbf8.1
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x80], rax
xor ebp, ebp
cmp rbp, 7
ja 0x14010dcc2
mov dword [rsp + 0x7c], 0xaaaaaaaa
mov r8d, 8
sub r8d, ebp
lea rdx, [rsp + rbp]
add rdx, 0x80
mov qword [rsp + 0x20], 0
mov rcx, rdi
mov r9, rsi
call r15
test eax, eax
mov ecx, dword [rsp + 0x7c]
cmove ecx, eax
add rbp, rcx
test eax, eax
jne 0x14010dc7c
jmp case.0x14010dbf8.1
cmp ebp, 8
jne case.0x14010dbf8.1
mov rcx, qword [rsp + 0x80]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
dec r14
jne 0x14010dc68
test byte [rsp + 0x40], 1
je 0x14010db7f
xor ecx, ecx
jmp 0x14010dabc
mov qword [rsp + 0x50], r13
mov r13d, reloc.WS2_32.dll_recv
test r13, r13
je 0x14010dd93
mov r8d, 0x400
mov rcx, rbx
mov dl, 0xaa
call fcn.1401a64a0
mov eax, 0x400
cmp r13, rax
mov ebp, 0x400
cmovb rbp, r13
xor ecx, ecx
mov r14, rcx
mov r8, rbp
sub r8, rcx
jbe 0x14010dd78
mov dword [rsp + 0x7c], 0xaaaaaaaa
cmp r8, r12
cmovae r8, r12
lea rdx, [rsp + r14 + 0x80]
mov qword [rsp + 0x20], 0
mov rcx, rdi
mov r9, rsi
call r15
test eax, eax
mov ecx, dword [rsp + 0x7c]
cmove ecx, eax
add rcx, r14
test eax, eax
jne 0x14010dd23
cmp r14, 1
mov eax, 0
sbb eax, eax
or eax, r14d
mov r14d, eax
cmp r14d, ebp
mov rax, rbp
mov ecx, 0
cmovne rax, rcx
sub r13, rax
cmp r14d, ebp
je 0x14010dcf7
mov r13, qword [rsp + 0x50]
jmp 0x14010df2f
mov eax, dword [rsp + 0x68]
add rax, 0x10
mov ecx, dword [rsp + 0x58]
mov dword [rsp + 0x40], 0
cmp rax, rcx
jbe 0x14010df2f
jmp 0x14010df3d
mov ecx, dword [rsp + 0x6c]
lea rcx, [rcx*8 + 0x10]
cmp rcx, rax
ja case.default.0x14010db2b
xor ebp, ebp
cmp rbp, 0xf
ja 0x14010deaa
mov dword [rsp + 0x80], 0xaaaaaaaa
mov r8d, reloc.WS2_32.dll_recv
sub r8d, ebp
lea rdx, [rsp + rbp]
add rdx, 0x60
mov qword [rsp + 0x20], 0
mov rcx, rdi
mov r9, rbx
call r15
test eax, eax
mov ecx, dword [rsp + 0x80]
cmove ecx, eax
add rbp, rcx
test eax, eax
jne 0x14010ddd6
jmp case.default.0x14010db2b
cmp ebp, 0x10
jne case.default.0x14010db2b
mov dword [rsp + 0x60], 1
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov dword [rsp + 0x64], eax
xor ebp, ebp
cmp rbp, 0xf
ja 0x14010de8d
mov dword [rsp + 0x80], 0xaaaaaaaa
mov r8d, reloc.WS2_32.dll_recv
sub r8d, ebp
lea rdx, [rsp + rbp]
add rdx, 0x60
mov qword [rsp + 0x20], 0
mov rcx, rdi
mov r9, rbx
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
mov ecx, dword [rsp + 0x80]
cmove ecx, eax
add rbp, rcx
test eax, eax
jne 0x14010de43
mov ecx, dword [rsp + 0x3c]
movzx ecx, cl
cmp byte [rsp + 0x4c], 0
mov eax, 1
cmovne ecx, eax
mov dword [rsp + 0x3c], ecx
jmp 0x14010df2f
cmp ebp, 0x10
jne case.default.0x14010db2b
mov r14d, dword [rsp + 0x6c]
test r14, r14
je 0x14010df2f
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x80], rax
xor ebp, ebp
cmp rbp, 7
ja 0x14010df17
mov dword [rsp + 0x7c], 0xaaaaaaaa
mov r8d, 8
sub r8d, ebp
lea rdx, [rsp + rbp]
add rdx, 0x80
mov qword [rsp + 0x20], 0
mov rcx, rdi
mov r9, rsi
call r15
test eax, eax
mov ecx, dword [rsp + 0x7c]
cmove ecx, eax
add rbp, rcx
test eax, eax
jne 0x14010ded1
jmp 0x14010df2f
cmp ebp, 8
jne 0x14010df2f
mov rcx, qword [rsp + 0x80]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
dec r14
jne 0x14010debd
mov r8d, dword [rsp + 0x40]
mov ecx, dword [rsp + 0x3c]
jmp 0x14010daa3
mov ecx, 0x218
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov r14d, 0xffffffff
mov rcx, qword [rsp + 0x488]
xor rcx, rsp
call fcn.1401a4270
mov eax, r14d
movaps xmm6, xmmword [rsp + 0x490]
add rsp, 0x4a8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov edx, dword [rsp + 0x68]
mov dword [r13 + 0x1c], 0
xor eax, eax
mov qword [rsp + 0x40], rax
cmp dword [r13 + 8], 0
mov qword [rsp + 0x50], r13
je 0x14010e07b
test edx, edx
je 0x14010e07b
xor eax, eax
mov qword [rsp + 0x40], rax
mov ebp, 0xffffffff
lea rsi, [rsp + 0x80]
xor ecx, ecx
mov rax, qword [r13]
mov dword [rsp + 0x4c], ecx
mov ecx, ecx
shl rcx, 4
mov r12d, dword [rax + rcx + 8]
cmp edx, r12d
mov dword [rsp + 0x3c], edx
cmovb r12d, edx
mov rbx, qword [rax + rcx]
xor ecx, ecx
mov r13, rcx
cmp rcx, r12
jae 0x14010e03c
mov dword [rsp + 0x80], 0xaaaaaaaa
mov r8, r12
sub r8, r13
cmp r8, rbp
cmovae r8, rbp
lea rdx, [rbx + r13]
mov qword [rsp + 0x20], 0
mov rcx, rdi
mov r9, rsi
call r15
test eax, eax
mov ecx, dword [rsp + 0x80]
cmove ecx, eax
add rcx, r13
test eax, eax
jne 0x14010dfe2
cmp r13, 1
mov eax, 0
sbb eax, eax
or eax, r13d
mov r13d, eax
cmp r13d, r12d
mov eax, 0
cmove rax, r12
add qword [rsp + 0x40], rax
cmp r13d, r12d
mov edx, dword [rsp + 0x3c]
mov ecx, dword [rsp + 0x4c]
jne 0x14010e07f
inc ecx
mov eax, dword [rsp + 0x68]
mov r13, qword [rsp + 0x50]
cmp ecx, dword [r13 + 8]
jae 0x14010e088
sub edx, r12d
cmp qword [rsp + 0x40], rax
jb 0x14010dfbe
jmp 0x14010e088
mov eax, edx
jmp 0x14010e088
mov eax, dword [rsp + 0x68]
mov r13, qword [rsp + 0x50]
mov ebp, eax
cmp qword [rsp + 0x40], rbp
jae 0x14010e154
sub rbp, qword [rsp + 0x40]
mov esi, 0xffffffff
lea r12, [rsp + 0x7c]
test rbp, rbp
je 0x14010e14f
mov r8d, 0x400
lea rcx, [rsp + 0x80]
mov dl, 0xaa
call fcn.1401a64a0
mov eax, 0x400
cmp rbp, rax
mov ebx, 0x400
cmovb rbx, rbp
xor ecx, ecx
mov r13, rcx
mov r8, rbx
sub r8, rcx
jbe 0x14010e12a
mov dword [rsp + 0x7c], 0xaaaaaaaa
cmp r8, rsi
cmovae r8, rsi
lea rdx, [rsp + r13 + 0x80]
mov qword [rsp + 0x20], 0
mov rcx, rdi
mov r9, r12
call r15
test eax, eax
mov ecx, dword [rsp + 0x7c]
cmove ecx, eax
add rcx, r13
test eax, eax
jne 0x14010e0d5
cmp r13, 1
mov eax, 0
sbb eax, eax
or eax, r13d
mov r13d, eax
cmp r13d, ebx
mov rax, rbx
mov ecx, 0
cmovne rax, rcx
sub rbp, rax
cmp r13d, ebx
mov r13, qword [rsp + 0x50]
je 0x14010e0a4
jmp case.default.0x14010dbf8
or byte [r13 + 0x1c], 1
mov ebx, dword [r13 + 0x18]
test ebx, ebx
je 0x14010e22f
cmp qword [r13 + 0x10], 0
je 0x14010e22f
movaps xmmword [rsp + 0xb0], xmm6
movaps xmmword [rsp + 0xa0], xmm6
movaps xmmword [rsp + 0x90], xmm6
movaps xmmword [rsp + 0x80], xmm6
mov eax, dword [rsp + 0x6c]
cmp eax, ebx
cmovb ebx, eax
mov dword [r13 + 0x18], ebx
shl rbx, 3
xor ecx, ecx
mov esi, 0xffffffff
lea r12, [rsp + 0x7c]
mov rbp, rcx
mov r8, rbx
sub r8, rcx
jbe 0x14010e1f8
mov dword [rsp + 0x7c], 0xaaaaaaaa
cmp r8, rsi
cmovae r8, rsi
lea rdx, [rsp + rbp + 0x80]
mov qword [rsp + 0x20], 0
mov rcx, rdi
mov r9, r12
call r15
test eax, eax
mov ecx, dword [rsp + 0x7c]
cmove ecx, eax
add rcx, rbp
test eax, eax
jne 0x14010e1a8
xor eax, eax
cmp rbp, 1
sbb eax, eax
or eax, ebp
mov ebp, eax
mov eax, dword [r13 + 0x18]
lea ecx, [rax*8]
cmp ebp, ecx
jne case.default.0x14010dbf8
test eax, eax
je 0x14010e237
xor ecx, ecx
mov rax, qword [rsp + rcx*8 + 0x80]
mov rdx, qword [r13 + 0x10]
mov qword [rdx + rcx*8], rax
inc rcx
mov eax, dword [r13 + 0x18]
cmp rcx, rax
jb 0x14010e211
jmp 0x14010e239
mov dword [r13 + 0x18], 0
xor eax, eax
mov ebx, dword [rsp + 0x6c]
sub ebx, eax
jbe 0x14010e2c8
lea rsi, [rsp + 0x7c]
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x80], rax
xor ebp, ebp
cmp rbp, 7
ja 0x14010e2a7
mov dword [rsp + 0x7c], 0xaaaaaaaa
mov r8d, 8
sub r8d, ebp
lea rdx, [rsp + rbp]
add rdx, 0x80
mov qword [rsp + 0x20], 0
mov rcx, rdi
mov r9, rsi
call r15
test eax, eax
mov ecx, dword [rsp + 0x7c]
cmove ecx, eax
add rbp, rcx
test eax, eax
jne 0x14010e25e
jmp case.default.0x14010dbf8
cmp ebp, 8
jne case.default.0x14010dbf8
mov rcx, qword [rsp + 0x80]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
dec rbx
jne 0x14010e24a
or byte [r13 + 0x1c], 2
mov rax, qword [rsp + 0x40]
mov r14d, eax
jmp case.default.0x14010dbf8