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

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x3d0]
sub rsp, 0x4d0
mov rax, qword [0x14024e010]
xor rax, rsp
mov qword [rbp + 0x3c0], rax
mov qword [rbp - 0x48], r9
mov rdi, r8
mov r12, rcx
mov r13, qword [r8 + 0x28]
mov qword [rsp + 0x70], r13
xor r15d, r15d
cmp r13, 0xffff
jle 0x1400c356d
mov rbx, qword [r8 + 0x18]
lea rsi, [r13 - 0xffff]
add rsi, rbx
cmp rbx, rsi
ja 0x1400c34fb
nop word [rax + rax]
mov edx, 0xa
mov rcx, rbx
call fcn.1401b2358
test rax, rax
je 0x1400c34fb
lea rbx, [rax + 2]
cmp rbx, rsi
jbe 0x1400c34e0
mov r8, qword [rdi + 0x28]
test r8, r8
mov rax, r15
je 0x1400c350b
mov rax, qword [rdi + 0x18]
sub rbx, rax
test rbx, rbx
jle 0x1400c3561
cmp rbx, r8
jge 0x1400c3547
mov rcx, qword [rdi + 0x18]
sub r8, rbx
lea rdx, [rcx + rbx]
call fcn.1401b2830
mov rdx, qword [rdi + 0x28]
cmp rdx, rbx
je 0x1400c3547
sub rdx, rbx
mov rcx, rdi
call fcn.1400c6510
mov r13, qword [rdi + 0x28]
mov qword [rsp + 0x70], r13
jmp 0x1400c356d
mov rdx, qword [rdi + 0x18]
test rdx, rdx
je 0x1400c3559
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x18]
mov qword [rdi + 0x18], r15
mov qword [rdi + 0x20], r15
mov qword [rsp + 0x70], r15
mov r13, r15
mov qword [rdi + 0x28], r15
cmp r13, 2
jb 0x1400c3587
mov rax, qword [rdi + 0x18]
cmp word [rax + r13 - 2], r15w
jne 0x1400c3587
lea rax, [r13 - 2]
mov qword [rdi + 0x28], rax
lea rax, vtable.CVolCommonBaseWithMemManager.0
mov qword [rsp + 0x38], rax
lea rbx, vtable.CVolObject.0
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x40], r15
mov qword [rsp + 0x48], r15
lea rax, vtable.CVolMem.0
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x50], r15
mov qword [rsp + 0x60], r15
mov qword [rsp + 0x58], r15
mov eax, 0x40
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x78], 1
mov dword [rsp + 0x30], r15d
mov qword [rsp + 0x28], r15
lea rax, [rsp + 0x30]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_PeekNamedPipe]
test eax, eax
je 0x1400c37d6
cmp dword [rsp + 0x30], 0
je 0x1400c37e2
mov dword [rsp + 0x30], r15d
mov qword [rsp + 0x20], r15
lea r9, [rsp + 0x30]
mov r8d, 0x400
lea rdx, [rbp - 0x40]
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x1400c37dd
mov eax, dword [rsp + 0x30]
test eax, eax
je 0x1400c37e2
mov ebx, eax
mov rdx, qword [rsp + 0x58]
mov rax, rdx
mov r14, qword [rsp + 0x60]
sub rax, r14
cmp rax, rbx
jl 0x1400c36d0
cmp rbx, 1
jne 0x1400c3679
mov rcx, qword [rsp + 0x50]
movzx eax, byte [rbp - 0x40]
mov byte [r14 + rcx], al
inc qword [rsp + 0x60]
jmp 0x1400c37a2
cmp rbx, 2
jne 0x1400c3697
mov rcx, qword [rsp + 0x50]
movzx eax, word [rbp - 0x40]
mov word [r14 + rcx], ax
add qword [rsp + 0x60], rbx
jmp 0x1400c37a2
cmp rbx, 4
jne 0x1400c36b3
mov rcx, qword [rsp + 0x50]
mov eax, dword [rbp - 0x40]
mov dword [r14 + rcx], eax
add qword [rsp + 0x60], rbx
jmp 0x1400c37a2
cmp rbx, 8
jne 0x1400c36d0
mov rcx, qword [rsp + 0x50]
mov rax, qword [rbp - 0x40]
mov qword [r14 + rcx], rax
add qword [rsp + 0x60], rbx
jmp 0x1400c37a2
test rbx, rbx
je 0x1400c37a2
lea rsi, [rbx + r14]
cmp rsi, r14
jne 0x1400c36ec
mov rcx, qword [rsp + 0x50]
jmp 0x1400c3793
test rsi, rsi
jne 0x1400c371c
mov rdx, qword [rsp + 0x50]
test rdx, rdx
je 0x1400c3708
lea rcx, [rsp + 0x38]
mov rax, qword [rsp + 0x38]
call qword [rax + 0x18]
mov qword [rsp + 0x50], r15
mov qword [rsp + 0x60], r15
mov qword [rsp + 0x58], r15
mov rcx, r15
jmp 0x1400c3793
mov rcx, qword [rsp + 0x50]
test rcx, rcx
jne 0x1400c3735
mov rdx, rsi
lea rcx, [rsp + 0x38]
call fcn.1400c6490
jmp 0x1400c3790
mov r15, qword [rsp + 0x68]
test r15, r15
mov eax, 0x40
cmovle r15, rax
cmp rdx, rsi
jl 0x1400c375d
sub rdx, rsi
cmp rdx, r15
jg 0x1400c375d
mov qword [rsp + 0x60], rsi
xor r15d, r15d
jmp 0x1400c3793
mov rax, rsi
cqo
idiv r15
sub r15, rdx
add r15, rsi
mov r8, r15
mov rdx, rcx
lea rcx, [rsp + 0x38]
mov rax, qword [rsp + 0x38]
call qword [rax + reloc.WS2_32.dll_recv]
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], r15
mov qword [rsp + 0x60], rsi
xor r15d, r15d
mov rcx, rax
add rcx, r14
mov r8, rbx
lea rdx, [rbp - 0x40]
call fcn.1401b2830
mov dword [rsp + 0x30], r15d
mov qword [rsp + 0x28], r15
lea rax, [rsp + 0x30]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_PeekNamedPipe]
test eax, eax
jne 0x1400c3604
lea rbx, vtable.CVolObject.0
mov qword [rsp + 0x78], r15
jmp 0x1400c37e9
mov qword [rsp + 0x78], r15
lea rbx, vtable.CVolObject.0
mov r14, qword [rsp + 0x60]
test r14, r14
je 0x1400c3ad0
mov rdx, qword [rsp + 0x58]
mov rax, rdx
sub rax, r14
cmp rax, 4
jl 0x1400c381c
mov rax, qword [rsp + 0x50]
mov dword [r14 + rax], r15d
add qword [rsp + 0x60], 4
jmp 0x1400c38d4
lea rbx, [r14 + 4]
cmp rbx, r14
jne 0x1400c382f
mov rcx, qword [rsp + 0x50]
jmp 0x1400c38d0
test rbx, rbx
jne 0x1400c385f
mov rdx, qword [rsp + 0x50]
test rdx, rdx
je 0x1400c384b
lea rcx, [rsp + 0x38]
mov rax, qword [rsp + 0x38]
call qword [rax + 0x18]
mov qword [rsp + 0x50], r15
mov qword [rsp + 0x60], r15
mov qword [rsp + 0x58], r15
mov rcx, r15
jmp 0x1400c38d0
mov rcx, qword [rsp + 0x50]
test rcx, rcx
jne 0x1400c3878
mov rdx, rbx
lea rcx, [rsp + 0x38]
call fcn.1400c6490
jmp 0x1400c38cd
mov rsi, qword [rsp + 0x68]
test rsi, rsi
mov eax, 0x40
cmovle rsi, rax
cmp rdx, rbx
jl 0x1400c389d
sub rdx, rbx
cmp rdx, rsi
jg 0x1400c389d
mov qword [rsp + 0x60], rbx
jmp 0x1400c38d0
mov rax, rbx
cqo
idiv rsi
sub rsi, rdx
add rsi, rbx
mov r8, rsi
mov rdx, rcx
lea rcx, [rsp + 0x38]
mov rax, qword [rsp + 0x38]
call qword [rax + reloc.WS2_32.dll_recv]
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], rsi
mov qword [rsp + 0x60], rbx
mov rcx, rax
mov dword [rcx + r14], r15d
lea rax, vtable.CVolCommonBaseWithMemManager.0
mov qword [rbp - 0x80], rax
lea rax, vtable.CVolObject.0
mov qword [rbp - 0x80], rax
mov qword [rbp - 0x78], r15
mov qword [rbp - 0x70], r15
lea rax, vtable.CVolMem.0
mov qword [rbp - 0x80], rax
mov qword [rbp - 0x68], r15
mov qword [rbp - 0x58], r15
mov qword [rbp - 0x60], r15
mov eax, 0x40
mov qword [rbp - 0x50], rax
lea rsi, [rax - 0x41]
cmp qword [rsp + 0x60], 0
je 0x1400c39f4
mov r12, qword [rsp + 0x50]
test r12, r12
je 0x1400c39f4
cmp byte [r12], 0
je 0x1400c39f4
mov r14, rsi
nop
lea r14, [r14 + 1]
cmp byte [r12 + r14], 0
jne 0x1400c3940
mov dword [rsp + 0x28], r15d
mov qword [rsp + 0x20], r15
lea r9d, [r14 + 1]
mov r8, r12
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
movsxd rbx, eax
mov qword [rsp + 0x30], rbx
lea r13, [rbx + rbx]
cmp qword [rbp - 0x68], 0
je 0x1400c3987
mov rdx, r13
lea rcx, [rbp - 0x80]
call fcn.1400c6510
jmp 0x1400c39c8
test r13, r13
je 0x1400c39cb
mov rbx, qword [rbp - 0x50]
test rbx, rbx
mov eax, 0x40
cmovle rbx, rax
mov rax, r13
cqo
idiv rbx
sub rbx, rdx
add rbx, r13
mov rdx, rbx
lea rcx, [rbp - 0x80]
mov rax, qword [rbp - 0x80]
call qword [rax]
mov qword [rbp - 0x68], rax
mov qword [rbp - 0x60], rbx
mov qword [rbp - 0x58], r13
mov rbx, qword [rsp + 0x30]
mov r15, rax
mov dword [rsp + 0x28], ebx
mov qword [rsp + 0x20], r15
lea r9d, [r14 + 1]
mov r8, r12
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
test eax, eax
jle 0x1400c39f4
test r15, r15
je 0x1400c3a90
jmp 0x1400c39fb
lea r15, [0x1401eac10]
movzx ecx, word [r15]
test cx, cx
je 0x1400c3a90
nop dword [rax + rax]
inc rsi
cmp word [r15 + rsi*2], 0
jne 0x1400c3a10
add rsi, rsi
mov rbx, qword [rdi + 0x28]
mov rax, qword [rdi + 0x20]
sub rax, rbx
cmp rax, rsi
jl 0x1400c3a6f
cmp rsi, 2
jne 0x1400c3a42
mov rax, qword [rdi + 0x18]
mov word [rbx + rax], cx
add qword [rdi + 0x28], rsi
jmp 0x1400c3a90
cmp rsi, 4
jne 0x1400c3a58
mov ecx, dword [r15]
mov rax, qword [rdi + 0x18]
mov dword [rbx + rax], ecx
add qword [rdi + 0x28], rsi
jmp 0x1400c3a90
cmp rsi, 8
jne 0x1400c3a6f
mov rcx, qword [r15]
mov rax, qword [rdi + 0x18]
mov qword [rbx + rax], rcx
add qword [rdi + 0x28], rsi
jmp 0x1400c3a90
test rsi, rsi
jle 0x1400c3a90
lea rdx, [rbx + rsi]
mov rcx, rdi
call fcn.1400c6510
lea rcx, [rbx + rax]
mov r8, rsi
mov rdx, r15
call fcn.1401b2830
nop
lea r12, vtable.CVolMem.0
mov qword [rbp - 0x80], r12
mov rdx, qword [rbp - 0x68]
test rdx, rdx
je 0x1400c3aaf
lea rcx, [rbp - 0x80]
mov rax, qword [rbp - 0x80]
call qword [rax + 0x18]
xor r15d, r15d
mov qword [rbp - 0x68], r15
mov qword [rbp - 0x58], r15
mov qword [rbp - 0x60], r15
lea rbx, vtable.CVolObject.0
mov qword [rbp - 0x80], rbx
mov r13, qword [rsp + 0x70]
jmp 0x1400c3ad7
lea r12, vtable.CVolMem.0
mov rcx, qword [rbp - 0x48]
test rcx, rcx
je 0x1400c3aea
mov rax, qword [rdi + 0x28]
sub rax, r13
mov qword [rcx], rax
mov rdx, qword [rdi + 0x20]
mov r14, qword [rdi + 0x28]
mov rax, rdx
sub rax, r14
cmp rax, 2
jl 0x1400c3b11
mov rax, qword [rdi + 0x18]
mov word [r14 + rax], r15w
add qword [rdi + 0x28], 2
jmp 0x1400c3bc5
lea rsi, [r14 + 2]
mov rcx, qword [rdi + 0x18]
cmp rsi, r14
je 0x1400c3bc0
test rsi, rsi
jne 0x1400c3b49
test rcx, rcx
je 0x1400c3b38
mov rax, qword [rdi]
mov rdx, rcx
mov rcx, rdi
call qword [rax + 0x18]
mov qword [rdi + 0x18], r15
mov qword [rdi + 0x28], r15
mov qword [rdi + 0x20], r15
mov rcx, r15
jmp 0x1400c3bc0
mov rbx, qword [rdi + 0x30]
mov eax, 0x40
test rcx, rcx
jne 0x1400c3b79
test rbx, rbx
cmovle rbx, rax
mov rax, rsi
cqo
idiv rbx
sub rbx, rdx
add rbx, rsi
mov rax, qword [rdi]
mov rdx, rbx
mov rcx, rdi
call qword [rax]
jmp 0x1400c3baa
test rbx, rbx
cmovle rbx, rax
cmp rdx, rsi
jl 0x1400c3b8d
sub rdx, rsi
cmp rdx, rbx
jle 0x1400c3bb5
mov rax, rsi
cqo
idiv rbx
sub rbx, rdx
add rbx, rsi
mov rax, qword [rdi]
mov r8, rbx
mov rdx, rcx
mov rcx, rdi
call qword [rax + reloc.WS2_32.dll_recv]
mov qword [rdi + 0x20], rbx
mov qword [rdi + 0x18], rax
mov rcx, rax
mov qword [rdi + 0x28], rsi
lea rbx, vtable.CVolObject.0
mov word [rcx + r14], r15w
mov qword [rsp + 0x38], r12
mov rdx, qword [rsp + 0x50]
test rdx, rdx
je 0x1400c3be2
lea rcx, [rsp + 0x38]
mov r8, qword [rsp + 0x38]
call qword [r8 + 0x18]
mov qword [rsp + 0x50], r15
mov qword [rsp + 0x60], r15
mov qword [rsp + 0x58], r15
mov qword [rsp + 0x38], rbx
mov rax, qword [rsp + 0x78]
mov rcx, qword [rbp + 0x3c0]
xor rcx, rsp
call fcn.1401b0930
mov rbx, qword [rsp + 0x518]
add rsp, 0x4d0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret