Function at 0x14004c8f0
Capabilities:
Check for time delay via gettickcount
Read file on windows

Disassembly:
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xc50
mov rax, qword [0x1405c7418]
xor rax, rsp
mov qword [rsp + 0xc40], rax
mov qword [rsp + 0x48], r9
mov qword [rsp + 0x40], r8
mov r13, rdx
mov rbx, rcx
mov qword [rsp + 0x60], rcx
mov qword [rsp + 0x80], r8
mov rdi, qword [rsp + 0xcb0]
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x88], rdi
mov rdx, qword [rsp + 0xcb8]
mov qword [rsp + 0x58], rdx
mov rcx, qword [rsp + 0xcc0]
mov rax, qword [rsp + 0xcd8]
mov qword [rsp + 0x68], rax
mov rax, qword [r9 + 0x18]
mov qword [rsp + 0x428], rax
mov rax, qword [rdx + 0x18]
mov qword [rsp + 0x430], rax
mov qword [rsp + 0x438], rcx
xor edx, edx
mov qword [rsp + 0x70], rdx
mov qword [rsp + 0x78], rdx
mov rax, qword [r8]
dec rax
cmp rax, 0xfffffffffffffffd
seta r15b
mov rax, qword [rdi]
dec rax
cmp rax, 0xfffffffffffffffd
seta r12b
mov sil, 1
mov byte [rsp + 0x30], sil
movzx r14d, sil
mov byte [rsp + 0x31], sil
mov rax, rbx
cmp qword [rbx + 0x18], 0x10
jb 0x14004c9cf
mov rax, qword [rbx]
mov qword [rbx + 0x10], rdx
mov byte [rax], dl
mov rax, r13
cmp qword [r13 + 0x18], 0x10
jb 0x14004c9e3
mov rax, qword [r13]
mov qword [r13 + 0x10], rdx
mov byte [rax], dl
mov eax, edx
test rcx, rcx
setne al
add eax, 2
mov dword [rsp + 0x50], eax
test rcx, rcx
je 0x14004ca10
call qword [sym.imp.KERNEL32.dll_ResetEvent]
test eax, eax
je 0x14004cd62
mov r9, qword [rsp + 0x48]
test sil, sil
je 0x14004ca88
mov rcx, qword [r9 + 0x18]
call qword [sym.imp.KERNEL32.dll_ResetEvent]
test eax, eax
je 0x14004cdea
mov rbx, qword [rsp + 0x40]
test r15b, r15b
jne 0x14004ca8d
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0x20], rax
xor r9d, r9d
mov r8d, 0x400
lea rdx, [rsp + 0x440]
mov rcx, qword [rbx]
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x14004ca8d
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x26
je 0x14004ca7e
cmp eax, 0x6d
je 0x14004ca7e
cmp eax, 0x3e5
jne 0x14004ce72
xor sil, sil
mov byte [rsp + 0x30], sil
jmp 0x14004ca8d
mov r15b, 1
mov byte [rsp + 0x32], r15b
jmp 0x14004ca8d
mov rbx, qword [rsp + 0x40]
test r14b, r14b
je 0x14004cb03
mov rax, qword [rsp + 0x58]
mov rcx, qword [rax + 0x18]
call qword [sym.imp.KERNEL32.dll_ResetEvent]
test eax, eax
je 0x14004cefa
test r12b, r12b
jne 0x14004cb03
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0x20], rax
xor r9d, r9d
mov r8d, 0x400
lea rdx, [rsp + 0x840]
mov rcx, qword [rdi]
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x14004cb03
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x26
je 0x14004cafb
cmp eax, 0x6d
je 0x14004cafb
cmp eax, 0x3e5
jne 0x14004cf82
xor r14b, r14b
mov byte [rsp + 0x31], r14b
jmp 0x14004cb03
mov r12b, 1
mov byte [rsp + 0x33], r12b
test r15b, r15b
je 0x14004cb4e
test r12b, r12b
je 0x14004cb4e
test sil, sil
jne 0x14004cb1b
mov rcx, qword [rbx]
call qword [sym.imp.KERNEL32.dll_CancelIo]
test r14b, r14b
jne 0x14004cb29
mov rcx, qword [rdi]
call qword [sym.imp.KERNEL32.dll_CancelIo]
mov al, 1
mov rcx, qword [rsp + 0xc40]
xor rcx, rsp
call fcn.1400ab7b0
add rsp, 0xc50
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov edi, eax
mov r9d, dword [rsp + 0xcc8]
xor r8d, r8d
lea rdx, [rsp + 0x428]
mov ecx, dword [rsp + 0x50]
call fcn.140048070
mov ebx, eax
mov dword [rsp + 0x54], eax
cmp dword [rsp + 0xcc8], 0xffffffff
je 0x14004cb91
call qword [sym.imp.KERNEL32.dll_GetTickCount]
sub edi, eax
add dword [rsp + 0xcc8], edi
cmp ebx, 0x81
ja 0x14004cd1a
je 0x14004cc71
test ebx, ebx
je 0x14004cbc2
sub ebx, 1
je 0x14004cc71
sub ebx, 1
je 0x14004cd35
cmp ebx, 0x7e
jne 0x14004d11a
mov dword [rsp + 0x34], 0
mov sil, 1
mov byte [rsp + 0x30], sil
mov r9d, 1
lea r8, [rsp + 0x34]
mov rdx, qword [rsp + 0x48]
mov r10, qword [rsp + 0x40]
mov rcx, qword [r10]
call qword [sym.imp.KERNEL32.dll_GetOverlappedResult]
test eax, eax
jne 0x14004cc11
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x26
je 0x14004cc08
cmp eax, 0x6d
jne 0x14004d00a
movzx r15d, sil
mov byte [rsp + 0x32], sil
mov rbx, qword [rsp + 0x60]
mov rax, qword [rbx + 0x10]
add rax, qword [r13 + 0x10]
cmp rax, qword [rsp + 0xcd0]
jae 0x14004cc62
mov eax, dword [rsp + 0x34]
test eax, eax
je 0x14004cc62
mov r8d, eax
lea rdx, [rsp + 0x440]
mov rcx, rbx
call fcn.140007fe0
mov r11, qword [rsp + 0x68]
test r11, r11
je 0x14004cc62
mov rax, qword [r11]
movzx r9d, r15b
lea r8, [rsp + 0x70]
mov rdx, rbx
mov rcx, r11
call qword [rax + reloc.WS2_32.dll_htonl]
mov rdi, qword [rsp + 0x38]
mov r9, qword [rsp + 0x48]
jmp 0x14004ca10
mov dword [rsp + 0x34], 0
mov r14b, 1
mov byte [rsp + 0x31], r14b
mov r9d, 1
lea r8, [rsp + 0x34]
mov rdx, qword [rsp + 0x58]
mov rdi, qword [rsp + 0x38]
mov rcx, qword [rdi]
call qword [sym.imp.KERNEL32.dll_GetOverlappedResult]
test eax, eax
jne 0x14004ccc0
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x26
je 0x14004ccb7
cmp eax, 0x6d
jne 0x14004d092
movzx r12d, r14b
mov byte [rsp + 0x33], r14b
mov rax, qword [rsp + 0x60]
mov rax, qword [rax + 0x10]
add rax, qword [r13 + 0x10]
cmp rax, qword [rsp + 0xcd0]
jae 0x14004cc67
mov eax, dword [rsp + 0x34]
test eax, eax
je 0x14004cc67
mov r8d, eax
lea rdx, [rsp + 0x840]
mov rcx, r13
call fcn.140007fe0
mov r11, qword [rsp + 0x68]
test r11, r11
je 0x14004cc67
mov rax, qword [r11]
movzx r9d, r12b
lea r8, [rsp + 0x78]
mov rdx, r13
mov rcx, r11
call qword [rax + reloc.WS2_32.dll_htonl]
jmp 0x14004cc67
lea eax, [rbx - 0x82]
test eax, 0xffffff7f
je 0x14004cd35
cmp ebx, 0xffffffff
je 0x14004d1c4
jmp 0x14004d11a
test sil, sil
jne 0x14004cd48
mov r10, qword [rsp + 0x40]
mov rcx, qword [r10]
call qword [sym.imp.KERNEL32.dll_CancelIo]
test r14b, r14b
jne 0x14004cd5b
mov rcx, qword [rsp + 0x38]
mov rcx, qword [rcx]
call qword [sym.imp.KERNEL32.dll_CancelIo]
xor al, al
jmp 0x14004cb2b
lea rdx, [0x140402078]
lea rcx, [rsp + 0xb0]
call fcn.140005380
nop
lea rcx, [rsp + 0x90]
call fcn.140005740
nop
mov r9d, 0x67
lea r8, [rsp + 0xb0]
mov rdx, rax
lea rcx, [rsp + 0x1c0]
call fcn.1400057f0
mov rdi, rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
lea rcx, [rsp + 0x140]
call fcn.140005740
nop
lea r8, [0x140402158]
mov rdx, rax
lea rcx, [rsp + 0x120]
call fcn.1400034a0
nop
mov rcx, rax
call fcn.1400083b0
mov r8, rdi
mov edx, ebx
mov rcx, rax
call fcn.14001f0f0
nop
lea rdx, [0x140402188]
lea rcx, [rsp + 0xb0]
call fcn.140005380
nop
lea rcx, [rsp + 0x120]
call fcn.140005740
nop
mov r9d, reloc.WS2_32.dll_WSAGetLastError
lea r8, [rsp + 0xb0]
mov rdx, rax
lea rcx, [rsp + 0x1c0]
call fcn.1400057f0
mov rdi, rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
lea rcx, [rsp + 0x140]
call fcn.140005740
nop
lea r8, [0x1404021a8]
mov rdx, rax
lea rcx, [rsp + 0x308]
call fcn.1400034a0
nop
mov rcx, rax
call fcn.1400083b0
mov r8, rdi
mov edx, ebx
mov rcx, rax
call fcn.14001f0f0
nop
lea rdx, [0x1404021d8]
lea rcx, [rsp + 0xb0]
call fcn.140005380
nop
lea rcx, [rsp + 0x90]
call fcn.140005740
nop
mov r9d, 0x7e
lea r8, [rsp + 0xb0]
mov rdx, rax
lea rcx, [rsp + 0x1c0]
call fcn.1400057f0
mov rdi, rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
lea rcx, [rsp + 0x388]
call fcn.140005740
nop
lea r8, [0x140402098]
mov rdx, rax
lea rcx, [rsp + 0x3c8]
call fcn.1400034a0
nop
mov rcx, rax
call fcn.1400083b0
mov r8, rdi
mov edx, ebx
mov rcx, rax
call fcn.14001f0f0
nop
lea rdx, [0x1404021f8]
lea rcx, [rsp + 0x90]
call fcn.140005380
nop
lea rcx, [rsp + 0x3e8]
call fcn.140005740
nop
mov r9d, 0x86
lea r8, [rsp + 0x90]
mov rdx, rax
lea rcx, [rsp + 0xd0]
call fcn.1400057f0
mov rdi, rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
lea rcx, [rsp + 0x408]
call fcn.140005740
nop
lea r8, [0x140402218]
mov rdx, rax
lea rcx, [rsp + 0x368]
call fcn.1400034a0
nop
mov rcx, rax
call fcn.1400083b0
mov r8, rdi
mov edx, ebx
mov rcx, rax
call fcn.14001f0f0
nop
lea rdx, [0x140402248]
lea rcx, [rsp + 0x90]
call fcn.140005380
nop
lea rcx, [rsp + 0xb0]
call fcn.140005740
nop
mov r9d, __WSAFDIsSet
lea r8, [rsp + 0x90]
mov rdx, rax
lea rcx, [rsp + 0xd0]
call fcn.1400057f0
mov rdi, rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
lea rcx, [rsp + 0x248]
call fcn.140005740
nop
lea r8, [0x140402268]
mov rdx, rax
lea rcx, [rsp + 0x268]
call fcn.1400034a0
nop
mov rcx, rax
call fcn.1400083b0
mov r8, rdi
mov edx, ebx
mov rcx, rax
call fcn.14001f0f0
nop
lea rdx, [0x140402290]
lea rcx, [rsp + 0x90]
call fcn.140005380
nop
lea rcx, [rsp + 0x288]
call fcn.140005740
nop
mov r9d, 0xae
lea r8, [rsp + 0x90]
mov rdx, rax
lea rcx, [rsp + 0xd0]
call fcn.1400057f0
mov rdi, rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
lea rcx, [rsp + 0x2a8]
call fcn.140005740
nop
lea r8, [0x1404022b0]
mov rdx, rax
lea rcx, [rsp + 0x2c8]
call fcn.1400034a0
nop
mov rcx, rax
call fcn.1400083b0
mov r8, rdi
mov edx, ebx
mov rcx, rax
call fcn.14001f0f0
nop
lea rdx, [0x1404022d8]
lea rcx, [rsp + 0x90]
call fcn.140005380
nop
lea rcx, [rsp + 0x2e8]
call fcn.140005740
nop
mov r9d, 0xc0
lea r8, [rsp + 0x90]
mov rdx, rax
lea rcx, [rsp + 0xd0]
call fcn.1400057f0
mov rdi, rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
lea rcx, [rsp + 0x3a8]
call fcn.140005740
nop
lea r8, [0x1404022f8]
mov rdx, rax
lea rcx, [rsp + 0x328]
call fcn.1400034a0
nop
mov rcx, rax
call fcn.1400083b0
mov r8, rdi
mov edx, ebx
mov rcx, rax
call fcn.14001f0f0
nop
lea rdx, str.RunTime::asyncReadTaskOutput
lea rcx, [rsp + 0x90]
call fcn.140005380
nop
lea rcx, [rsp + 0x348]
call fcn.140005740
nop
mov r9d, 0xd4
lea r8, [rsp + 0x90]
mov rdx, rax
lea rcx, [rsp + 0xd0]
call fcn.1400057f0
mov rdi, rax
lea r8, [rsp + 0x54]
lea rdx, str.Unable_to_read_pipe:_Unknown_state__X
lea rcx, [rsp + 0x180]
call fcn.1400046f0
mov rbx, rax
lea rcx, [rsp + 0x1a0]
call fcn.140005740
nop
mov r8, rbx
mov rdx, rax
lea rcx, [rsp + 0x160]
call fcn.1400033e0
nop
mov r8, rdi
mov rdx, rax
lea rcx, [rsp + 0x210]
call fcn.14001d280
lea rdx, [0x1405c2328]
lea rcx, [rsp + 0x210]
call fcn.1400ac6bc
nop
lea rdx, [0x140402320]
lea rcx, [rsp + 0x90]
call fcn.140005380
nop
lea rcx, [rsp + 0x160]
call fcn.140005740
nop
mov r9d, 0xd2
lea r8, [rsp + 0x90]
mov rdx, rax
lea rcx, [rsp + 0xd0]
call fcn.1400057f0
mov rdi, rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
lea rcx, [rsp + 0x1a0]
call fcn.140005740
nop
lea r8, str.Unable_to_read_pipe
mov rdx, rax
lea rcx, [rsp + 0x180]
call fcn.1400034a0
nop
mov rcx, rax
call fcn.1400083b0
mov r8, rdi
mov edx, ebx
mov rcx, rax
call fcn.14001f0f0
int3