Function at 0x2100e32f0
Capabilities:
Get file attributes
Inspect section memory permissions

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x158
lea r14, [0x210273880]
mov ebp, dword [rsp + 0x1c0]
mov r13, rcx
mov rdi, rdx
mov esi, r8d
mov r12d, r9d
test byte [0x210273880], 1
jne 0x2100e35e0
mov ebx, dword [0x21034b048]
xor edx, edx
mov rax, qword [rsp + 0x1c8]
mov qword [0x2103184f8], 0xffffffffffffffff
mov dword [0x2103184f0], 0xe0000000
div rbx
test rdx, rdx
jne 0x2100e36a0
test r8d, 0xfffffff8
jne 0x2100e36a0
mov eax, r12d
and eax, 0xf
sub eax, 1
cmp eax, 1
ja 0x2100e3660
test r12b, 0x10
je 0x2100e3391
mov rax, r13
xor edx, edx
div rbx
test rdx, rdx
jne 0x2100e3660
test rdi, rdi
je 0x2100e3660
mov rax, r13
xor edx, edx
div rbx
imul rax, rbx
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x50], rax
test r12b, 0x20
jne 0x2100e33bf
cmp ebp, 0xffffffff
jne 0x2100e3770
lea rax, [rbx + rdi - 1]
mov rdi, rbx
mov r11d, r12d
neg rdi
or r11d, 0x20
and rdi, rax
test r12d, 0x4000
jne 0x2100e39d0
xor r10d, r10d
lea r15, [0x2103184e0]
mov qword [rsp + 0x68], 0
mov ebp, 0xffffffff
mov qword [rsp + 0x1c8], 0
lea rdx, str.mmap_guard
lea rcx, [0x21024fc00]
mov qword [rsp + 0x60], r10
mov dword [rsp + 0x58], r11d
call method.muto.init_char_const_
mov edx, 0xffffffff
mov rcx, rax
call method.muto.acquire_unsigned_int_
mov r11d, dword [rsp + 0x58]
mov r10, qword [rsp + 0x60]
mov r12, qword [0x2103184c8]
test r12, r12
je 0x2100e346d
mov rax, qword [rsp + 0xd8]
nop dword [rax]
cmp ebp, 0xffffffff
je 0x2100e36e8
cmp qword [r12 + 0x20], rax
je 0x2100e3720
mov r12, qword [r12]
test r12, r12
jne 0x2100e3450
mov rax, qword [rsp + 0x68]
lea rcx, [rbx - 1]
neg rbx
mov qword [rsp + 0x60], rbx
add rax, rcx
mov qword [rsp + 0x78], rcx
and rax, rbx
mov rbx, rax
mov rax, qword [0x21034b1a0]
test byte [rax + 0x13], 1
jne 0x2100e34d8
mov r9d, r11d
mov r8, rdi
mov rdx, qword [rsp + 0x70]
mov qword [rsp + 0x68], r10
shr r9d, 4
test rbx, rbx
lea rcx, [0x2103186c0]
mov dword [rsp + 0x58], r11d
cmovne r8, rbx
and r9d, 1
call method.mmap_allocator.alloc_void__unsigned_long_long__bool_
mov r10, qword [rsp + 0x68]
mov r11d, dword [rsp + 0x58]
mov qword [rsp + 0x50], rax
mov dword [rsp + 0x30], ebp
mov r8, qword [rsp + 0x50]
mov r9, rdi
mov rdx, r15
lea rax, [rsp + 0xd0]
mov dword [rsp + 0x28], r11d
mov rcx, r12
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x1c8]
mov dword [rsp + 0x20], esi
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x58], r10
call sym.mmap_worker_mmap_list__fhandler_base__char__unsigned_long__int__int__int__long__stat_
mov r10, qword [rsp + 0x58]
test rax, rax
mov r13, rax
je 0x2100e3a40
test rbx, rbx
je 0x2100e3548
mov rax, qword [rsp + 0x78]
add rax, rdi
and rax, qword [rsp + 0x60]
cmp rbx, rax
jne 0x2100e3940
nop dword [rax + rax]
mov rax, qword gs:[0x30]
mov rdx, qword [rax + 8]
lea rcx, [0x21024fc00]
mov qword [rsp + 0x50], r10
sub rdx, 0x3200
call method.muto.release__cygtls_
mov r10, qword [rsp + 0x50]
test r10, r10
je 0x2100e36bf
lea r12, [method.fhandler_base.get_handle__]
mov rax, qword [r10]
mov rax, qword [rax + 0x280]
cmp rax, r12
jne 0x2100e3700
mov rcx, qword [r10 + 0x18]
call sym.NtClose
mov rax, qword [r15]
mov rcx, r15
call qword [rax + 0x20]
test byte [0x210273880], 1
je 0x2100e36cc
mov qword [rsp + 0x20], r13
lea r9, str._p__mmap__
mov edx, 0x10
mov rcx, r14
lea r8, str.void_mmap64_void__size_t__int__int__int__off_t_
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x2100e36cc
mov rax, qword [rsp + 0x1c8]
mov dword [rsp + 0x38], r9d
lea r9, str.addr__p__len__lu__prot__y__flags__y__fd__d__off__Y
mov dword [rsp + 0x30], r8d
lea r8, str.void_mmap64_void__size_t__int__int__int__off_t_
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x28], rdx
mov edx, 0x10
mov qword [rsp + 0x20], rcx
mov rcx, r14
mov dword [rsp + 0x40], ebp
call method.strace.prntf_unsigned_int__char_const__char_const__..._
mov ebx, dword [0x21034b048]
mov rax, qword [rsp + 0x1c8]
xor edx, edx
mov qword [0x2103184f8], 0xffffffffffffffff
div rbx
mov dword [0x2103184f0], 0xe0000000
test rdx, rdx
jne 0x2100e3660
test esi, 0xfffffff8
je 0x2100e3368
nop dword [rax]
test byte [0x210273880], 1
je 0x2100e36a0
mov dword [rsp + 0x30], 0x16
mov edx, 0x40
mov rcx, r14
lea rax, str.void_mmap64_void__size_t__int__int__int__off_t_
mov dword [rsp + 0x28], 0x35e
lea r9, [0x210299db5]
lea r8, [0x210299dd0]
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], 0x16
call sym.msys_2.0.dll___errno
mov dword [rax], 0x16
mov r13, 0xffffffffffffffff
test byte [0x210273880], 1
jne 0x2100e35b4
mov rax, r13
add rsp, 0x158
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
cmp dword [r12 + 0x18], 0xffffffff
je 0x2100e3720
mov r12, qword [r12]
test r12, r12
jne 0x2100e36e8
jmp 0x2100e346d
mov rcx, r10
call rax
mov rcx, qword [rax]
call sym.NtClose
mov rax, qword [r15]
mov rcx, r15
call qword [rax + 0x20]
jmp 0x2100e36bf
test r11b, 0x20
je 0x2100e346d
mov rdx, qword [rsp + 0x70]
mov r9d, r11d
mov r8, rdi
mov rcx, r12
mov rax, qword [rsp + 0x1c8]
mov qword [rsp + 0x60], r10
mov dword [rsp + 0x58], r11d
mov qword [rsp + 0x20], rax
call method.mmap_list.try_map_void__unsigned_long__int__long_
mov r11d, dword [rsp + 0x58]
mov r10, qword [rsp + 0x60]
test rax, rax
mov r13, rax
jne 0x2100e3548
jmp 0x2100e346d
test ebp, ebp
js 0x2100e3a10
mov rax, qword [0x21023d810]
cmp ebp, dword [rax + 0x4928]
jge 0x2100e3a10
mov rax, qword [rax + 0x4900]
movsxd rdx, ebp
mov r13, qword [rax + rdx*8]
test r13, r13
je 0x2100e3a10
lea r10, [r13 + 0x28]
lock add dword [r13 + 0x28], 1
mov rax, qword [0x21023d810]
mov rax, qword [rax + 0x4900]
mov r15, qword [rax + rdx*8]
test byte [r15 + 0x2f], 2
jne 0x2100e3c38
cmp dword [r15 + 0x1b0], 0x10005
je 0x2100e3c0c
cmp rdi, rbx
jne 0x2100e3bc8
cmp esi, 3
jne 0x2100e3bc8
cmp r12d, 1
jne 0x2100e3bc8
cmp qword [rsp + 0x1c8], 0
jne 0x2100e3bc8
lea rcx, [r15 + 0x80]
xor edx, edx
mov qword [rsp + 0x58], r10
call method.path_conv.get_nt_native_path__UNICODE_STRING_
mov r10, qword [rsp + 0x58]
mov rdx, rax
movzx eax, word [rax]
mov rcx, qword [rdx + 8]
shr ax, 1
jmp 0x2100e3845
lea edx, [rax - 1]
movzx r8d, dx
cmp word [rcx + r8*2], 0x5c
je 0x2100e3d90
mov eax, edx
test ax, ax
jne 0x2100e3830
mov eax, 2
add rcx, rax
lea rdx, str.conftest.txt
mov qword [rsp + 0x58], r10
call sym.msys_2.0.dll_wcscmp
mov r10, qword [rsp + 0x58]
test eax, eax
jne 0x2100e38cd
mov rax, qword [r15]
lea r12, [method.fhandler_base.get_handle__]
mov rax, qword [rax + 0x280]
cmp rax, r12
jne 0x2100e3ed7
lea rax, [r15 + 0x18]
mov dword [rsp + 0x20], 5
mov rcx, qword [rax]
lea rdx, [rsp + 0xa0]
mov r9d, 0x18
lea r8, [rsp + 0xd0]
mov qword [rsp + 0x58], r10
call sym.NtQueryInformationFile
mov r10, qword [rsp + 0x58]
test eax, eax
js 0x2100e38cd
cmp qword [rsp + 0xd8], 1
je 0x2100e3ecc
mov r11d, 1
mov eax, 0xffffffff
lock xadd dword [r10], eax
sub eax, 1
test eax, eax
jg 0x2100e38f8
mov rax, qword [r13]
mov dword [rsp + 0x58], r11d
mov rcx, r13
call qword [rax + 0x20]
mov r11d, dword [rsp + 0x58]
cmp dword [r15 + 0x1b0], 0xc3
je 0x2100e3a4c
mov qword [rsp + 0x68], 0
xor r10d, r10d
test r11d, 0x4000
je 0x2100e3405
test r11b, 0x20
jne 0x2100e3f31
and r11d, 0xffffbfff
jmp 0x2100e3405
mov qword [rsp + 0x40], 0
sub rbx, rax
xor ecx, ecx
lea r8, [r13 + rax]
mov qword [rsp + 0x38], 0
mov r9, rbx
lea rdx, [0x2103184e0]
mov dword [rsp + 0x30], 0xffffffff
mov dword [rsp + 0x28], 0x4030
mov dword [rsp + 0x20], 0x8000003
mov qword [rsp + 0x50], r10
call sym.mmap_worker_mmap_list__fhandler_base__char__unsigned_long__int__int__int__long__stat_
mov r10, qword [rsp + 0x50]
test rax, rax
jne 0x2100e3548
test byte [0x210273880], 1
je 0x2100e3548
lea r9, str.Warning:_Mapping_beyond_EOF_failed___E
lea r8, str.void_mmap64_void__size_t__int__int__int__off_t_
mov edx, 0x40
mov rcx, r14
call method.strace.prntf_unsigned_int__char_const__char_const__..._
mov r10, qword [rsp + 0x50]
jmp 0x2100e3548
mov qword [rsp + 0x68], 0
and r12d, 2
xor r10d, r10d
mov ebp, 0xffffffff
mov qword [rsp + 0x1c8], 0
lea r15, [0x2103184e0]
test r12d, r12d
je 0x2100e392c
jmp 0x2100e3405
test byte [0x210273880], 1
jne 0x2100e3bd0
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
jmp 0x2100e36b8
mov r13, 0xffffffffffffffff
jmp 0x2100e3548
mov eax, dword [r15 + 0x10]
test eax, eax
jns 0x2100e3c8b
test sil, 2
je 0x2100e3a71
mov edx, r11d
and eax, 0x40000000
and edx, 2
or edx, eax
je 0x2100e3c8b
mov rax, qword [r15]
lea r12, [method.fhandler_base.get_handle__]
mov dword [rsp + 0xa0], 0x30
mov rax, qword [rax + 0x280]
cmp rax, r12
jne 0x2100e3d42
lea rax, [r15 + 0x18]
mov rax, qword [rax]
lea rcx, [rsp + 0x88]
lea r9, [rsp + 0x90]
mov dword [rsp + 0x58], r11d
lea r8, [rsp + 0xa0]
mov qword [rsp + 0xa8], rax
mov eax, dword [r15 + 0x84]
mov qword [rsp + 0xc0], 0
mov dword [rsp + 0xb8], eax
mov edx, dword [r15 + 0x10]
lea rax, [0x210298360]
mov dword [rsp + 0x28], 0x4020
mov dword [rsp + 0x20], 7
or edx, 0x20100000
mov qword [rsp + 0xb0], rax
mov qword [rsp + 0xc8], 0
call sym.NtOpenFile
mov r11d, dword [rsp + 0x58]
test eax, eax
jns 0x2100e3cbc
xor r10d, r10d
test sil, 4
jne 0x2100e3e7a
lea rdx, [rsp + 0xd0]
mov rcx, r15
mov qword [rsp + 0x60], r10
mov dword [rsp + 0x58], r11d
call method.fhandler_base.fstat_fs_stat_
mov r11d, dword [rsp + 0x58]
mov r10, qword [rsp + 0x60]
test eax, eax
jne 0x2100e3d56
mov edx, r11d
mov rax, qword [rsp + 0xf8]
and edx, 0x8000
cmp qword [rsp + 0x1c8], rax
jl 0x2100e3d1c
test edx, edx
je 0x2100e3e33
sub rax, qword [rsp + 0x1c8]
cmp rdi, rax
jle 0x2100e3b9b
test byte [r15 + 0x13], 0x40
je 0x2100e3e9c
mov rdx, qword [rsp + 0x1c8]
mov ecx, r11d
and r11d, 0xffff7fff
mov qword [rsp + 0x68], 0
add rdx, rdi
cmp rdx, rax
cmovle ecx, r11d
mov r11d, ecx
jmp 0x2100e3915
mov r11d, r12d
jmp 0x2100e38d3
mov dword [rsp + 0x30], 9
mov edx, 0x40
mov rcx, r14
lea rax, [0x210299f38]
mov dword [rsp + 0x28], 0x2a8
lea r9, [0x210299db5]
lea r8, [0x210299dd0]
mov qword [rsp + 0x20], rax
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x2100e3a1d
or r12d, 0x20
mov eax, 0xffffffff
lock xadd dword [r10], eax
sub eax, 1
test eax, eax
jg 0x2100e33bf
mov rax, qword [r13]
mov rcx, r13
call qword [rax + 0x20]
jmp 0x2100e33bf
test byte [0x210273880], 1
jne 0x2100e3d9b
mov rax, qword [sym.msys_2.0.dll__impure_ptr]
mov qword [rsp + 0x50], r10
mov dword [rax], 9
call sym.msys_2.0.dll___errno
mov r10, qword [rsp + 0x50]
mov dword [rax], 9
mov eax, 0xffffffff
lock xadd dword [r10], eax
sub eax, 1
test eax, eax
jg 0x2100e36b8
mov rax, qword [r13]
mov rcx, r13
call qword [rax + 0x20]
jmp 0x2100e36b8
test byte [0x210273880], 1
jne 0x2100e3de1
mov rax, qword [sym.msys_2.0.dll__impure_ptr]
mov r13, 0xffffffffffffffff
mov dword [rax], 0xd
call sym.msys_2.0.dll___errno
mov dword [rax], 0xd
jmp 0x2100e36bf
mov r8d, 0x1e0
mov edx, 1
xor ecx, ecx
mov dword [rsp + 0x60], r11d
call sym.ccalloc
mov rcx, rax
mov qword [rsp + 0x58], rax
call method.fhandler_disk_file.fhandler_disk_file__
mov rcx, qword [rsp + 0x58]
lea rdx, [r15 + 0x80]
call method.fhandler_base.set_name_path_conv_
mov r10, qword [rsp + 0x58]
mov r11d, dword [rsp + 0x60]
mov rax, qword [rsp + 0x88]
mov qword [r10 + 0x18], rax
mov eax, dword [r15 + 0x10]
mov r15, r10
or eax, 0x20000000
mov dword [r10 + 0x10], eax
jmp 0x2100e3b30
sub rax, qword [rsp + 0x1c8]
cmp rdi, rax
jle 0x2100e3e1d
test edx, edx
jne 0x2100e3b90
mov qword [rsp + 0x68], rdi
mov rdi, rax
jmp 0x2100e3915
mov dword [rsp + 0x58], r11d
mov rcx, r15
call rax
mov r11d, dword [rsp + 0x58]
jmp 0x2100e3a9a
mov qword [rsp + 0x50], r10
call sym.GetLastError
mov edx, 0x3db
lea rcx, str._usr_src_MSYS2_packages_msys2_runtime_src_msys2_runtime_winsup_cygwin_mmap.cc
mov r8d, eax
call sym.seterrno_from_win_error_char_const__int__unsigned_int_
mov r10, qword [rsp + 0x50]
mov r13, 0xffffffffffffffff
test r10, r10
jne 0x2100e3582
jmp 0x2100e36bf
movzx eax, ax
add rax, rax
jmp 0x2100e384f
mov dword [rsp + 0x30], 9
mov edx, 0x40
mov rcx, r14
lea rax, str.void_mmap64_void__size_t__int__int__int__off_t_
mov dword [rsp + 0x28], 0x375
lea r9, [0x210299db5]
lea r8, [0x210299dd0]
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x50], r10
call method.strace.prntf_unsigned_int__char_const__char_const__..._
mov r10, qword [rsp + 0x50]
jmp 0x2100e3c45
mov dword [rsp + 0x30], 0xd
mov dword [rsp + 0x28], 0x3b5
lea rax, str.void_mmap64_void__size_t__int__int__int__off_t_
lea r9, [0x210299db5]
mov edx, 0x40
mov rcx, r14
mov qword [rsp + 0x20], rax
lea r8, [0x210299dd0]
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x2100e3c98
mov qword [rsp + 0x68], 0
test edx, edx
je 0x2100e3915
jmp 0x2100e3b9b
lea rax, [rbx + rdi - 1]
mov rdi, rbx
mov qword [rsp + 0x68], 0
lea r15, [0x2103184e0]
neg rdi
mov ebp, 0xffffffff
mov esi, 0x8000003
mov qword [rsp + 0x1c8], 0
and rdi, rax
mov eax, r11d
and eax, 0x10
or eax, 0x4022
mov r11d, eax
jmp 0x2100e3405
test byte [0x210273880], 1
je 0x2100e3c98
mov dword [rsp + 0x30], 0xd
mov dword [rsp + 0x28], 0x3d5
jmp 0x2100e3df1
test byte [0x210273880], 1
jne 0x2100e3eeb
mov rax, qword [sym.msys_2.0.dll__impure_ptr]
mov qword [rsp + 0x50], r10
mov dword [rax], 0x16
call sym.msys_2.0.dll___errno
mov r10, qword [rsp + 0x50]
mov dword [rax], 0x16
jmp 0x2100e3d79
mov r12d, 0x21
jmp 0x2100e3c10
mov qword [rsp + 0x58], r10
mov rcx, r15
call rax
mov r10, qword [rsp + 0x58]
jmp 0x2100e388a
mov dword [rsp + 0x30], 0x16
mov edx, 0x40
mov rcx, r14
lea rax, str.void_mmap64_void__size_t__int__int__int__off_t_
mov dword [rsp + 0x28], 0x3fe
lea r9, [0x210299db5]
lea r8, [0x210299dd0]
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x50], r10
call method.strace.prntf_unsigned_int__char_const__char_const__..._
mov r10, qword [rsp + 0x50]
jmp 0x2100e3ea5
mov r12d, r11d
and r12d, 2
jmp 0x2100e39f8