Function at 0x2100c42a0
Capabilities:
Write file on windows

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xf8
mov edx, dword [0x21024fa70]
mov rbx, rcx
mov rcx, qword [rcx + 0x1e8]
call sym.WaitForSingleObject
mov rcx, qword [rbx]
lea rdx, [method.fhandler_base.rabuf__]
mov rax, qword [rcx + 0x48]
cmp rax, rdx
jne 0x2100c4970
lea rax, [rbx + 0x30]
mov r12, qword [rax]
mov rax, qword [rcx + 0x58]
lea rdx, [method.fhandler_base.raixget__]
cmp rax, rdx
jne 0x2100c4980
lea rax, [rbx + 0x40]
mov edx, 0xffffffff
mov rcx, rbx
add r12, qword [rax]
call method.fhandler_termios.eat_readahead_int_
lea rsi, [method.fhandler_termios.get_output_handle__]
mov dword [rsp + 0x50], eax
mov rax, qword [rbx]
mov qword [rsp + 0x58], rsi
mov rax, qword [rax + 0x290]
cmp rax, rsi
jne 0x2100c4960
lea rax, [rbx + 0x1d0]
mov rsi, qword [rax]
mov rcx, rbx
mov rax, qword gs:[0x30]
mov rax, qword [rax + 8]
mov eax, dword [rax - 0x2cc8]
mov dword [rsp + 0x68], eax
mov rax, qword gs:[0x30]
mov rax, qword [rax + 8]
mov eax, dword [rax - 0x2cc4]
mov dword [rsp + 0x6c], eax
call method.fhandler_pty_common.to_be_read_from_pcon__
test al, al
je 0x2100c4389
mov rax, qword [rbx + 0x1d8]
cmp dword [rax + 0x124], 1
je 0x2100c46a8
movzx eax, byte [0x210273880]
mov edx, dword [rsp + 0x50]
and eax, 1
test edx, edx
jne 0x2100c4438
test al, al
jne 0x2100c4680
mov rax, qword [rbx + 0x1d8]
mov r14d, 1
mov dword [rax + 0x12c], 0
mov rax, qword [rbx]
mov rax, qword [rax + 0x290]
cmp rax, qword [rsp + 0x58]
jne 0x2100c4630
lea rax, [rbx + 0x1d0]
cmp qword [rax], rsi
je 0x2100c463e
mov rcx, qword [rbx + 0x1e8]
call sym.ReleaseMutex
mov edx, dword [rsp + 0x68]
mov rax, qword gs:[0x30]
mov rax, qword [rax + 8]
mov dword [rax - 0x2cc8], edx
mov edx, dword [rsp + 0x6c]
mov rax, qword gs:[0x30]
mov rax, qword [rax + 8]
mov dword [rax - 0x2cc4], edx
mov eax, r14d
add rsp, 0xf8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
test al, al
jne 0x2100c4650
mov edi, dword [rsp + 0x50]
mov edx, 0xd
mov rcx, r12
mov r13, r12
lea r14, [rsp + 0xb0]
mov r8, rdi
mov qword [rsp + 0x48], rdi
call sym.msys_2.0.dll_memchr
mov r8, rdi
mov edx, 0xa
mov rcx, r12
mov rbp, rax
call sym.msys_2.0.dll_memchr
mov dword [rsp + 0x54], 0
mov rdi, rax
mov rax, rbp
or rax, rdi
je 0x2100c4930
nop
test rbp, rbp
je 0x2100c44ae
test rdi, rdi
je 0x2100c4620
lea rax, [rbp + 1]
cmp rdi, rax
je 0x2100c44ae
cmp rdi, rbp
cmova rdi, rbp
mov r8, rdi
mov r9, r14
mov rdx, r13
mov qword [rsp + 0x20], 0
sub r8, r13
mov rcx, rsi
add r8d, 1
mov dword [rsp + 0xb0], r8d
call sym.WriteFile
test eax, eax
je 0x2100c4590
lea r13, [rdi + 1]
mov rdi, qword [rsp + 0x48]
mov edx, dword [rsp + 0xb0]
mov r15, r13
add dword [rsp + 0x54], edx
mov rcx, r13
mov edx, 0xd
sub r15, r12
sub rdi, r15
mov r8, rdi
call sym.msys_2.0.dll_memchr
mov r8, rdi
mov edx, 0xa
mov rcx, r13
mov rbp, rax
call sym.msys_2.0.dll_memchr
mov rdi, rax
or rax, rbp
jne 0x2100c4490
mov r8d, dword [rsp + 0x50]
sub r8d, r15d
mov dword [rsp + 0xb0], r8d
jne 0x2100c498a
mov rax, qword [rbx + 0x1d8]
mov edi, dword [rsp + 0x50]
mov r14d, 1
mov dword [rax + 0x12c], 1
sub edi, dword [rsp + 0x54]
je 0x2100c43be
test byte [0x210273880], 1
jne 0x2100c4a15
mov r13d, dword [rsp + 0x54]
mov r8d, edi
mov rcx, rbx
xor r14d, r14d
lea rdx, [r12 + r13]
call method.fhandler_base.puts_readahead_char_const__unsigned_long_
jmp 0x2100c43be
lea r13, [rdi + 1]
mov r15, qword [rsp + 0x48]
mov edx, 0xd
mov rax, r13
mov rcx, r13
sub rax, r12
sub r15, rax
mov r8, r15
call sym.msys_2.0.dll_memchr
mov r8, r15
mov edx, 0xa
mov rcx, r13
mov rbp, rax
call sym.msys_2.0.dll_memchr
mov rdi, rax
or rax, rbp
jne 0x2100c4490
mov eax, dword [rsp + 0x54]
test eax, eax
jne 0x2100c4541
test byte [0x210273880], 1
jne 0x2100c4900
mov rax, qword [rbx + 0x1d8]
mov r8, qword [rsp + 0x48]
mov rdx, r12
mov rcx, rbx
mov r14d, 0xffffffff
mov dword [rax + 0x12c], 0xffffffff
call method.fhandler_base.puts_readahead_char_const__unsigned_long_
jmp 0x2100c43be
mov rdi, rbp
jmp 0x2100c44ae
mov rcx, rbx
call rax
cmp qword [rax], rsi
jne 0x2100c43e3
mov rcx, qword [rbx + 0x1f8]
call sym.SetEvent
jmp 0x2100c43e3
mov eax, dword [rsp + 0x50]
lea r9, str.about_to_write__u_chars_to_slave
lea r8, str.virtual_int_fhandler_pty_master::accept_input__
mov edx, 0x80080
lea rcx, [0x210273880]
mov dword [rsp + 0x20], eax
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x2100c4440
lea r9, str.sending_EOF_to_slave
lea r8, str.virtual_int_fhandler_pty_master::accept_input__
mov edx, 0x100
lea rcx, [0x210273880]
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x2100c43a7
mov edx, dword [rax + 0x114]
lea r15, [rsp + 0x70]
xor r9d, r9d
xor ebp, ebp
xor r8d, r8d
mov rcx, r15
mov qword [rsp + 0x70], 0
mov rsi, qword [rbx + 0x230]
mov qword [rsp + 0x78], 0
mov qword [rsp + 0x80], 0
mov qword [rsp + 0x88], 0
mov qword [rsp + 0x90], 0
mov qword [rsp + 0x98], 0
mov qword [rsp + 0xa0], 0
mov qword [rsp + 0xa8], 0
call method.pinfo.init_int__unsigned_int__void_
mov rax, qword [rsp + 0x98]
test rax, rax
je 0x2100c4734
mov ebp, dword [rax + 0x14]
mov rcx, qword [0x2102ff780]
test rcx, rcx
je 0x2100c474b
mov edx, dword [0x21024fa70]
call sym.WaitForSingleObject
mov rax, qword [0x21024fce8]
lea r14, [rsp + 0xb0]
xor r9d, r9d
xor r8d, r8d
mov rcx, r14
mov edx, dword [rax + 8]
mov qword [rsp + 0xb0], 0
mov qword [rsp + 0xb8], 0
mov qword [rsp + 0xc0], 0
mov qword [rsp + 0xc8], 0
mov qword [rsp + 0xd0], 0
mov qword [rsp + 0xd8], 0
mov qword [rsp + 0xe0], 0
mov qword [rsp + 0xe8], 0
call method.pinfo.init_int__unsigned_int__void_
mov r13d, dword [rbx + 0x280]
test r13d, r13d
jne 0x2100c47ec
mov rax, qword [rsp + 0xd8]
test rax, rax
je 0x2100c49f6
mov r13d, dword [rax + 0x14]
mov rcx, qword [0x2102ff780]
test rcx, rcx
je 0x2100c4803
mov edx, dword [0x21024fa70]
call sym.WaitForSingleObject
call sym.GetConsoleCP
mov rcx, qword [0x2102ff780]
mov edi, eax
test rcx, rcx
je 0x2100c481b
call sym.ReleaseMutex
test ebp, ebp
je 0x2100c4835
test r13d, r13d
setne dl
test edi, edi
je 0x2100c49b9
test dl, dl
jne 0x2100c49b9
call sym.GetConsoleCP
mov ebp, eax
mov rcx, qword [0x2102ff780]
test rcx, rcx
je 0x2100c484d
call sym.ReleaseMutex
mov rax, qword [rbx + 0x1d8]
cmp dword [rax + 0xd8], ebp
je 0x2100c48b4
lea rcx, [rsp + 0x68]
call method.tmp_pathbuf.c_get__
lea r8, [rsp + 0x60]
mov ecx, ebp
mov qword [rsp + 0x60], 0x8000
mov r13, rax
mov rax, qword [rbx + 0x1d8]
mov rdx, r13
mov r9d, dword [rax + 0xd8]
lea rax, [0x2102ff7c0]
mov qword [rsp + 0x20], r12
mov r12, r13
mov qword [rsp + 0x30], rax
mov eax, dword [rsp + 0x50]
mov qword [rsp + 0x28], rax
call sym.convert_mb_str_unsigned_int__char__unsigned_long__unsigned_int__char_const__unsigned_long___mbstate_t___clone_constprop0_
mov eax, dword [rsp + 0x60]
mov dword [rsp + 0x50], eax
cmp byte [rsp + 0xc8], 0
je 0x2100c48d1
cmp qword [rsp + 0xd8], 0
je 0x2100c48d1
mov rcx, r14
call method.pinfo.release__
cmp byte [rsp + 0x88], 0
je 0x2100c4389
cmp qword [rsp + 0x98], 0
je 0x2100c4389
mov rcx, r15
call method.pinfo.release__
jmp 0x2100c4389
mov qword [rsp + 0x20], rsi
lea r9, str.error_writing_to_pipe__p__E
lea r8, str.virtual_int_fhandler_pty_master::accept_input__
mov edx, 0x40
lea rcx, [0x210273880]
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x2100c45ea
mov eax, dword [rsp + 0x50]
mov r9, r14
mov rdx, r12
mov rcx, rsi
mov qword [rsp + 0x20], 0
mov r8d, eax
mov dword [rsp + 0xb0], eax
call sym.WriteFile
test eax, eax
jne 0x2100c49a9
jmp 0x2100c45dd
mov rcx, rbx
call rax
jmp 0x2100c4338
mov rcx, rbx
call rax
mov rcx, qword [rbx]
jmp 0x2100c42e3
mov rcx, rbx
call rax
jmp 0x2100c42fe
mov qword [rsp + 0x20], 0
mov r9, r14
mov rdx, r13
mov rcx, rsi
call sym.WriteFile
test eax, eax
je 0x2100c45d1
mov ecx, dword [rsp + 0xb0]
add dword [rsp + 0x54], ecx
jmp 0x2100c4541
mov byte [rsp + 0x48], dl
call sym.FreeConsole
mov ecx, ebp
call sym.AttachConsole
call sym.GetConsoleCP
mov ebp, eax
call sym.FreeConsole
test edi, edi
je 0x2100c49ea
movzx edx, byte [rsp + 0x48]
test dl, dl
je 0x2100c49ea
mov ecx, r13d
call sym.AttachConsole
xor ecx, ecx
call sym.init_console_handler_bool_
jmp 0x2100c483c
mov rax, qword [0x21024fce8]
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov ecx, dword [rax + 0x14]
call method.fhandler_pty_common.get_console_process_id_unsigned_int__bool__bool__bool_
mov r13d, eax
jmp 0x2100c47ec
lea r9, str.to_slave_pipe_is_full
lea r8, str.virtual_int_fhandler_pty_master::accept_input__
mov edx, 0x40
lea rcx, [0x210273880]
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x2100c4573