Function at 0x2100cce50
Capabilities:
Write file on windows

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xd8
mov rax, qword [rcx]
mov rdi, qword [rcx + 0x1d8]
mov r13, rdx
mov rsi, r8
mov r12, rcx
xor r8d, r8d
mov edx, 0x16
call qword [rax + 0x2d8]
test eax, eax
jle 0x2100cd118
mov rax, qword [0x21024fce8]
add rdi, 0x28
mov edx, dword [0x21024fa70]
mov rcx, qword [r12 + 0x1e8]
or dword [rax + 4], 0x10
mov rax, qword [r12 + 0x1d8]
cmp byte [rax + 0xc9], 0
jne 0x2100ccf50
call sym.WaitForSingleObject
mov rcx, r12
call method.fhandler_pty_common.to_be_read_from_pcon__
test al, al
je 0x2100ccee4
mov rax, qword [r12 + 0x1d8]
cmp byte [rax + 0xc8], 0
jne 0x2100cd1f8
mov rcx, r12
call method.fhandler_pty_common.to_be_read_from_pcon__
test al, al
je 0x2100ccf06
mov r8, qword [r12 + 0x1d8]
cmp byte [r8 + 0xc8], 0
je 0x2100cd150
mov rcx, qword [r12 + 0x1e8]
call sym.ReleaseMutex
lea rax, [rsp + 0x48]
mov r9, rdi
mov r8, rsi
mov qword [rsp + 0x20], rax
mov rdx, r13
mov rcx, r12
call method.fhandler_termios.line_edit_char_const__unsigned_long__termios__long_
cmp eax, 4
je 0x2100cd1e8
cmp eax, 2
jle 0x2100cd1e8
mov rax, 0xffffffffffffffff
jmp 0x2100ccff1
mov rbx, r13
lea rbp, [r13 + rsi]
lea r14, [rsp + 0x48]
call sym.WaitForSingleObject
lea r15, [rsp + 0x44]
lea r13, [0x2102ff7b0]
test rsi, rsi
je 0x2100ccfbf
nop dword [rax + rax]
movzx eax, byte [rbx]
cmp al, 0x1b
je 0x2100cd010
cmp dword [0x2102ff7a8], 1
je 0x2100cd098
mov qword [rsp + 0x20], r14
mov r9, rdi
mov rdx, rbx
mov rcx, r12
mov r8d, 1
call method.fhandler_termios.line_edit_char_const__unsigned_long__termios__long_
cmp dword [0x2102ff7a8], 1
je 0x2100cd0c4
add rbx, 1
cmp rbx, rbp
jne 0x2100ccf78
cmp dword [0x2102ff7a8], 2
je 0x2100cd059
mov rcx, qword [r12 + 0x1e8]
call sym.ReleaseMutex
mov rax, qword [r12 + 0x1d8]
cmp byte [rax + 0xc9], 0
je 0x2100cd328
mov rax, rsi
mov rdx, qword [0x21024fce8]
and dword [rdx + 4], 0xffffffef
add rsp, 0xd8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
movsxd r8, dword [0x2102ff7ac]
test r8d, r8d
jne 0x2100cd120
mov dword [0x2102ff7a8], 1
mov byte [r13 + r8], al
lea edx, [r8 + 1]
cmp byte [rbx], 0x52
mov dword [0x2102ff7ac], edx
jne 0x2100ccfb6
mov dword [0x2102ff7a8], 2
add rbx, 1
cmp rbx, rbp
jne 0x2100ccf78
mov rax, qword [r12 + 0x1d8]
cmp byte [rax + 0x121], 0
je 0x2100cd5b0
mov dword [0x2102ff7ac], 0
mov dword [0x2102ff7a8], 0
mov byte [rax + 0x121], 0
mov byte [rax + 0xc9], 0
jmp 0x2100ccfcc
movsxd r8, dword [0x2102ff7ac]
cmp r8d, 0xd
jle 0x2100cd02a
mov rdx, qword [r12 + 0x1d8]
cmp byte [rdx + 0x121], 0
je 0x2100cd0d8
mov dword [0x2102ff7ac], 1
mov byte [r13], al
cmp byte [rbx], 0x52
jne 0x2100ccfb6
jmp 0x2100cd042
mov qword [rsp + 0x20], 0
mov rcx, qword [r12 + 0x230]
mov r9, r15
mov rdx, r13
call sym.WriteFile
movzx eax, byte [rbx]
cmp dword [0x2102ff7a8], 1
mov dword [0x2102ff7ac], 1
mov byte [r13], al
jne 0x2100ccfb6
jmp 0x2100cd0c4
cdqe
jmp 0x2100ccffc
mov qword [rsp + 0x20], r14
mov r9, rdi
mov rdx, r13
mov rcx, r12
call method.fhandler_termios.line_edit_char_const__unsigned_long__termios__long_
movzx eax, byte [rbx]
xor r8d, r8d
mov dword [0x2102ff7a8], 1
jmp 0x2100cd02a
mov eax, dword [r8 + 0x124]
test eax, eax
jne 0x2100ccf06
mov rcx, qword [0x2102ff780]
test rcx, rcx
je 0x2100cd17e
mov edx, dword [0x21024fa70]
call sym.WaitForSingleObject
mov r8, qword [r12 + 0x1d8]
mov rdx, qword [r12 + 0x258]
mov r9, qword [r12 + 0x1f8]
mov ecx, 1
call method.fhandler_pty_slave.transfer_input_tty::xfer_dir__void__tty__void_
mov rcx, qword [0x2102ff780]
test rcx, rcx
je 0x2100ccf06
call sym.ReleaseMutex
mov rcx, qword [r12 + 0x1e8]
call sym.ReleaseMutex
lea rax, [rsp + 0x48]
mov r9, rdi
mov r8, rsi
mov qword [rsp + 0x20], rax
mov rdx, r13
mov rcx, r12
call method.fhandler_termios.line_edit_char_const__unsigned_long__termios__long_
cmp eax, 2
jle 0x2100cd1e8
cmp eax, 4
jne 0x2100ccf40
nop dword [rax + rax]
mov rax, qword [rsp + 0x48]
jmp 0x2100ccff1
cmp dword [rax + 0x124], 1
jne 0x2100ccee4
mov rdx, qword gs:[0x30]
mov rdx, qword [rdx + 8]
mov rdi, rsi
mov edx, dword [rdx - 0x2cc8]
mov dword [rsp + 0x90], edx
mov rdx, qword gs:[0x30]
mov rdx, qword [rdx + 8]
mov edx, dword [rdx - 0x2cc4]
mov qword [rsp + 0x50], rsi
mov dword [rsp + 0x94], edx
cmp dword [rax + 0xd8], 0xfde9
je 0x2100cd2a5
lea rcx, [rsp + 0x90]
call method.tmp_pathbuf.c_get__
lea r8, [rsp + 0x50]
mov ecx, 0xfde9
mov qword [rsp + 0x50], 0x8000
mov rbx, rax
mov rax, qword [r12 + 0x1d8]
mov rdx, rbx
mov r9d, dword [rax + 0xd8]
lea rax, [0x2102ff7a0]
mov qword [rsp + 0x20], r13
mov r13, rbx
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rsi
call sym.convert_mb_str_unsigned_int__char__unsigned_long__unsigned_int__char_const__unsigned_long___mbstate_t___clone_constprop0_
mov rdi, qword [rsp + 0x50]
test rdi, rdi
je 0x2100cd602
xor ebx, ebx
jmp 0x2100cd2db
mov rdi, qword [rsp + 0x50]
add rbx, 1
mov rdx, qword [r12 + 0x1d8]
movsx ecx, byte [r14]
call method.fhandler_termios.process_stop_start_char__tty_
cmp rdi, rbx
jbe 0x2100cd540
lea r14, [r13 + rbx]
mov rdx, qword [r12 + 0x1d8]
mov r8, r12
movsx ecx, byte [r14]
call method.fhandler_termios.process_sigs_char__tty__fhandler_termios_
cmp eax, 4
jne 0x2100cd2b8
sub rdi, 1
cmp rbx, rdi
jae 0x2100cd315
mov r8, rdi
lea rdx, [r13 + rbx + 1]
mov rcx, r14
sub r8, rbx
call sym.msys_2.0.dll_memmove
mov qword [rsp + 0x50], rdi
lea r14, [r13 + rbx - 1]
jmp 0x2100cd2c1
mov edx, dword [rax + 0xcc]
lea r13, [rsp + 0x50]
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x50], 0
mov rcx, r13
mov qword [rsp + 0x58], 0
mov qword [rsp + 0x60], 0
mov qword [rsp + 0x68], 0
mov qword [rsp + 0x70], 0
mov qword [rsp + 0x78], 0
mov qword [rsp + 0x80], 0
mov qword [rsp + 0x88], 0
call method.pinfo.init_int__unsigned_int__void_
mov rax, qword [rsp + 0x78]
test rax, rax
je 0x2100cd5f0
mov rdx, qword [r12 + 0x1d8]
mov edx, dword [rdx + 8]
cmp dword [rax + 0xfc20], edx
sete bl
lea r14, [rsp + 0x90]
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x90], 0
mov qword [rsp + 0x98], 0
mov rcx, r14
mov qword [rsp + 0xa0], 0
mov qword [rsp + 0xa8], 0
mov qword [rsp + 0xb0], 0
mov qword [rsp + 0xb8], 0
mov qword [rsp + 0xc0], 0
mov qword [rsp + 0xc8], 0
call method.pinfo.init_int__unsigned_int__void_
mov rdx, qword [rsp + 0xb8]
test rdx, rdx
sete al
or ebx, eax
cmp byte [rsp + 0xa8], 0
je 0x2100cd44e
test rdx, rdx
je 0x2100cd44e
mov rcx, r14
call method.pinfo.release__
mov rax, qword [r12 + 0x1d8]
cmp byte [rax + 0xd0], 0
je 0x2100cd463
test bl, bl
jne 0x2100cd491
mov dword [rax + 0xcc], 0
cmp byte [rsp + 0x68], 0
je 0x2100ccfee
cmp qword [rsp + 0x78], 0
je 0x2100ccfee
mov rcx, r13
call method.pinfo.release__
jmp 0x2100ccfee
mov edx, dword [rax + 0x124]
test edx, edx
jne 0x2100cd463
mov rax, qword [r12]
mov rcx, r12
call qword [rax + 0x58]
mov rcx, r12
mov rbx, qword [rax]
mov rax, qword [r12]
call qword [rax + 0x50]
cmp rbx, qword [rax]
jae 0x2100cd4c4
mov rax, qword [r12]
mov rcx, r12
call qword [rax + 0x348]
mov rcx, qword [r12 + 0x1e8]
mov edx, dword [0x21024fa70]
call sym.WaitForSingleObject
mov rcx, qword [0x2102ff780]
test rcx, rcx
je 0x2100cd4ee
mov edx, dword [0x21024fa70]
call sym.WaitForSingleObject
mov rdx, qword [r12 + 0x258]
mov r9, qword [r12 + 0x1f8]
mov ecx, 1
mov r8, qword [r12 + 0x1d8]
call method.fhandler_pty_slave.transfer_input_tty::xfer_dir__void__tty__void_
mov rcx, qword [0x2102ff780]
test rcx, rcx
je 0x2100cd521
call sym.ReleaseMutex
mov rcx, qword [r12 + 0x1e8]
call sym.ReleaseMutex
mov rax, qword [r12 + 0x1d8]
jmp 0x2100cd463
mov r8d, edi
mov rcx, qword [r12 + 0x230]
mov rdx, r13
lea r9, [rsp + 0x48]
mov qword [rsp + 0x20], 0
call sym.WriteFile
mov rcx, qword [r12 + 0x1e8]
call sym.ReleaseMutex
mov ecx, dword [rsp + 0x90]
mov rax, rsi
mov rdx, qword gs:[0x30]
mov rdx, qword [rdx + 8]
mov dword [rdx - 0x2cc8], ecx
mov ecx, dword [rsp + 0x94]
mov rdx, qword gs:[0x30]
mov rdx, qword [rdx + 8]
mov dword [rdx - 0x2cc4], ecx
jmp 0x2100ccff1
mov qword [rsp + 0x20], 0
mov rcx, qword [r12 + 0x230]
lea r9, [rsp + 0x44]
lea rdx, [0x2102ff7b0]
mov r8d, dword [0x2102ff7ac]
call sym.WriteFile
mov rax, qword [r12 + 0x1d8]
jmp 0x2100cd06e
mov rax, qword [r12 + 0x1d8]
xor ebx, ebx
mov edx, dword [rax + 8]
jmp 0x2100cd3b1
xor r8d, r8d
jmp 0x2100cd543