Function at 0x2100b6a60
Capabilities:
Set file attributes
Write file on windows

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0x288
lea rbp, [rsp + 0x80]
sub r8d, 2
mov rsi, rcx
mov dword [rbp - 0xc], r8d
cmp r8d, 1
jle 0x2100b7261
lea r12, [rdx + 2]
movsxd rdx, r8d
mov rcx, r12
call sym.msys_2.0.dll_strnlen
mov dword [rbp - 0xc], eax
mov r8, rax
cmp rax, 0x6c
ja 0x2100b7238
lea eax, [rax + 1]
cdqe
add rax, 0xf
and rax, 0xfffffffffffffff0
call fcn.21021b550
sub rsp, rax
movsxd rbx, r8d
lea r13, [rbp + 0xb0]
mov rdx, r12
lea r14, [rsp + 0x60]
mov r8, rbx
mov rcx, r14
call sym.msys_2.0.dll_strncpy
xor r9d, r9d
mov rdx, r14
mov rcx, r13
mov r8d, 0x21
mov byte [rsp + rbx + 0x60], 0
mov dword [rbp + 0xb0], 0xffffffff
mov qword [rbp + 0xb8], 0
mov qword [rbp + 0xc0], 0
mov dword [rbp + 0xc8], 0
mov dword [rbp + 0xcc], 0
mov byte [rbp + 0xd0], 0
mov qword [rbp + 0x120], 0
mov qword [rbp + 0x140], 0
mov qword [rbp + 0x148], 0
mov qword [rbp + 0x150], 0
mov qword [rbp + 0x158], 0
mov qword [rbp + 0x160], 0
mov dword [rbp + 0x1d0], 0
mov qword [rbp + 0x1d8], 0
mov qword [rbp + 0x1e0], 0
mov qword [rbp + 0x1e8], 0
mov qword [rbp + 0x1f0], 0
mov qword [rbp + 0x1f8], 0
call method.path_conv.check_char_const__unsigned_int__suffix_info_const_
mov r12d, dword [rbp + 0x1d0]
test r12d, r12d
jne 0x2100b6fc0
cmp dword [rbp + 0xb0], 0xffffffff
jne 0x2100b6e80
lea rbx, [method.fhandler_base.get_handle__]
mov dword [rbp - 0xc], 0x10
movabs rax, 0x100007f00000002
mov qword [rbp], rax
mov rax, qword [rsi]
mov rax, qword [rax + 0x280]
cmp rax, rbx
jne 0x2100b6f00
mov rcx, qword [rsi + 0x18]
mov r8d, 0x10
mov rdx, rbp
mov r15, rbp
call fcn.21022eeb0
test eax, eax
jne 0x2100b6f21
mov rax, qword [rsi]
mov rax, qword [rax + 0x280]
cmp rax, rbx
jne 0x2100b6c70
mov rcx, qword [rsi + 0x18]
lea r8, [rbp - 0xc]
mov rdx, r15
call fcn.21022f230
test eax, eax
je 0x2100b6c88
test byte [0x210273880], 1
jne 0x2100b7190
mov edx, 0x330
lea rcx, [0x21029414c]
mov r12d, 0xffffffff
call sym.__set_winsock_errno_char_const__int_
jmp 0x2100b6eab
mov rcx, rsi
call rax
lea r8, [rbp - 0xc]
mov rdx, r15
mov rcx, qword [rax]
call fcn.21022f230
test eax, eax
jne 0x2100b6c44
movzx eax, word [rbp + 2]
lea rdi, [0x210273880]
xchg ah, al
mov word [rbp + 2], ax
test byte [0x210273880], 1
jne 0x2100b6f90
mov r15, qword [0x2102d1cc8]
mov ebx, dword [0x2102d1cd0]
test byte [rbp + 0x149], 0x20
je 0x2100b6ed0
mov rax, qword [0x21023d810]
mov r10d, 0x130116
mov eax, dword [rax + 0x48b0]
not eax
and eax, 0x92
neg eax
sbb r9d, r9d
add r9d, 5
xor edx, edx
mov rcx, r13
mov dword [rbp - 0x18], r10d
mov dword [rbp - 0x14], r9d
call method.path_conv.get_nt_native_path__UNICODE_STRING_
mov r9d, dword [rbp - 0x14]
mov r10d, dword [rbp - 0x18]
test rax, rax
mov r8, rax
je 0x2100b6d41
xor eax, eax
test ebx, ebx
mov qword [rbp + 0x40], r15
lea r8, [rbp + 0x20]
setne al
mov dword [rbp + 0x20], 0x30
add eax, eax
or eax, dword [rbp + 0xb4]
mov qword [rbp + 0x28], 0
mov dword [rbp + 0x38], eax
lea rax, [rbp + 0x128]
mov qword [rbp + 0x30], rax
mov qword [rbp + 0x48], 0
mov dword [rsp + 0x28], r9d
lea r15, [rbp + 0x10]
lea rcx, [rbp - 8]
mov edx, r10d
mov dword [rsp + 0x50], 0
mov r9, r15
mov qword [rsp + 0x48], 0
mov dword [rsp + 0x40], 0x4060
mov dword [rsp + 0x38], 2
mov dword [rsp + 0x30], 0
mov qword [rsp + 0x20], 0
call sym.NtCreateFile
test eax, eax
js 0x2100b6ff0
test byte [rbp + 0x149], 0x20
jne 0x2100b6da9
test byte [rbp + 0xc8], 2
jne 0x2100b7138
mov rax, qword [rsi]
lea rbx, [method.fhandler_socket.get_socket_type__]
mov rax, qword [rax + 0x3c8]
cmp rax, rbx
jne 0x2100b7208
mov eax, dword [rsi + 0x1e0]
cmp eax, 1
je 0x2100b7180
cmp eax, 2
mov edx, 0x2d
mov eax, 0x64
cmovne eax, edx
mov dword [rsp + 0x20], eax
movzx r9d, word [rbp + 2]
lea rbx, [rbp + 0x50]
lea r8, [0x210293bff]
lea rdx, str._s_u__c
mov rcx, rbx
call sym.__small_sprintf
mov rcx, rbx
call sym.msys_2.0.dll_strlen
mov rcx, rsi
lea rdx, [rbx + rax]
call method.fhandler_socket_local.af_local_set_secret_char_
mov rcx, rbx
call sym.msys_2.0.dll_strlen
mov qword [rsp + 0x28], rbx
mov rcx, qword [rbp - 8]
xor edx, edx
add eax, 1
mov qword [rsp + 0x20], r15
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x38], 0
mov dword [rsp + 0x30], eax
call sym.NtWriteFile
test eax, eax
js 0x2100b70f0
mov rcx, r14
call sym.cstrdup
mov qword [rsi + 0x220], rax
mov rcx, qword [rbp - 8]
call sym.NtClose
jmp 0x2100b6eab
test byte [0x210273880], 1
jne 0x2100b6f50
mov rax, qword [sym.msys_2.0.dll__impure_ptr]
mov r12d, 0xffffffff
mov dword [rax], 0x70
call sym.msys_2.0.dll___errno
mov dword [rax], 0x70
mov rcx, r13
call method.path_conv.path_conv__
mov eax, r12d
lea rsp, [rbp + 0x208]
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
movzx eax, byte [rbp + 0xc8]
test al, 2
je 0x2100b6cc0
test al, 1
jne 0x2100b7088
mov r9d, 4
mov r10d, 0x1f0116
jmp 0x2100b6ce3
mov rcx, rsi
mov r15, rbp
call rax
mov r8d, 0x10
mov rdx, rbp
mov rcx, qword [rax]
call fcn.21022eeb0
test eax, eax
je 0x2100b6c21
test byte [0x210273880], 1
jne 0x2100b7060
mov edx, 0x32a
lea rcx, [0x21029414c]
mov r12d, 0xffffffff
call sym.__set_winsock_errno_char_const__int_
jmp 0x2100b6eab
lea rax, str.virtual_int_fhandler_socket_local::bind_const_sockaddr__int_
mov dword [rsp + 0x30], 0x70
lea r9, [0x2102938d1]
mov edx, 0x40
mov dword [rsp + 0x28], 0x320
lea r8, [0x2102938e8]
lea rcx, [0x210273880]
mov qword [rsp + 0x20], rax
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x2100b6e8d
movzx eax, ax
lea r9, str.AF_LOCAL:_socket_bound_to_port__u
mov edx, 0x40
mov rcx, rdi
mov dword [rsp + 0x20], eax
lea r8, str.virtual_int_fhandler_socket_local::bind_const_sockaddr__int_
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x2100b6ca6
test byte [0x210273880], 1
jne 0x2100b7020
mov rax, qword [sym.msys_2.0.dll__impure_ptr]
mov dword [rax], r12d
call sym.msys_2.0.dll___errno
mov dword [rax], r12d
mov r12d, 0xffffffff
jmp 0x2100b6eab
cmp qword [rbp + 0x18], 4
je 0x2100b71b8
mov r8d, eax
mov edx, 0x359
lea rcx, str._usr_src_MSYS2_packages_msys2_runtime_src_msys2_runtime_winsup_cygwin_fhandler_socket_local.cc
mov r12d, 0xffffffff
call sym.seterrno_from_nt_status_char_const__int__int_
jmp 0x2100b6eab
lea rax, str.virtual_int_fhandler_socket_local::bind_const_sockaddr__int_
mov dword [rsp + 0x30], r12d
lea r9, [0x2102938d1]
mov edx, 0x40
mov dword [rsp + 0x28], 0x31b
lea r8, [0x2102938e8]
lea rcx, [0x210273880]
mov qword [rsp + 0x20], rax
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x2100b6fc9
lea r9, str.AF_LOCAL:_bind_failed
lea r8, str.virtual_int_fhandler_socket_local::bind_const_sockaddr__int_
mov edx, 0x10
lea rcx, [0x210273880]
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x2100b6f2e
xor edx, edx
mov rcx, r13
call method.path_conv.get_nt_native_path__UNICODE_STRING_
mov r8, rax
test rax, rax
je 0x2100b72a9
xor eax, eax
test ebx, ebx
mov dword [rbp + 0x20], 0x30
lea r8, [rbp + 0x20]
setne al
mov qword [rbp + 0x28], 0
mov r9d, 4
mov r10d, 0x130116
add eax, eax
or eax, dword [rbp + 0xb4]
mov qword [rbp + 0x40], r15
mov dword [rbp + 0x38], eax
lea rax, [rbp + 0x128]
mov qword [rbp + 0x30], rax
mov qword [rbp + 0x48], 0
jmp 0x2100b6d41
mov r8d, eax
mov edx, 0x368
lea rcx, str._usr_src_MSYS2_packages_msys2_runtime_src_msys2_runtime_winsup_cygwin_fhandler_socket_local.cc
call sym.seterrno_from_nt_status_char_const__int__int_
mov rcx, qword [rbp - 8]
lea r8, [rbp - 0xd]
mov rdx, r15
mov dword [rsp + 0x20], 0xd
mov r9d, 1
mov byte [rbp - 0xd], 1
call sym.NtSetInformationFile
test eax, eax
js 0x2100b7150
mov r12d, 0xffffffff
jmp 0x2100b6e6c
mov rcx, qword [rbp - 8]
mov r8d, 0x1b6
mov rdx, r13
call sym.set_created_file_access_void__path_conv__unsigned_int_
jmp 0x2100b6da9
test byte [0x210273880], 1
je 0x2100b712a
mov dword [rsp + 0x20], eax
lea r9, [0x2102941a0]
mov edx, 0x40
mov rcx, rdi
lea r8, str.virtual_int_fhandler_socket_local::bind_const_sockaddr__int_
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x2100b712a
mov eax, 0x73
jmp 0x2100b6de2
lea r9, str.AF_LOCAL:_getsockname_failed
lea r8, str.virtual_int_fhandler_socket_local::bind_const_sockaddr__int_
mov edx, 0x10
lea rcx, [0x210273880]
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x2100b6c51
test byte [0x210273880], 1
je 0x2100b6e8d
mov dword [rsp + 0x30], 0x70
mov edx, 0x40
mov rcx, rdi
lea rax, str.virtual_int_fhandler_socket_local::bind_const_sockaddr__int_
mov dword [rsp + 0x28], 0x357
lea r9, [0x2102938d1]
lea r8, [0x2102938e8]
mov qword [rsp + 0x20], rax
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x2100b6e8d
mov rcx, rsi
call rax
cmp eax, 1
je 0x2100b7180
mov rax, qword [rsi]
mov rax, qword [rax + 0x3c8]
cmp rax, rbx
je 0x2100b72ba
mov rcx, rsi
call rax
jmp 0x2100b6dd2
mov ebx, 0x5b
test byte [0x210273880], 1
jne 0x2100b7270
mov rax, qword [sym.msys_2.0.dll__impure_ptr]
mov r12d, 0xffffffff
mov dword [rax], ebx
call sym.msys_2.0.dll___errno
mov dword [rax], ebx
jmp 0x2100b6eb3
mov ebx, 2
mov eax, 0x16
cmovne ebx, eax
jmp 0x2100b723d
lea rax, str.virtual_int_fhandler_socket_local::bind_const_sockaddr__int_
mov dword [rsp + 0x30], ebx
lea r9, [0x2102938d1]
mov edx, 0x40
mov dword [rsp + 0x28], 0x30a
lea r8, [0x2102938e8]
lea rcx, [0x210273880]
mov qword [rsp + 0x20], rax
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x2100b7246
mov r9d, 4
mov r10d, 0x130116
jmp 0x2100b6d41
mov eax, dword [rsi + 0x1e0]
jmp 0x2100b6dd2