Function at 0x21005b360
Capabilities:
Get file attributes

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rbx
sub rsp, 0xc8
lea r15, [0x2102738a0]
mov rax, qword gs:[0x30]
mov rax, qword [rax + 8]
mov eax, dword [rax - 0x2cc8]
mov dword [rsp + 0x38], eax
movsxd r12, edx
mov r13, rcx
mov edx, 0xffffffff
mov rax, qword gs:[0x30]
mov rax, qword [rax + 8]
mov r14, r8
mov eax, dword [rax - 0x2cc4]
mov qword [rcx + 0x18], 0
mov rcx, r15
mov qword [rsp + 0x90], 0
mov dword [rsp + 0x3c], eax
mov qword [rsp + 0x98], 0
mov qword [rsp + 0xa0], 0
mov qword [rsp + 0xa8], 0
mov qword [rsp + 0xb0], 0
call method.muto.acquire_unsigned_int_
test r12d, r12d
js 0x21005b40f
cmp r12d, dword [r13 + 0x28]
jl 0x21005b530
mov rax, qword gs:[0x30]
mov rdx, qword [rax + 8]
mov rcx, r15
sub rdx, 0x3200
call method.muto.release__cygtls_
xor ecx, ecx
call sym.SetLastError
mov rcx, r14
call sym.GetFileType
lea rcx, [rsp + 0x38]
mov esi, eax
call method.tmp_pathbuf.c_get__
mov byte [rax], 0
mov rbx, rax
test esi, esi
je 0x21005b870
cmp esi, 3
je 0x21005b5a8
lea r15, [rsp + 0x50]
mov rcx, r14
mov rdx, r15
call sym.GetConsoleScreenBufferInfo
test eax, eax
je 0x21005b7f0
mov rax, qword [0x21024fce8]
lea rcx, [rsp + 0x90]
mov edx, dword [rax + 0xfc28]
test edx, edx
jle 0x21005b680
call method.device.parse_unsigned_int_
cmp byte [rbx], 0
mov eax, dword [rsp + 0x98]
jne 0x21005b6a9
test eax, eax
jne 0x21005b838
mov rax, qword [r13]
mov qword [rax + r12*8], 0
cmp byte [rsp + 0xb6], 0
je 0x21005b4d8
mov rcx, qword [rsp + 0x90]
call sym.cfree
nop word [rax + rax]
cmp byte [rsp + 0xb7], 0
jne 0x21005b590
mov edx, dword [rsp + 0x38]
mov rax, qword gs:[0x30]
mov rax, qword [rax + 8]
mov dword [rax - 0x2cc8], edx
mov edx, dword [rsp + 0x3c]
mov rax, qword gs:[0x30]
mov rax, qword [rax + 8]
mov dword [rax - 0x2cc4], edx
add rsp, 0xc8
pop rbx
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rax, qword [r13]
movsxd rdx, r12d
cmp qword [rax + rdx*8], 0
je 0x21005b40f
mov rax, qword gs:[0x30]
mov rdx, qword [rax + 8]
mov rcx, r15
sub rdx, 0x3200
call method.muto.release__cygtls_
cmp byte [rsp + 0xb6], 0
je 0x21005b4d8
mov rcx, qword [rsp + 0x90]
call sym.cfree
cmp byte [rsp + 0xb7], 0
je 0x21005b4e6
nop word [rax + rax]
mov rcx, qword [rsp + 0xa0]
call sym.cfree
jmp 0x21005b4e6
mov rdx, rax
mov rcx, r14
mov dword [rsp + 0x50], 0
mov dword [rsp + 0x70], 4
call sym.handle_to_fn_void__char_
test al, al
jne 0x21005ba10
lea rdx, str.:sock:
mov rcx, rbx
call sym.msys_2.0.dll_strcmp
test eax, eax
je 0x21005b98a
lea rdx, str.some_disk_file
mov rcx, rbx
call sym.msys_2.0.dll_strcmp
test eax, eax
je 0x21005b960
test r12d, r12d
jne 0x21005b8e0
mov rax, qword [0x210284080]
movdqu xmm2, xmmword [0x210284060]
movdqu xmm3, xmmword [0x210284070]
mov rcx, qword [0x210284060]
mov qword [rsp + 0xb0], rax
movzx eax, byte [0x210284086]
movaps xmmword [rsp + 0x90], xmm2
mov byte [rsp + 0xb6], al
movaps xmmword [rsp + 0xa0], xmm3
test al, al
jne 0x21005babd
movzx eax, byte [0x210284087]
mov qword [rsp + 0x90], rcx
mov rcx, qword [0x210284070]
mov byte [rsp + 0xb7], al
test al, al
je 0x21005b951
call sym.cstrdup
mov rcx, rax
jmp 0x21005b951
mov edx, 0x50001
call method.device.parse_unsigned_int_
mov rcx, r14
mov r14, 0xffffffffffffffff
call sym.CloseHandle
cmp byte [rbx], 0
mov eax, dword [rsp + 0x98]
je 0x21005b4a7
test eax, eax
jne 0x21005b838
xor r8d, r8d
xor edx, edx
mov rcx, rbx
call sym.build_fh_name_char_const__unsigned_int__suffix_info_
mov r13, rax
test rax, rax
je 0x21005b853
cmp byte [rbx], 0
mov esi, 0x10000
je 0x21005b6ec
mov eax, dword [r13 + 0x118]
and eax, 1
cmp eax, 1
sbb esi, esi
xor si, si
add esi, 0x20000
mov rax, qword [r13]
mov rcx, r13
call qword [rax + 0x210]
test al, al
jne 0x21005b888
mov eax, dword [rsp + 0x98]
lea edx, [rax - 0x500fe]
cmp edx, 1
mov edx, eax
seta cl
shr edx, 0x10
cmp dx, 3
setne dl
test cl, dl
je 0x21005b72f
cmp eax, 0x50001
jne 0x21005ba28
cmp r12d, 1
sbb r15d, r15d
add r15d, 0x10001
cmp r12d, 1
sbb r8d, r8d
and r8d, 0x40000000
add r8d, 0x40000000
mov rax, qword [r13]
mov r9d, esi
mov rdx, r14
mov rcx, r13
call qword [rax + 0x1c0]
test eax, eax
je 0x21005bae3
mov rax, qword [r13]
mov rcx, r13
call qword [rax + 0x218]
test al, al
jne 0x21005b8a0
mov rax, qword [r13]
mov edx, r15d
mov rcx, r13
call qword [rax + 0xa0]
test al, al
je 0x21005bad7
mov rax, qword [0x21023d810]
movsxd rdx, r12d
mov dword [r13 + 0x78], 0
mov rax, qword [rax + 0x4900]
mov qword [rax + rdx*8], r13
lock add dword [r13 + 0x28], 1
mov ecx, r12d
call sym.set_std_handle_int_
test byte [0x210273880], 1
jne 0x21005b8b0
mov rax, qword [r13]
mov edx, r12d
mov rcx, r13
call qword [rax + 0xa8]
jmp 0x21005b4bb
mov rdx, r15
mov rcx, r14
call sym.GetNumberOfConsoleInputEvents
test eax, eax
jne 0x21005b475
lea rdx, [rsp + 0x70]
mov rcx, r14
call sym.GetCommState
test eax, eax
je 0x21005ba90
lea rcx, [rsp + 0x90]
xor r8d, r8d
mov edx, 0x75
call method.device.parse_unsigned_short__unsigned_short_
jmp 0x21005b699
lea rcx, [rsp + 0x90]
xor edx, edx
call sym.build_fh_dev_device_const__char_const_
mov r13, rax
test rax, rax
jne 0x21005b6ca
cmp byte [rsp + 0xb6], 0
je 0x21005b4d8
jmp 0x21005b56c
call sym.GetLastError
cmp eax, 6
jne 0x21005b45d
jmp 0x21005b699
mov r15d, 0x10002
mov r8d, 0xc0000000
jmp 0x21005b752
mov rcx, r13
call method.fhandler_pipe.set_pipe_buf_size__
jmp 0x21005b782
mov qword [rsp + 0x28], r14
lea r9, str.fd__d__handle__p
lea r8, str.void_dtable::init_std_file_from_handle_int__HANDLE_
mov edx, 0x80080
mov dword [rsp + 0x20], r12d
lea rcx, [0x210273880]
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x21005b7d2
mov rax, qword [0x210284040]
movdqu xmm4, xmmword [0x210284020]
movdqu xmm5, xmmword [0x210284030]
mov rcx, qword [0x210284020]
mov qword [rsp + 0xb0], rax
movzx eax, byte [0x210284046]
movaps xmmword [rsp + 0x90], xmm4
mov byte [rsp + 0xb6], al
movaps xmmword [rsp + 0xa0], xmm5
test al, al
jne 0x21005baca
movzx eax, byte [0x210284047]
mov qword [rsp + 0x90], rcx
mov rcx, qword [0x210284030]
mov byte [rsp + 0xb7], al
test al, al
jne 0x21005b673
mov qword [rsp + 0xa0], rcx
jmp 0x21005b699
lea rax, [rsp + 0x70]
lea r9, [rsp + 0x50]
mov edx, 0xffff
mov rcx, r14
mov qword [rsp + 0x20], rax
mov r8d, 0x1002
call fcn.21022f270
test eax, eax
jne 0x21005b5f9
mov rax, qword [0x210283f00]
movdqu xmm0, xmmword [0x210283ee0]
movdqu xmm1, xmmword [0x210283ef0]
mov rcx, qword [0x210283ee0]
mov qword [rsp + 0xb0], rax
movzx eax, byte [0x210283f06]
movaps xmmword [rsp + 0x90], xmm0
mov byte [rsp + 0xb6], al
movaps xmmword [rsp + 0xa0], xmm1
test al, al
jne 0x21005bab0
movzx eax, byte [0x210283f07]
mov qword [rsp + 0x90], rcx
mov rcx, qword [0x210283ef0]
mov byte [rsp + 0xb7], al
test al, al
jne 0x21005baa0
mov qword [rsp + 0xa0], rcx
mov byte [rbx], 0
jmp 0x21005b699
lea rcx, [rsp + 0x90]
mov rdx, rbx
call method.device.parse_char_const_
jmp 0x21005b699
mov dword [rsp + 0x20], 8
lea rdx, [rsp + 0x40]
lea r8, [rsp + 0x34]
mov rcx, r14
mov r9d, 4
call sym.NtQueryInformationFile
test eax, eax
js 0x21005b72f
mov eax, dword [rsp + 0x34]
mov r15d, 0x10000
mov r8d, eax
and r8d, 2
je 0x21005ba6f
mov r15d, 0x10001
mov r8d, 0x40000000
test al, 1
je 0x21005b752
lea eax, [r15 + r15]
or r8d, 0x80000000
and eax, 2
or r15d, eax
jmp 0x21005b752
mov rdx, rbx
mov rcx, r14
call sym.handle_to_fn_void__char_
jmp 0x21005b699
call sym.cstrdup
mov rcx, rax
jmp 0x21005b9fb
call sym.cstrdup
mov rcx, rax
jmp 0x21005b9d6
call sym.cstrdup
mov rcx, rax
jmp 0x21005b64e
call sym.cstrdup
mov rcx, rax
jmp 0x21005b92c
lea rcx, [0x210284f91]
call sym.api_fatal
mov r8, qword [r13 + 0x128]
mov edx, r12d
lea rcx, str.couldnt_initialize_fd__d_for__s
call sym.api_fatal
nop
nop word [rax + rax]