Function at 0x6105a710
Capabilities:
Get file size
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x1ec
mov ebx, dword [ebp + 0x14]
test byte [0x6110a820], 1
mov esi, dword [ebp + 0x1c]
mov edi, dword [ebp + 0x20]
jne 0x6105a950
mov eax, 0xffffffff
xor ecx, ecx
mov dword [ebp - 0x190], eax
xor eax, eax
mov dword [ebp - 0x198], ecx
mov dword [ebp - 0x194], eax
call sym._getpagesize_1
mov dword [ebp - 0x19c], eax
mov eax, 0xe0000000
mov edx, 0xffffffff
mov dword [0x611443d4], eax
xor eax, eax
mov ecx, str.mmap
mov dword [0x611443d8], edx
mov edx, 3
mov dword [0x61144238], eax
mov eax, 1
call sym._SetResourceLock
mov eax, dword [ebp - 0x19c]
mov dword [esp + 8], eax
mov dword [esp], esi
xor eax, eax
mov dword [esp + 0xc], eax
mov dword [esp + 4], edi
call sym.___moddi3
mov ecx, edx
or ecx, eax
jne 0x6105a7b3
test dword [ebp + 0x10], 0xfffffff8
je 0x6105a813
test byte [0x6110a820], 1
jne 0x6105aa52
call sym.cygwin1.dll___errno
mov edx, dword [sym.cygwin1.dll__impure_ptr]
mov dword [edx], 0x16
mov dword [eax], 0x16
mov eax, 1
mov ecx, str.mmap
mov edx, 3
call sym._ReleaseResourceLock
mov eax, dword [0x61144238]
test eax, eax
jne 0x6105aa42
test byte [0x6110a820], 1
jne 0x6105aa03
mov eax, dword [ebp - 0x190]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, ebx
and eax, 0xf
dec eax
cmp eax, 1
mov eax, dword [ebp + 0xc]
seta dl
test eax, eax
sete al
or dl, al
jne 0x6105a7b3
mov eax, dword [0x611630ec]
test byte [eax + 0x12], 0x40
jne 0x6105ac27
mov edx, dword [ebp - 0x19c]
test bl, 0x10
je 0x6105a856
mov eax, dword [ebp + 8]
mov ecx, edx
xor edx, edx
div ecx
test edx, edx
jne 0x6105ad15
test bl, 0x20
jne 0x6105a8f0
cmp dword [ebp + 0x18], 0xffffffff
je 0x6105a8f0
mov dword [ebp - 0x20], 0
mov eax, dword [ebp + 0x18]
test eax, eax
js 0x6105ac5e
mov edx, dword [0x61104ec4]
mov eax, dword [ebp + 0x18]
cmp dword [edx + 0x1b0], eax
jle 0x6105ac5e
mov ecx, dword [edx + 0x198]
shl eax, 2
add eax, ecx
mov dword [ebp - 0x20], eax
mov eax, dword [eax]
test eax, eax
je 0x6105ac5e
mov byte [ebp - 0x1c], 0
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0x24], eax
test eax, eax
js 0x6105b047
mov eax, dword [ebp - 0x20]
mov eax, dword [eax]
cmp dword [eax + 0x70], 0x10005
mov dword [ebp - 0x194], eax
je 0x6105ae20
cmp byte [ebp - 0x1c], 0
mov dword [ebp - 0x28], 0x6113c1f0
je 0x6105a8f0
mov eax, 0x61105560
call method.muto.release__
lea esi, [esi]
test bl, 0x20
jne 0x6105aa99
cmp dword [ebp + 0x18], 0xffffffff
je 0x6105aa99
mov edx, dword [ebp - 0x194]
cmp dword [edx + 0x70], 0xf7
jne 0x6105aacc
mov ecx, dword [ebp - 0x194]
mov edx, dword [ecx + 0xc]
test edx, edx
js 0x6105ae79
test byte [0x6110a820], 1
jne 0x6105b0b0
call sym.cygwin1.dll___errno
mov edx, dword [sym.cygwin1.dll__impure_ptr]
mov dword [edx], 0xd
mov dword [eax], 0xd
jmp 0x6105a7d7
mov dword [esp + 0x24], esi
mov dword [esp + 0x28], edi
mov eax, dword [ebp + 0x18]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], eax
mov edx, dword [ebp + 0x10]
mov dword [esp + 0x18], edx
mov ecx, dword [ebp + 0xc]
mov dword [esp + 0x14], ecx
mov eax, dword [ebp + 8]
mov dword [esp], 0x6110a820
mov dword [esp + 0x10], eax
mov eax, str.addr__x__len__u__prot__x__flags__x__fd__d__off__D
mov dword [esp + 0xc], eax
mov eax, str.void_mmap64_void__size_t__int__int__int___off64_t_
mov dword [esp + 8], eax
mov eax, 0x10
mov dword [esp + 4], eax
call method.strace.prntf_unsigned_int__char_const__char_const__..._
xor ecx, ecx
xor edx, edx
mov eax, 0xffffffff
mov dword [ebp - 0x194], ecx
mov dword [ebp - 0x198], edx
mov dword [ebp - 0x190], eax
call sym._getpagesize_1
mov dword [ebp - 0x19c], eax
mov eax, 0xffffffff
mov edx, 3
mov dword [0x611443d8], eax
mov eax, 0xe0000000
mov ecx, str.mmap
mov dword [0x611443d4], eax
xor eax, eax
mov dword [0x61144238], eax
mov eax, 1
call sym._SetResourceLock
mov edx, dword [ebp - 0x19c]
mov dword [esp + 8], edx
jmp 0x6105a792
mov edx, dword [ebp - 0x190]
mov eax, str._p__mmap__
mov dword [esp + 0xc], eax
mov eax, str.void_mmap64_void__size_t__int__int__int___off64_t_
mov dword [esp + 8], eax
mov eax, 0x10
mov dword [esp + 4], eax
mov dword [esp + 0x10], edx
mov dword [esp], 0x6110a820
call method.strace.prntf_unsigned_int__char_const__char_const__..._
mov eax, dword [ebp - 0x190]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp], eax
call sub.KERNEL32.dll_CloseHandle
sub esp, 4
jmp 0x6105a7f8
mov eax, 0x16
mov edi, 0x3f2
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], edi
mov dword [esp], 0x6110a820
mov esi, str.void_mmap64_void__size_t__int__int__int___off64_t_
mov ebx, 0x611251b3
mov dword [esp + 0x10], esi
mov ecx, 0x61125170
mov edx, 0x40
mov dword [esp + 0xc], ebx
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x6105a7c0
mov dword [ebp + 0x18], 0xffffffff
mov eax, 0x611443c8
mov ecx, dword [ebp - 0x19c]
mov dword [ebp - 0x194], eax
mov eax, dword [ebp + 0xc]
or ebx, 0x20
lea ecx, [ecx + eax - 1]
mov eax, dword [ebp - 0x19c]
neg eax
and ecx, eax
mov dword [ebp + 0xc], ecx
xor esi, esi
xor edi, edi
test bh, 0x40
je 0x6105aaf0
test bl, 0x20
je 0x6105ac33
test bl, 2
je 0x6105ac33
lea esi, [esi]
lea edi, [edi]
mov ecx, dword [ebp + 0x18]
mov dword [esp], 0x61144568
mov dword [esp + 4], ecx
call method.map.get_list_by_fd_int_
test eax, eax
je 0x6105ab10
test bl, 0x20
jne 0x6105ace0
mov eax, dword [0x611630ec]
test byte [eax + 0x12], 0x40
je 0x6105ab53
test bl, 0x10
je 0x6105ab53
xor edx, edx
mov eax, dword [ebp + 8]
div dword [ebp - 0x19c]
test edx, edx
je 0x6105ab53
test byte [0x6110a820], 1
je 0x6105a7c0
mov eax, 0x16
mov dword [esp + 0x18], eax
mov eax, 0x4b2
mov dword [esp + 0x14], eax
jmp 0x6105aa64
mov eax, dword [ebp - 0x198]
test eax, eax
je 0x6105abda
mov edx, dword [ebp - 0x198]
mov ecx, 0x102000
mov eax, dword [ebp - 0x19c]
lea edx, [eax + edx - 1]
neg eax
and edx, eax
mov dword [ebp - 0x198], edx
mov eax, 4
mov dword [esp + 0xc], eax
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov ecx, dword [ebp + 8]
mov dword [esp], ecx
call sub.KERNEL32.dll_VirtualAlloc
mov dword [ebp - 0x1ac], eax
sub esp, 0x10
test eax, eax
je 0x6105ac3e
xor eax, eax
mov edx, 0x8000
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x1ac]
mov dword [esp], eax
call sub.KERNEL32.dll_VirtualFree
sub esp, 0xc
test eax, eax
je 0x6105ae6f
mov edx, dword [ebp - 0x1ac]
mov dword [ebp + 8], edx
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], edi
mov ecx, dword [ebp + 0x18]
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
mov eax, dword [ebp + 0x10]
mov dword [esp], eax
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x194]
call sym.mmap_worker_fhandler_base__char__unsigned_int__int__int__int__long_long_
test eax, eax
mov esi, eax
je 0x6105a7d7
mov eax, dword [ebp - 0x198]
test eax, eax
jne 0x6105ad39
mov dword [ebp - 0x190], esi
jmp 0x6105a7d7
call sym.getsystempagesize__
mov edx, eax
jmp 0x6105a840
and ebx, 0xffffbfff
jmp 0x6105aaf0
mov eax, dword [ebp + 8]
test eax, eax
je 0x6105ac4a
test bl, 0x10
je 0x6105ac9c
mov edx, 0x4c9
mov eax, str._ext_build_netrel_src_cygwin_1.5.24_2_winsup_cygwin_mmap.cc
call sym.__Z8seterrnoPKci_8
jmp 0x6105a7d7
mov dword [ebp - 0x28], sym.cygheap_fdget::cygheap_fdget__
mov dword [ebp - 0x24], 0xffffffff
test byte [0x6110a820], 1
jne 0x6105ae28
call sym.cygwin1.dll___errno
mov byte [ebp - 0x1c], 0
mov edx, dword [sym.cygwin1.dll__impure_ptr]
mov dword [edx], 9
mov dword [eax], 9
mov eax, dword [ebp - 0x24]
jmp 0x6105a8b2
mov eax, 4
mov ecx, 0x102000
mov dword [esp + 0xc], eax
mov dword [esp + 8], ecx
mov eax, dword [ebp - 0x198]
mov dword [esp], 0
mov dword [esp + 4], eax
call sub.KERNEL32.dll_VirtualAlloc
mov dword [ebp - 0x1ac], eax
sub esp, 0x10
test eax, eax
jne 0x6105aba9
jmp 0x6105ac4a
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], edi
mov dword [esp + 0xc], ebx
mov edx, dword [ebp + 0xc]
mov dword [esp + 8], edx
mov ecx, dword [ebp + 8]
mov dword [esp], eax
mov dword [esp + 4], ecx
call method.list.try_map_void__unsigned_int__int__long_long_
test eax, eax
je 0x6105ab10
mov dword [ebp - 0x190], eax
jmp 0x6105a7d7
test byte [0x6110a820], 1
je 0x6105a7c0
mov eax, 0x16
mov dword [esp + 0x18], eax
mov eax, 0x401
mov dword [esp + 0x14], eax
jmp 0x6105aa64
call sym.getsystempagesize__
mov edx, dword [ebp + 0xc]
lea edx, [eax + edx - 1]
mov dword [ebp + 0xc], edx
call sym.getsystempagesize__
neg eax
and dword [ebp + 0xc], eax
mov ecx, dword [ebp + 0xc]
cmp dword [ebp - 0x198], ecx
je 0x6105ac1c
sub dword [ebp - 0x198], ecx
xor edx, edx
mov eax, dword [ebp - 0x198]
div dword [ebp - 0x19c]
mov ecx, dword [ebp - 0x198]
mov edi, edx
sub ecx, edx
mov edx, dword [ebp + 0xc]
test edi, edi
mov dword [ebp - 0x1b0], ecx
lea eax, [esi + edx]
jne 0x6105b067
mov edx, dword [ebp - 0x1b0]
test edx, edx
je 0x6105ac1c
mov dword [esp], 0x8000003
xor edi, edi
xor ebx, ebx
mov dword [esp + 0xc], edi
mov ecx, 0xffffffff
mov edx, 0x4030
mov dword [esp + 4], edx
mov edx, eax
mov eax, 0x611443c8
mov dword [esp + 0x10], ebx
mov dword [esp + 8], ecx
mov ecx, dword [ebp - 0x1b0]
call sym.mmap_worker_fhandler_base__char__unsigned_int__int__int__int__long_long_
test eax, eax
jne 0x6105ac1c
test byte [0x6110a820], 1
je 0x6105ac1c
mov dword [esp], 0x6110a820
mov edi, str.Warning:_Mapping_beyond_EOF_failed___E
mov ebx, str.void_mmap64_void__size_t__int__int__int___off64_t_
mov dword [esp + 0xc], edi
mov ecx, 0x40
mov dword [esp + 8], ebx
mov dword [esp + 4], ecx
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x6105ac1c
or ebx, 0x20
jmp 0x6105a8d2
mov dword [esp], 0x6110a820
mov eax, 9
mov ecx, 0x61125170
mov dword [esp + 0x18], eax
mov eax, 0x18a
mov edx, 0x40
mov dword [esp + 0x14], eax
mov eax, 0x611252f0
mov dword [esp + 0x10], eax
mov eax, 0x611251b3
mov dword [esp + 0xc], eax
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x6105ac79
mov edx, 0x4cf
jmp 0x6105ac4f
test edx, 0x40000000
jne 0x6105ae90
test byte [ebp + 0x10], 2
je 0x6105ae90
test bl, 2
je 0x6105a927
mov eax, dword [0x611630ec]
test byte [eax + 0x10], 1
jne 0x6105aeac
test bl, 2
je 0x6105aeac
test edx, 0x40000000
je 0x6105b172
test byte [eax + 0x10], 1
je 0x6105af29
mov ecx, dword [ebp - 0x194]
mov eax, dword [eax + 0xc]
mov edx, dword [ecx + 0xc]
mov dword [esp + 0x18], 0
add ecx, 0x90
mov dword [esp + 0x14], 0
or edx, 0x20000000
mov dword [esp + 0x10], 3
mov dword [esp + 0xc], 0x61107420
mov dword [esp + 8], eax
mov dword [esp + 4], edx
mov dword [esp], ecx
call sub.KERNEL32.dll_CreateFileA
sub esp, 0x1c
cmp eax, 0xffffffff
je 0x6105b105
mov dword [0x61144238], eax
mov edx, dword [ebp - 0x194]
mov ecx, 0x61144228
mov dword [ebp - 0x194], ecx
mov eax, dword [edx + 0xc]
or eax, 0x20000000
mov dword [0x61144234], eax
mov ecx, dword [ebp - 0x194]
mov eax, dword [ecx]
mov dword [esp], ecx
call dword [eax + 0xe4]
lea edx, [ebp - 0x18c]
mov dword [esp + 4], edx
mov eax, dword [eax]
mov dword [esp], eax
call sub.KERNEL32.dll_GetFileSize
mov edx, dword [ebp - 0x18c]
sub esp, 8
mov ecx, edx
mov dword [ebp - 0x1a4], ecx
xor edx, edx
mov dword [ebp - 0x1a8], edx
xor edx, edx
add dword [ebp - 0x1a8], eax
adc dword [ebp - 0x1a4], edx
cmp edi, dword [ebp - 0x1a4]
jl 0x6105af90
jg 0x6105af87
cmp esi, dword [ebp - 0x1a8]
jb 0x6105af90
test bh, 0x80
je 0x6105b130
sub dword [ebp - 0x1a8], esi
mov eax, dword [0x611630ec]
sbb dword [ebp - 0x1a4], edi
test byte [eax + 0x12], 0x20
je 0x6105afe0
cmp byte [0x611630e8], 0
jne 0x6105afe0
xor edx, edx
mov eax, dword [ebp + 0xc]
cmp edx, dword [ebp - 0x1a4]
jl 0x6105afcc
jg 0x6105afc7
cmp eax, dword [ebp - 0x1a8]
jbe 0x6105afcc
test bh, 0x80
je 0x6105afd7
mov ecx, dword [ebp - 0x19c]
cmp dword [ebp + 0xc], ecx
jae 0x6105afe0
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x198], eax
xor edx, edx
mov eax, dword [ebp + 0xc]
cmp edx, dword [ebp - 0x1a4]
jl 0x6105b010
jg 0x6105aff7
cmp eax, dword [ebp - 0x1a8]
jbe 0x6105b010
test bh, 0x80
je 0x6105b0f7
mov edx, dword [ebp - 0x194]
test byte [edx + 0xf], 0x40
je 0x6105b26d
test bh, 0x80
je 0x6105aacc
mov eax, dword [ebp + 0xc]
xor edx, edx
add eax, esi
adc edx, edi
cmp edx, dword [ebp - 0x1a4]
jg 0x6105aacc
jl 0x6105b03c
cmp eax, dword [ebp - 0x1a8]
ja 0x6105aacc
and ebx, 0xffff7fff
jmp 0x6105aacc
cmp byte [ebp - 0x1c], 0
mov dword [ebp - 0x28], 0x6113c1f0
je 0x6105a7d7
mov eax, 0x61105560
call method.muto.release__
jmp 0x6105a7d7
or dword [ebp + 0x10], 0x4000000
xor edx, edx
and ebx, 3
mov dword [esp + 0xc], edx
xor ecx, ecx
or ebx, 0x30
mov dword [esp + 0x10], ecx
mov edx, 0xffffffff
mov dword [esp + 8], edx
mov edx, eax
mov eax, 0x611443c8
mov dword [esp + 4], ebx
mov ecx, dword [ebp + 0x10]
mov dword [esp], ecx
mov ecx, edi
call sym.mmap_worker_fhandler_base__char__unsigned_int__int__int__int__long_long_
test eax, eax
je 0x6105b291
add eax, edi
jmp 0x6105ad93
mov edx, 0xd
mov eax, 0x427
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], eax
mov edi, str.void_mmap64_void__size_t__int__int__int___off64_t_
mov esi, 0x611251b3
mov dword [esp + 0x10], edi
mov ebx, 0x61125170
mov ecx, 0x40
mov dword [esp + 0xc], esi
mov dword [esp + 8], ebx
mov dword [esp + 4], ecx
mov dword [esp], 0x6110a820
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x6105a934
mov ecx, dword [ebp - 0x1a8]
mov dword [ebp + 0xc], ecx
jmp 0x6105b010
test byte [ebp + 0x10], 4
je 0x6105af29
test byte [0x6110a820], 1
je 0x6105a934
mov eax, 0xd
mov dword [esp + 0x18], eax
mov eax, 0x454
jmp 0x6105b0be
mov dword [ebp + 0x10], 0x8000003
mov edx, 0x611443c8
mov eax, dword [ebp - 0x19c]
mov dword [ebp - 0x194], edx
mov edx, dword [ebp + 0xc]
and ebx, 0x10
mov dword [ebp + 0x18], 0xffffffff
or ebx, 0x4022
lea eax, [eax + edx - 1]
mov dword [ebp + 0xc], eax
mov eax, dword [ebp - 0x19c]
neg eax
and dword [ebp + 0xc], eax
jmp 0x6105aac8
mov ecx, dword [ebp - 0x194]
or edx, 0x40000000
mov eax, dword [eax + 0xc]
add ecx, 0x90
mov dword [ebp - 0x1a0], ecx
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 3
mov dword [esp + 0xc], 0x61107420
mov dword [esp + 8], eax
mov dword [esp + 4], edx
mov dword [esp], ecx
call sub.KERNEL32.dll_CreateFileA
sub esp, 0x1c
cmp eax, 0xffffffff
je 0x6105b331
mov dword [0x61144238], eax
mov edx, dword [ebp - 0x194]
xor ecx, ecx
mov eax, dword [edx + 0xc]
xor edx, edx
mov dword [ebp - 0x144], edx
or eax, 0x40000000
mov dword [0x61144234], eax
mov eax, 0xffffffff
mov dword [ebp - 0x188], eax
xor eax, eax
mov dword [ebp - 0x168], eax
xor eax, eax
mov dword [ebp - 0x164], eax
mov eax, 0x6112538b
mov dword [ebp - 0x160], ecx
mov byte [ebp - 0x138], 0
mov dword [esp + 8], eax
mov ecx, dword [ebp - 0x1a0]
lea eax, [ebp - 0x188]
mov dword [esp], eax
mov dword [esp + 4], ecx
call method.path_conv.set_name_char_const__char_const_
mov dword [esp], 0x61144228
lea edx, [ebp - 0x188]
mov dword [esp + 4], edx
call method.fhandler_base.set_name_path_conv_
mov eax, 0x61144228
lea ecx, [ebp - 0x188]
mov dword [ebp - 0x194], eax
mov dword [esp], ecx
call sym.path_conv::path_conv__
mov eax, dword [0x611630ec]
jmp 0x6105aeac
test byte [0x6110a820], 1
je 0x6105a7c0
mov eax, 0x16
mov dword [esp + 0x18], eax
mov eax, 0x487
mov dword [esp + 0x14], eax
jmp 0x6105aa64
mov edx, dword [ebp - 0x194]
mov eax, dword [edx]
mov dword [esp], edx
call dword [eax + 0xe4]
mov ecx, dword [ebp - 0x194]
mov edx, dword [ecx]
mov ecx, dword [ebp + 0xc]
mov dword [esp + 8], esi
mov dword [esp + 0xc], ecx
mov eax, dword [eax]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x194]
mov dword [esp], eax
call dword [edx + 0x90]
test byte [0x6110a820], 1
je 0x6105b315
mov dword [esp], 0x6110a820
mov eax, 0xc
mov edi, 0x4fa
mov dword [esp + 0x18], eax
mov esi, str.void_mmap64_void__size_t__int__int__int___off64_t_
mov ebx, 0x611251b3
mov dword [esp + 0x14], edi
mov ecx, 0x61125170
mov edx, 0x40
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], ebx
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
call method.strace.prntf_unsigned_int__char_const__char_const__..._
call sym.cygwin1.dll___errno
mov edx, dword [sym.cygwin1.dll__impure_ptr]
mov dword [edx], 0xc
mov dword [eax], 0xc
jmp 0x6105a7d7
test byte [0x6110a820], 1
je 0x6105a934
mov eax, 0xd
mov dword [esp + 0x18], eax
mov eax, 0x436
jmp 0x6105b0be