Function at 0x2100955a0
Capabilities:
Write file on windows

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x98
mov qword [rsp + 0xe8], rdx
mov r12, rcx
mov rdi, r8
test r8, r8
je 0x210095958
mov rax, qword [rcx]
call qword [rax + 0x348]
test al, al
jne 0x210095db0
mov rax, qword [r12 + 0x1d0]
test rax, rax
je 0x2100955f1
cmp rdi, rax
ja 0x21009596d
mov dword [rsp + 0x5c], edi
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call sym.CreateEventA
mov r13, rax
test rax, rax
je 0x210095de7
mov eax, dword [rsp + 0x5c]
xor r15d, r15d
mov qword [rsp + 0x50], 0
lea rbx, [rsp + 0x78]
mov qword [rsp + 0xf0], rdi
mov qword [rsp + 0x60], rax
mov qword [rsp + 0xe0], r12
mov r12d, r15d
mov r15, qword [rsp + 0xe0]
mov rsi, qword [rsp + 0xf0]
sub rsi, qword [rsp + 0x50]
cmp rsi, qword [rsp + 0x60]
ja 0x210095920
lea rax, [r15 + 0x18]
xor r14d, r14d
lea rbp, [method.fhandler_base.get_handle__]
mov qword [rsp + 0x68], rax
lea rdi, [rsp + 0x80]
mov rax, qword [r15]
mov rax, qword [rax + 0x280]
cmp rax, rbp
jne 0x210095848
mov rcx, qword [r15 + 0x18]
mov dword [rsp + 0x30], esi
xor r9d, r9d
xor r8d, r8d
mov rax, qword [rsp + 0xe8]
mov qword [rsp + 0x20], rdi
mov rdx, r13
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x28], rax
call sym.NtWriteFile
mov r12d, eax
cmp eax, 0x103
je 0x2100957df
mov rcx, r15
call method.fhandler_base.is_nonblocking__
cmp al, 1
jne 0x2100959ce
test r12d, r12d
js 0x2100959ce
mov r8, qword [rsp + 0x88]
cmp qword [rsp + 0xf0], 0x1000
setbe al
test r8, r8
setne dl
or al, dl
jne 0x210095aa8
shr esi, 1
jne 0x210095678
test byte [r15 + 9], 8
je 0x210095ba9
mov r15d, r12d
test r14d, r14d
jne 0x210095b3a
test byte [0x210273880], 1
jne 0x210095ce0
mov rax, qword [sym.msys_2.0.dll__impure_ptr]
mov dword [rax], 9
call sym.msys_2.0.dll___errno
mov dword [rax], 9
mov rcx, r13
call sym.CloseHandle
cmp r15d, 0xe0000001
jne 0x210095e93
cmp qword [rsp + 0x50], 0
jne 0x210095e93
test byte [0x210273880], 1
jne 0x210095b58
mov rax, qword [sym.msys_2.0.dll__impure_ptr]
mov dword [rax], 4
call sym.msys_2.0.dll___errno
mov dword [rax], 4
mov rax, 0xffffffffffffffff
jmp 0x21009590b
mov rax, qword [r15]
mov rcx, r15
call qword [rax + 0x348]
test al, al
jne 0x2100958a0
mov rcx, qword [r15 + 0x68]
mov r8d, 5
mov rdx, rbx
mov qword [rsp + 0x78], 0xfffffffffffe7960
call sym.cygwait_void___LARGE_INTEGER__unsigned_int_
mov r8d, 5
mov rdx, rbx
mov rcx, r13
mov qword [rsp + 0x78], 0
call sym.cygwait_void___LARGE_INTEGER__unsigned_int_
cmp eax, 0x102
je 0x2100957b0
mov r14d, eax
mov rax, qword [r15]
mov rax, qword [rax + 0x280]
cmp rax, rbp
jne 0x210095b30
mov rax, qword [rsp + 0x68]
mov rcx, qword [rax]
call sym.CancelIo
cmp r14d, 1
je 0x210095938
cmp r14d, 2
je 0x210095a90
mov r12d, dword [rsp + 0x80]
jmp 0x2100956d3
mov rcx, r15
call rax
mov rdx, qword [rsp + 0xe8]
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x28], rdx
mov rdx, r13
mov qword [rsp + 0x38], 0
mov dword [rsp + 0x30], esi
mov qword [rsp + 0x20], rdi
mov rcx, qword [rax]
call sym.NtWriteFile
mov r12d, eax
cmp eax, 0x103
jne 0x2100956d3
jmp 0x2100957df
mov rax, qword [r15]
mov r12, r15
mov rax, qword [rax + 0x280]
cmp rax, rbp
jne 0x210095960
add r12, 0x18
mov rcx, qword [r12]
call sym.CancelIo
test byte [0x210273880], 1
jne 0x210095a50
mov rax, qword [sym.msys_2.0.dll__impure_ptr]
mov dword [rax], 0x20
call sym.msys_2.0.dll___errno
mov ecx, 0xd
mov dword [rax], 0x20
call sym.raise_1
mov rcx, r13
call sym.CloseHandle
cmp qword [rsp + 0x50], 0
je 0x2100959b5
mov rax, qword [rsp + 0x50]
add rsp, 0x98
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov eax, dword [rsp + 0x5c]
test eax, eax
je 0x210095d20
mov esi, eax
jmp 0x21009565d
mov r12d, dword [rsp + 0x80]
cmp r12d, 0xc0000120
je 0x2100959c0
xor r14d, r14d
jmp 0x2100956d3
xor eax, eax
jmp 0x21009590b
mov rcx, r15
call rax
mov r12, rax
jmp 0x2100958ba
mov rcx, r12
call method.fhandler_base.is_nonblocking__
test al, al
je 0x210095b98
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
mov rdi, qword [r12 + 0x1d0]
call sym.CreateEventA
mov r13, rax
test rax, rax
je 0x210095de7
mov dword [rsp + 0x5c], edi
test rdi, rdi
jne 0x210095610
mov rcx, rax
call sym.CloseHandle
or rax, 0xffffffffffffffff
jmp 0x21009590b
mov rcx, r15
mov r12d, 0xe0000001
call method.fhandler_base.is_nonblocking__
test byte [r15 + 9], 8
jne 0x210095724
mov eax, r12d
not eax
shr eax, 0x1f
mov edx, eax
cmp r12d, 0xe0000002
je 0x210095eb7
test al, al
jne 0x210095eb7
cmp r12d, 0xe0000001
je 0x210095c7e
cmp r12d, 0xc00000b1
sete al
cmp r12d, 0xc000014b
sete dl
or al, dl
jne 0x210095c4a
cmp r12d, 0xc00000d9
je 0x210095c4a
mov r8d, r12d
mov edx, 0x234
lea rcx, str._usr_src_MSYS2_packages_msys2_runtime_src_msys2_runtime_winsup_cygwin_fhandler_pipe.cc
call sym.seterrno_from_nt_status_char_const__int__int_
mov rcx, r13
call sym.CloseHandle
jmp 0x2100958fa
lea rax, str.virtual_ssize_t_fhandler_pipe_fifo::raw_write_const_void__size_t_
mov dword [rsp + 0x30], 0x20
lea r9, [0x21028f2f4]
mov edx, 0x40
mov dword [rsp + 0x28], 0x1fe
lea r8, [0x21028f310]
lea rcx, [0x210273880]
mov qword [rsp + 0x20], rax
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x2100958d0
mov rcx, r15
mov r12d, 0xe0000002
call method.fhandler_base.is_nonblocking__
jmp 0x2100959ce
mov edx, eax
test byte [r15 + 9], 8
jne 0x210095724
mov rdi, qword [rsp + 0xe8]
mov rbp, qword [rsp + 0x50]
add rdi, r8
add rbp, r8
sete sil
and esi, edx
cmp qword [r15 + 0x68], 0
je 0x210095cbb
test r8, r8
mov qword [rsp + 0x68], r8
je 0x210095bbe
mov rax, qword [r15]
lea rdx, str.raw_write
mov rcx, r15
call qword [rax + 0x340]
test sil, sil
mov r8, qword [rsp + 0x68]
jne 0x210095e5e
mov qword [rsp + 0x50], rbp
mov qword [rsp + 0xe8], rdi
mov rax, qword [rsp + 0x50]
cmp qword [rsp + 0xf0], rax
ja 0x210095645
mov r15d, r12d
jmp 0x210095755
mov rcx, r15
call rax
jmp 0x21009581b
call sym.GetLastError
mov edx, 0x21f
lea rcx, str._usr_src_MSYS2_packages_msys2_runtime_src_msys2_runtime_winsup_cygwin_fhandler_pipe.cc
mov r8d, eax
call sym.seterrno_from_win_error_char_const__int__unsigned_int_
jmp 0x210095755
lea rax, str.virtual_ssize_t_fhandler_pipe_fifo::raw_write_const_void__size_t_
mov dword [rsp + 0x30], 4
lea r9, [0x21028f2f4]
mov edx, 0x40
mov dword [rsp + 0x28], 0x23c
lea r8, [0x21028f310]
lea rcx, [0x210273880]
mov qword [rsp + 0x20], rax
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x210095783
mov eax, dword [r12 + 0x1d0]
mov dword [rsp + 0x5c], eax
jmp 0x2100955f5
cmp qword [rsp + 0x50], 0
sete sil
cmp qword [r15 + 0x68], 0
je 0x210095d88
test sil, sil
je 0x210095b28
lea rcx, [0x210273880]
test byte [0x210273880], 1
je 0x210095ec4
mov qword [rsp + 0x50], 0
lea rax, str.virtual_ssize_t_fhandler_pipe_fifo::raw_write_const_void__size_t_
mov dword [rsp + 0x30], 0xb
lea r9, [0x21028f2f4]
mov edx, 0x40
mov dword [rsp + 0x28], 0x22c
lea r8, [0x21028f310]
mov qword [rsp + 0x20], rax
call method.strace.prntf_unsigned_int__char_const__char_const__..._
mov rax, qword [sym.msys_2.0.dll__impure_ptr]
mov dword [rax], 0xb
call sym.msys_2.0.dll___errno
cmp qword [rsp + 0x50], 0
mov dword [rax], 0xb
je 0x210095b28
mov qword [rsp + 0x50], 0
jmp 0x210095645
test byte [0x210273880], 1
jne 0x210095d28
mov rax, qword [sym.msys_2.0.dll__impure_ptr]
mov dword [rax], 0x20
call sym.msys_2.0.dll___errno
mov ecx, 0xd
mov dword [rax], 0x20
call sym.raise_1
jmp 0x210095a42
mov r8, qword [rsp + 0x88]
add qword [rsp + 0xe8], r8
add qword [rsp + 0x50], r8
cmp qword [r15 + 0x68], 0
je 0x210095cd1
test r8, r8
je 0x210095d68
mov rax, qword [r15]
lea rdx, str.raw_write
mov rcx, r15
call qword [rax + 0x340]
jmp 0x210095b15
test sil, sil
jne 0x210095e4c
mov qword [rsp + 0x50], rbp
mov qword [rsp + 0xe8], rdi
test r8, r8
jne 0x210095b15
jmp 0x210095b28
lea rax, str.virtual_ssize_t_fhandler_pipe_fifo::raw_write_const_void__size_t_
mov dword [rsp + 0x30], 9
lea r9, [0x21028f2f4]
mov edx, 0x40
mov dword [rsp + 0x28], 0x21d
lea r8, [0x21028f310]
lea rcx, [0x210273880]
mov qword [rsp + 0x20], rax
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x21009573d
xor r14d, r14d
jmp 0x2100959ce
lea rax, str.virtual_ssize_t_fhandler_pipe_fifo::raw_write_const_void__size_t_
mov dword [rsp + 0x30], 0x20
lea r9, [0x21028f2f4]
mov edx, 0x40
mov dword [rsp + 0x28], 0x230
lea r8, [0x21028f310]
lea rcx, [0x210273880]
mov qword [rsp + 0x20], rax
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x210095c57
mov rcx, r13
call sym.CloseHandle
cmp qword [rsp + 0x50], 0
je 0x210095776
jmp 0x210095906
cmp qword [rsp + 0x50], 0
jne 0x210095b28
lea rcx, [0x210273880]
test byte [0x210273880], 1
je 0x210095c18
jmp 0x210095be4
test byte [0x210273880], 1
jne 0x210095e0c
mov rax, qword [sym.msys_2.0.dll__impure_ptr]
mov dword [rax], 0x20
call sym.msys_2.0.dll___errno
mov ecx, 0xd
mov dword [rax], 0x20
call sym.raise_1
mov rax, 0xffffffffffffffff
jmp 0x21009590b
call sym.GetLastError
mov edx, 0x1cb
lea rcx, str._usr_src_MSYS2_packages_msys2_runtime_src_msys2_runtime_winsup_cygwin_fhandler_pipe.cc
mov r8d, eax
call sym.seterrno_from_win_error_char_const__int__unsigned_int_
mov rax, 0xffffffffffffffff
jmp 0x21009590b
lea rax, str.virtual_ssize_t_fhandler_pipe_fifo::raw_write_const_void__size_t_
mov dword [rsp + 0x30], 0x20
lea r9, [0x21028f2f4]
mov edx, 0x40
mov dword [rsp + 0x28], 0x1bd
lea r8, [0x21028f310]
lea rcx, [0x210273880]
mov qword [rsp + 0x20], rax
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x210095db9
mov qword [rsp + 0xe8], rdi
mov qword [rsp + 0x50], r8
jmp 0x210095d94
lea rcx, [0x210273880]
test byte [0x210273880], 1
jne 0x210095ea5
mov rax, qword [sym.msys_2.0.dll__impure_ptr]
mov dword [rax], 0xb
call sym.msys_2.0.dll___errno
mov qword [rsp + 0xe8], rdi
mov dword [rax], 0xb
jmp 0x210095c3c
cmp r15d, 0xe0000002
jne 0x2100958fa
call method.pthread.static_cancel_self__
mov qword [rsp + 0xe8], rdi
mov qword [rsp + 0x50], r8
jmp 0x210095be4
mov r8, qword [rsp + 0x88]
jmp 0x210095ab5
mov rax, qword [sym.msys_2.0.dll__impure_ptr]
mov r15d, r12d
mov dword [rax], 0xb
call sym.msys_2.0.dll___errno
mov qword [rsp + 0x50], 0
mov dword [rax], 0xb
jmp 0x210095755