Function at 0x21008ebc0
Capabilities:
Get file attributes

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x78
mov rsi, qword [r8]
mov qword [rsp + 0xd0], r8
mov rbx, rcx
mov r12, rdx
mov dword [rsp + 0x4c], 0
test byte [rcx + 0x208], 1
je 0x21008ebff
test byte [rcx + 0x1f0], 1
je 0x21008eec0
cmp qword [rbx + 0x1d8], 0
je 0x21008eef8
test rsi, rsi
je 0x21008ec7f
lea r13, [0x210273880]
lea rbp, [method.fhandler_base.get_handle__]
mov edx, dword [rbx + 0x1e8]
mov eax, dword [rbx + 0x1ec]
cmp edx, eax
jae 0x21008eca0
sub eax, edx
mov edi, eax
cmp rdi, rsi
cmova rdi, rsi
test byte [r13], 1
jne 0x21008ee90
add rdx, qword [rbx + 0x1d8]
mov r8, rdi
mov rcx, r12
call sym.msys_2.0.dll_memcpy
mov eax, dword [rsp + 0x4c]
sub rsi, rdi
add dword [rbx + 0x1e8], edi
add eax, edi
mov dword [rsp + 0x4c], eax
test byte [rbx + 0x1f0], 1
jne 0x21008efcb
test rsi, rsi
jne 0x21008ec9b
mov esi, eax
mov rax, qword [rsp + 0xd0]
mov qword [rax], rsi
add rsp, 0x78
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
add r12, rdi
nop
mov r14d, dword [rbx + 0x1e4]
mov r15, r14
cmp r14, rsi
ja 0x21008ee18
mov ecx, dword [rbx + 0x1e0]
mov rax, rsi
xor edx, edx
mov rdi, r12
mov qword [rsp + 0x58], 0
div rcx
mov r10, rcx
imul r10d, eax
mov rax, qword [rbx]
mov rax, qword [rax + 0x280]
mov r14d, r10d
mov r15, r14
cmp rax, rbp
jne 0x21008ee3b
mov rcx, qword [rbx + 0x18]
lea rdx, [rsp + 0x60]
lea r8, [rsp + 0x58]
mov dword [rsp + 0x20], 0xe
mov r9d, 8
call sym.NtQueryInformationFile
mov rax, qword [rsp + 0x58]
mov rdx, qword [rbx + 0x1f8]
lea r11, [r14 + rax]
cmp r11, rdx
jl 0x21008ee08
mov r15d, edx
sub r15d, eax
je 0x21008edf8
test byte [r13], 1
je 0x21008ed7d
mov edx, dword [rbx + 0x1e4]
lea rcx, str.directly
cmp rdx, rsi
jbe 0x21008ed53
lea rcx, str.into_buffer
mov qword [rsp + 0x30], rcx
mov edx, 0x40
mov rcx, r13
lea r9, str.read__u_bytes_from_pos__U__s
mov qword [rsp + 0x28], rax
lea r8, str.virtual_void_fhandler_dev_floppy::raw_read_void__size_t_
mov dword [rsp + 0x20], r15d
call method.strace.prntf_unsigned_int__char_const__char_const__..._
lea rax, [rsp + 0x54]
lea r9, [rsp + 0x50]
mov r8d, r15d
mov rdx, rdi
mov qword [rsp + 0x20], rax
mov rcx, rbx
call method.fhandler_dev_floppy.read_file_void__unsigned_int__unsigned_int__int_
test eax, eax
jne 0x21008ee60
mov eax, dword [rsp + 0x54]
mov edx, eax
and edx, 0xfffffffd
cmp edx, 0x19
je 0x21008edb9
cmp eax, 0x57
jne 0x21008f0c9
mov eax, dword [rsp + 0x50]
or byte [rbx + 0x208], 1
test eax, eax
je 0x21008efd9
or byte [rbx + 0x1f0], 1
cmp qword [rbx + 0x1d8], rdi
je 0x21008ee75
mov edx, eax
add dword [rsp + 0x4c], eax
add r12, rdx
sub rsi, rdx
jne 0x21008ec20
nop word [rax + rax]
mov esi, dword [rsp + 0x4c]
jmp 0x21008ec7f
test r15d, r15d
jne 0x21008ed33
jmp 0x21008edf8
mov rax, qword [rbx]
mov rdi, qword [rbx + 0x1d8]
mov qword [rsp + 0x58], 0
mov rax, qword [rax + 0x280]
cmp rax, rbp
je 0x21008eced
mov rcx, rbx
call rax
mov dword [rsp + 0x20], 0xe
lea rdx, [rsp + 0x60]
mov r9d, 8
mov rcx, qword [rax]
lea r8, [rsp + 0x58]
jmp 0x21008ed09
mov eax, dword [rsp + 0x50]
test eax, eax
je 0x21008edf8
cmp qword [rbx + 0x1d8], rdi
jne 0x21008ede0
mov dword [rbx + 0x1e8], 0
mov dword [rbx + 0x1ec], eax
jmp 0x21008ec20
sub eax, edi
mov dword [rsp + 0x20], edi
mov edx, 0x40
mov rcx, r13
mov dword [rsp + 0x28], eax
lea r9, str.read__u_bytes_from_buffer__rest__u_
lea r8, str.virtual_void_fhandler_dev_floppy::raw_read_void__size_t_
call method.strace.prntf_unsigned_int__char_const__char_const__..._
mov edx, dword [rbx + 0x1e8]
jmp 0x21008ec46
test byte [0x210273880], 1
jne 0x21008f07f
mov rax, qword [sym.msys_2.0.dll__impure_ptr]
mov dword [rax], 0x1c
call sym.msys_2.0.dll___errno
mov dword [rax], 0x1c
mov rsi, 0xffffffffffffffff
jmp 0x21008ec7f
mov rax, qword [rbx]
lea rdx, [method.fhandler_base.get_handle__]
mov qword [rsp + 0x58], 0
mov rax, qword [rax + 0x280]
cmp rax, rdx
jne 0x21008f0bf
lea rax, [rbx + 0x18]
lea rdx, [rsp + 0x60]
mov dword [rsp + 0x20], 0xe
mov rcx, qword [rax]
lea r8, [rsp + 0x58]
mov r9d, 8
lea r13, [0x210273880]
call sym.NtQueryInformationFile
mov rcx, qword [rsp + 0x58]
mov r8, qword [rbx + 0x1f8]
mov edx, esi
add rdx, rcx
mov eax, r8d
sub eax, ecx
cmp rdx, r8
cmovge esi, eax
test byte [0x210273880], 1
jne 0x21008f056
test esi, esi
je 0x21008edf8
lea rax, [rsp + 0x54]
lea r9, [rsp + 0x4c]
mov r8d, esi
mov rdx, r12
mov qword [rsp + 0x20], rax
mov rcx, rbx
call method.fhandler_dev_floppy.read_file_void__unsigned_int__unsigned_int__int_
test eax, eax
jne 0x21008edf8
mov eax, dword [rsp + 0x54]
mov edx, eax
and edx, 0xfffffffd
cmp edx, 0x19
je 0x21008efb3
cmp eax, 0x57
jne 0x21008f131
mov esi, dword [rsp + 0x4c]
test esi, esi
je 0x21008f0e7
or byte [rbx + 0x208], 1
jmp 0x21008ec7f
and byte [rbx + 0x1f0], 0xfe
mov esi, eax
jmp 0x21008ec7f
mov esi, dword [rsp + 0x4c]
test esi, esi
jne 0x21008ec7f
test byte [0x210273880], 1
je 0x21008eecd
lea r9, str.return__1__set_errno_to_ENOSPC
lea r8, str.virtual_void_fhandler_dev_floppy::raw_read_void__size_t_
mov edx, 0x40
mov rcx, r13
call method.strace.prntf_unsigned_int__char_const__char_const__..._
test byte [0x210273880], 1
je 0x21008eecd
mov dword [rsp + 0x30], 0x1c
mov dword [rsp + 0x28], 0x1d7
lea rax, str.virtual_void_fhandler_dev_floppy::raw_read_void__size_t_
lea r9, [0x21028e071]
mov edx, 0x40
mov rcx, r13
mov qword [rsp + 0x20], rax
lea r8, [0x21028e088]
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x21008eecd
mov dword [rsp + 0x20], esi
lea r9, str.read__u_bytes_from_pos__U_directly
lea r8, str.virtual_void_fhandler_dev_floppy::raw_read_void__size_t_
mov edx, 0x40
mov qword [rsp + 0x28], rcx
mov rcx, r13
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x21008ef6f
lea rax, str.virtual_void_fhandler_dev_floppy::raw_read_void__size_t_
mov dword [rsp + 0x30], 0x1c
lea r9, [0x21028e071]
mov edx, 0x40
mov dword [rsp + 0x28], 0x199
lea r8, [0x21028e088]
lea rcx, [0x210273880]
mov qword [rsp + 0x20], rax
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x21008eecd
mov rcx, rbx
call rax
jmp 0x21008ef1f
call sym.GetLastError
mov edx, 0x1cc
lea rcx, str._usr_src_MSYS2_packages_msys2_runtime_src_msys2_runtime_winsup_cygwin_fhandler_floppy.cc
mov r8d, eax
call sym.seterrno_from_win_error_char_const__int__unsigned_int_
jmp 0x21008eee5
test byte [0x210273880], 1
je 0x21008eecd
lea r9, str.return__1__set_errno_to_ENOSPC
lea r8, str.virtual_void_fhandler_dev_floppy::raw_read_void__size_t_
mov edx, 0x40
mov rcx, r13
call method.strace.prntf_unsigned_int__char_const__char_const__..._
test byte [0x210273880], 1
je 0x21008eecd
mov dword [rsp + 0x30], 0x1c
mov dword [rsp + 0x28], 0x202
jmp 0x21008f02a
call sym.GetLastError
mov edx, 0x1fa
lea rcx, str._usr_src_MSYS2_packages_msys2_runtime_src_msys2_runtime_winsup_cygwin_fhandler_floppy.cc
mov r8d, eax
call sym.seterrno_from_win_error_char_const__int__unsigned_int_
jmp 0x21008eee5