Function at 0x210139380
Capabilities:
Read file on windows

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x118
lea rbx, [0x210273880]
mov rax, qword gs:[0x30]
mov rax, qword [rax + 8]
sub rax, 0x3200
mov qword [0x210262cf0], rax
test byte [0x210273880], 1
jne 0x210139a0d
lea rcx, str.ntdll.dll
xor r14d, r14d
lea rbp, [rsp + 0x60]
mov r12d, 1
call sym.GetModuleHandleA
lea r13, [rsp + 0x4c]
lea rsi, [0x2102a87d0]
mov qword [0x21024fb08], rax
lea rax, [rsp + 0x50]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x58]
mov qword [rsp + 0x38], rax
nop word [rax + rax]
xor eax, eax
mov ecx, 0x16
mov rdi, rbp
cmp byte [0x210262cd0], 0
rep stosq qword [rdi], rax
je 0x2101397d0
cmp dword [0x21024fafc], 1
mov dword [rsp + 0x60], 0xffffffbe
mov byte [0x210262cd0], 0
jle 0x210139840
cmp qword [rsp + 0x100], 0
je 0x21013984f
movsxd rdx, dword [rsp + 0x60]
lea eax, [rdx + 0x4d]
cmp eax, 0xb
ja case.0x210139465.76
movsxd rax, dword [rsi + rax*4]
add rax, rsi
jmp rax
test r14b, r14b
jne 0x210139540
mov rdi, qword [0x210262cc8]
mov rcx, qword [0x210262cd8]
test rdi, rdi
je 0x2101396ee
lea r14, [0x210262c20]
jmp 0x2101394ac
mov rax, qword [rdi + 0xa8]
mov qword [r14 + 0xa8], rax
mov dword [rdi], 0
mov rdi, rax
test rdi, rdi
je 0x2101394d0
mov edx, dword [rdi]
test edx, edx
je 0x210139490
mov rcx, rdi
call method.sigpacket.process__
test eax, eax
jg 0x210139490
mov r14, rdi
mov rdi, qword [rdi + 0xa8]
test rdi, rdi
jne 0x2101394ac
nop dword [rax]
cmp qword [0x210262cc8], 0
mov rcx, qword [0x210262cd8]
je 0x2101396ee
call sym.SetEvent
xor r14d, r14d
cmp dword [rsp + 0x60], 0x14
jne 0x210139540
cmp qword [0x210272e70], 0
jne 0x210139540
xor edx, edx
mov ecx, 4
call sym.proc_subproc_unsigned_int__unsigned_long_
jmp 0x210139540
mov rax, qword [0x21023d810]
xor r8d, r8d
mov rcx, qword [rax + 0x4938]
test rcx, rcx
je 0x210139535
mov rax, qword [rcx]
call qword [rax + 0x248]
xor r8d, r8d
test rax, rax
setne r8b
mov ecx, r8d
call sym.init_console_handler_bool_
nop dword [rax]
mov rcx, qword [rsp + 0x108]
test rcx, rcx
je 0x210139408
test byte [rbx], 1
jne 0x210139890
call sym.SetEvent
jmp 0x210139408
mov r15, qword [rsp + 0xec]
mov edx, 0x1388
mov rcx, r15
call sym.WaitForSingleObject
mov rdx, qword [rsp + 0xf8]
lea rcx, [0x2102738a0]
mov edi, eax
call method.muto.release__cygtls_
mov rcx, r15
call sym.CloseHandle
test edi, edi
je 0x210139540
mov dword [rsp + 0x28], edi
mov edx, 0x8000
mov rcx, rbx
lea r9, str.WaitForSingleObject__p__for_thread_exit_returned__u
mov qword [rsp + 0x20], r15
lea r8, str.void_wait_sig_void_
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x210139540
mov edi, 0xffffffff
mov rdx, qword [0x21023d810]
movsxd rax, edi
mov r8d, dword [rdx + 0x4928]
lea r15, [rax*8 + 8]
jmp 0x2101395eb
mov r15, rax
add edi, 1
cmp edi, r8d
jge 0x210139540
mov rax, qword [rdx + 0x4900]
mov rcx, qword [rax + r15]
lea rax, [r15 + 8]
test rcx, rcx
je 0x2101395e8
test edi, edi
js 0x210139540
mov rax, qword [rcx]
call qword [rax + 0x70]
mov rdx, qword [0x21023d810]
cmp eax, 0xc5
jne 0x2101395d0
mov rax, qword [rdx + 0x4900]
mov r15, qword [rax + r15]
mov rcx, qword [r15 + 0x208]
test rcx, rcx
je 0x2101395d0
mov qword [rsp + 0x20], 0
mov r8, qword [rsp + 0x38]
xor edx, edx
mov r9d, 8
call sym.NtQueryEvent
test eax, eax
js 0x2101395c9
mov eax, dword [rsp + 0x5c]
test eax, eax
je 0x2101395c9
mov rcx, qword [r15 + 0x1e8]
test rcx, rcx
je 0x210139689
call sym.CloseHandle
mov qword [r15 + 0x1e8], 0
mov rcx, qword [r15 + 0x208]
test rcx, rcx
je 0x2101395c9
call sym.CloseHandle
mov qword [r15 + 0x208], 0
jmp 0x2101395c9
test edx, edx
jns 0x210139942
neg edx
mov rdi, qword [0x210262cc8]
mov rcx, qword [0x210262cd8]
movsxd rax, edx
lea rdx, [rax + rax*4]
lea rax, [rax + rdx*2]
lea rdx, [0x21025fec0]
shl rax, 4
mov dword [rdx + rax], 0
test rdi, rdi
jne 0x210139487
call sym.ResetEvent
jmp 0x2101394ea
xor edx, edx
mov rcx, rbx
call method.strace.activate_bool_
jmp 0x210139540
mov rcx, rbp
call sym.talktome_siginfo_t_
jmp 0x210139540
mov rax, qword [rsp + 0x100]
mov rdx, qword [rsp + 0xf8]
mov rcx, qword [0x21023d810]
mov qword [rax], 0
call method.init_cygheap.find_tls__cygtls_
mov r10, rax
mov rax, qword [0x210262cc8]
test rax, rax
je 0x2101397a5
mov r8, qword [rsp + 0xf8]
mov r9, qword [rsp + 0x100]
jmp 0x21013976c
mov rax, qword [rax + 0xa8]
test rax, rax
je 0x2101397a5
mov rdx, qword [rax + 0x98]
test rdx, rdx
je 0x21013977d
cmp rdx, r8
jne 0x210139760
mov edx, dword [rax]
lea ecx, [rdx - 1]
mov rdx, r12
shl rdx, cl
mov edx, edx
mov rcx, rdx
and rcx, qword [r8 + 0x1008]
je 0x210139760
mov rax, qword [rax + 0xa8]
or qword [r9], rdx
test rax, rax
jne 0x21013976c
test r10, r10
je 0x210139540
mov rcx, qword [r10 + 8]
call sym.ReleaseMutex
jmp 0x210139540
mov r14d, 1
jmp 0x210139540
mov qword [rsp + 0x20], 0
mov rcx, qword [0x210262ce0]
mov r9, r13
mov rdx, rbp
mov r8d, 0xb0
call sym.ReadFile
test eax, eax
je 0x2101398e8
mov eax, dword [rsp + 0x4c]
mov edx, dword [rsp + 0x60]
cmp eax, 0xb0
jne 0x2101398c0
test edx, edx
je 0x2101398c0
cmp dword [0x21024fafc], 1
mov byte [0x210262cd0], 0
jle 0x21013943e
mov r8d, dword [rsp + 0x60]
test r8d, r8d
jg 0x210139540
jmp 0x21013943e
cmp qword [rsp + 0x100], 0
jne case.0x210139465.71
cmp byte [0x21024fae6], 0
jne 0x2101398f7
mov rax, qword [0x21023ee48]
test rax, rax
je 0x210139934
mov rax, qword [rax + 0x68]
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x100], rax
jmp 0x21013944d
mov qword [rsp + 0x20], rcx
lea r9, str.signalling_pack.wakeup__p
mov rcx, rbx
mov edx, 0x800
lea r8, str.void_wait_sig_void_
call method.strace.prntf_unsigned_int__char_const__char_const__..._
mov rcx, qword [rsp + 0x108]
jmp 0x21013955a
mov dword [rsp + 0x28], edx
mov rcx, rbx
lea r9, str.garbled_signal_pipe_data_nb__u__sig__d
lea r8, str.void_wait_sig_void_
mov dword [rsp + 0x20], eax
mov edx, 0x8000
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x210139408
mov ecx, 0xffffffff
call sym.Sleep
jmp 0x210139814
mov rdx, qword [0x21024fae8]
mov rcx, qword [0x21023d810]
call method.init_cygheap.find_tls__cygtls_
mov rdx, qword [0x21024fae8]
mov rdx, qword [rdx + 0x1008]
mov qword [rsp + 0x50], rdx
test rax, rax
je 0x210139875
mov rcx, qword [rax + 8]
call sym.ReleaseMutex
jmp 0x210139875
mov qword [rsp + 0x50], 0
jmp 0x210139875
lea rax, [rdx + rdx*4]
lea rdi, [rdx + rax*2]
lea rax, [0x21025fec0]
shl rdi, 4
add rdi, rax
mov ecx, dword [rdi]
test ecx, ecx
jne case.0x210139465.73
movdqa xmm0, xmmword [rsp + 0x60]
movdqa xmm1, xmmword [rsp + 0x70]
movdqa xmm2, xmmword [rsp + 0x80]
movdqa xmm3, xmmword [rsp + 0x90]
movdqa xmm4, xmmword [rsp + 0xa0]
movaps xmmword [rdi], xmm0
movdqa xmm5, xmmword [rsp + 0xb0]
movdqa xmm0, xmmword [rsp + 0xc0]
movaps xmmword [rdi + 0x10], xmm1
movdqa xmm1, xmmword [rsp + 0xd0]
movaps xmmword [rdi + 0x20], xmm2
movdqa xmm2, xmmword [rsp + 0xe0]
movaps xmmword [rdi + 0x30], xmm3
movdqa xmm3, xmmword [rsp + 0xf0]
movaps xmmword [rdi + 0x40], xmm4
movdqa xmm4, xmmword [rsp + 0x100]
movaps xmmword [rdi + 0x50], xmm5
movaps xmmword [rdi + 0xa0], xmm4
movaps xmmword [rdi + 0x60], xmm0
movaps xmmword [rdi + 0x70], xmm1
movaps xmmword [rdi + 0x80], xmm2
movaps xmmword [rdi + 0x90], xmm3
mov rax, qword [0x210262cc8]
mov qword [rdi + 0xa8], rax
mov qword [0x210262cc8], rdi
jmp 0x210139487
mov rax, qword [0x210262ce8]
lea r9, str.entering_ReadFile_loop__my_readsig__p__my_sendsig__p
mov edx, 0x800
mov rcx, rbx
lea r8, str.void_wait_sig_void_
mov qword [rsp + 0x28], rax
mov rax, qword [0x210262ce0]
mov qword [rsp + 0x20], rax
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x2101393c1