Function at 0x21008f8a0
Capabilities:
Get file attributes

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x98
mov dword [rsp + 0x6c], 0
mov rsi, rcx
mov r14, rdx
mov rbp, r8
test byte [rcx + 0x208], 1
jne 0x21008fdb8
xor eax, eax
test r8, r8
je 0x21008f9cf
cmp qword [rcx + 0x1d8], 0
je 0x21008fca0
mov eax, dword [rcx + 0x1ec]
lea r13, [rsp + 0x74]
lea r12, [rsp + 0x70]
test eax, eax
jne 0x21008f9e8
lea rax, [method.fhandler_base.get_handle__]
mov ecx, dword [rsi + 0x1e0]
mov qword [rsp + 0x48], rax
lea rax, [rsi + 0x18]
mov qword [rsp + 0x58], rax
lea rax, [rsp + 0x78]
mov qword [rsp + 0x50], rax
nop word [rax + rax]
mov edi, dword [rsi + 0x1e4]
cmp rdi, rbp
cmova rdi, rbp
mov ebx, edi
cmp edi, ecx
jb 0x21008fb30
mov eax, edi
xor edx, edx
div ecx
mov ebx, eax
imul ebx, ecx
mov rcx, qword [rsi + 0x1d8]
mov r8d, ebx
mov rdx, r14
call sym.msys_2.0.dll_memcpy
mov qword [rsp + 0x20], r12
mov r9, r13
mov rcx, rsi
mov r8d, dword [rsi + 0x1e0]
mov rdx, qword [rsi + 0x1d8]
cmp ebx, r8d
cmovae r8d, ebx
call method.fhandler_dev_floppy.write_file_void_const__unsigned_int__unsigned_int__int_
test eax, eax
je 0x21008fc20
mov edx, dword [rsp + 0x74]
mov ecx, dword [rsi + 0x1e0]
cmp ebx, edx
cmovbe edx, ebx
mov eax, edx
add r14, rax
sub rbp, rax
mov eax, edx
add eax, dword [rsp + 0x6c]
mov dword [rsp + 0x6c], eax
cmp ecx, edx
jbe 0x21008fb20
mov dword [rsi + 0x1e8], edx
mov dword [rsi + 0x1ec], ecx
test rbp, rbp
jne 0x21008f930
add rsp, 0x98
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
cmp eax, dword [rcx + 0x1e8]
jbe 0x21008f902
mov rax, qword [rcx]
lea r12, [method.fhandler_base.get_handle__]
mov qword [rsp + 0x78], 0
mov rax, qword [rax + 0x280]
cmp rax, r12
jne 0x21008fdb1
lea rax, [rcx + 0x18]
mov dword [rsp + 0x20], 0xe
mov rcx, qword [rax]
mov r9d, 8
lea rdx, [rsp + 0x80]
lea r8, [rsp + 0x78]
call sym.NtQueryInformationFile
mov ecx, dword [rsi + 0x1e8]
mov ebx, dword [rsi + 0x1ec]
mov rdx, r14
mov rdi, qword [rsp + 0x78]
sub ebx, ecx
cmp rbx, rbp
cmova rbx, rbp
add rcx, qword [rsi + 0x1d8]
mov r8, rbx
call sym.msys_2.0.dll_memcpy
mov eax, dword [rsi + 0x1ec]
sub rdi, rax
mov rax, qword [rsi]
mov rdx, rdi
mov rax, qword [rax + 0x280]
cmp rax, r12
jne 0x21008fd9d
lea rax, [rsi + 0x18]
mov rcx, qword [rax]
xor r9d, r9d
xor r8d, r8d
call sym.SetFilePointerEx
test eax, eax
je 0x21008fd2d
lea r12, [rsp + 0x70]
lea r13, [rsp + 0x74]
mov rcx, rsi
mov rdx, qword [rsi + 0x1d8]
mov qword [rsp + 0x20], r12
mov r8d, dword [rsi + 0x1ec]
mov r9, r13
call method.fhandler_dev_floppy.write_file_void_const__unsigned_int__unsigned_int__int_
test eax, eax
je 0x21008fcf7
mov eax, dword [rsp + 0x74]
mov edx, dword [rsi + 0x1e8]
cmp eax, ebx
cmova eax, ebx
add edx, eax
mov dword [rsi + 0x1e8], edx
cmp edx, dword [rsi + 0x1ec]
jb 0x21008fafd
mov qword [rsi + 0x1e8], 0
mov edx, eax
add eax, dword [rsp + 0x6c]
mov dword [rsp + 0x6c], eax
sub rbp, rdx
je 0x21008f9cf
add r14, rdx
jmp 0x21008f902
test rbp, rbp
jne 0x21008f930
jmp 0x21008f9cf
mov qword [rsp + 0x78], 0
mov rax, qword [rsi]
mov rax, qword [rax + 0x280]
cmp rax, qword [rsp + 0x48]
jne 0x21008fbe0
mov rcx, qword [rsi + 0x18]
mov dword [rsp + 0x20], 0xe
lea rdx, [rsp + 0x80]
mov r9d, 8
mov r8, qword [rsp + 0x50]
call sym.NtQueryInformationFile
mov qword [rsp + 0x20], r12
mov r9, r13
mov rcx, rsi
mov rdx, qword [rsi + 0x1d8]
mov r8d, dword [rsi + 0x1e0]
mov r15, qword [rsp + 0x78]
call method.fhandler_dev_floppy.read_file_void__unsigned_int__unsigned_int__int_
test eax, eax
je 0x21008fcc9
mov rax, qword [rsi]
mov rax, qword [rax + 0x280]
cmp rax, qword [rsp + 0x48]
jne 0x21008fc10
mov rax, qword [rsp + 0x58]
mov rcx, qword [rax]
xor r9d, r9d
xor r8d, r8d
mov rdx, r15
call sym.SetFilePointerEx
test eax, eax
je 0x21008fcd2
mov rcx, qword [rsi + 0x1d8]
mov r8, rdi
jmp 0x21008f95c
mov rcx, rsi
call rax
mov dword [rsp + 0x20], 0xe
mov r8, qword [rsp + 0x50]
lea rdx, [rsp + 0x80]
mov rcx, qword [rax]
mov r9d, 8
jmp 0x21008fb6d
mov rcx, rsi
call rax
jmp 0x21008fbb3
mov eax, dword [rsp + 0x74]
cmp ebx, eax
cmovbe eax, ebx
add eax, dword [rsp + 0x6c]
mov dword [rsp + 0x6c], eax
mov edx, dword [rsp + 0x70]
mov ecx, edx
and ecx, 0xfffffffd
cmp ecx, 0x19
je 0x21008fc68
cmp edx, 0x57
je 0x21008fc68
test eax, eax
je 0x21008fd0b
test rax, rax
jne 0x21008f9cf
mov rax, 0xffffffffffffffff
jmp 0x21008f9cf
or byte [rsi + 0x208], 1
test eax, eax
jne 0x21008fc4c
test byte [0x210273880], 1
jne 0x21008fd5d
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 eax, dword [rsp + 0x6c]
jmp 0x21008fc4c
lea rax, [rsp + 0x70]
lea r9, [rsp + 0x6c]
mov qword [rsp + 0x20], rax
call method.fhandler_dev_floppy.write_file_void_const__unsigned_int__unsigned_int__int_
mov r8d, eax
mov eax, dword [rsp + 0x6c]
test r8d, r8d
je 0x21008fc31
jmp 0x21008f9cf
mov eax, dword [rsp + 0x6c]
jmp 0x21008fc31
call sym.GetLastError
mov edx, 0x256
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_
mov rax, 0xffffffffffffffff
jmp 0x21008f9cf
mov qword [rsi + 0x1e8], 0
mov eax, dword [rsp + 0x6c]
jmp 0x21008fc31
call sym.GetLastError
mov edx, 0x27d
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_
mov eax, dword [rsp + 0x6c]
jmp 0x21008fc4c
mov qword [rsi + 0x1e8], 0
call sym.GetLastError
mov edx, 0x231
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_
mov rax, 0xffffffffffffffff
jmp 0x21008f9cf
lea rax, str.virtual_ssize_t_fhandler_dev_floppy::raw_write_const_void__size_t_
mov dword [rsp + 0x30], 0x1c
lea r9, [0x21028e071]
mov edx, 0x40
mov dword [rsp + 0x28], 0x27a
lea r8, [0x21028e088]
lea rcx, [0x210273880]
mov qword [rsp + 0x20], rax
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x21008fc80
mov qword [rsp + 0x48], rdi
mov rcx, rsi
call rax
mov rdx, qword [rsp + 0x48]
jmp 0x21008fa8d
call rax
jmp 0x21008fa1b
test byte [0x210273880], 1
jne 0x21008fde5
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 rax, 0xffffffffffffffff
jmp 0x21008f9cf
lea rax, str.virtual_ssize_t_fhandler_dev_floppy::raw_write_const_void__size_t_
mov dword [rsp + 0x30], 0x1c
lea r9, [0x21028e071]
mov edx, 0x40
mov dword [rsp + 0x28], 0x219
lea r8, [0x21028e088]
lea rcx, [0x210273880]
mov qword [rsp + 0x20], rax
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x21008fdc1