Function at 0x1004110b0
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 r15, qword [rcx]
mov rax, qword [r15 + 0x18]
mov dword [rsp + 0xc8], edx
mov rsi, rcx
mov qword [rsp + 0x50], rax
test rax, rax
je 0x1004114b0
mov rcx, rax
call sub.msys_2.0.dll_dirfd
mov dword [rsp + 0x6c], eax
test eax, eax
js 0x1004118ef
mov rax, qword [rsi + 0x40]
mov r8d, dword [rsi + 0x48]
mov byte [rsp + 0x5f], 1
neg rax
sbb r14, r14
or r14, 0x186a0
mov qword [rsp + 0x38], r14
mov r14, qword [r15 + 0x48]
mov rax, qword [r15 + 0x38]
cmp byte [rax + r14 - 1], 0x2f
lea r10, [r14 - 1]
je 0x10041112d
mov r10, r14
add r14, 1
mov qword [rsp + 0x40], 0
and r8d, 4
je 0x10041114f
mov rax, qword [rsi + 0x20]
add rax, r10
lea rdi, [rax + 1]
mov byte [rax], 0x2f
mov qword [rsp + 0x40], rdi
mov rax, qword [r15 + 0x58]
mov r12, qword [rsi + 0x30]
mov rbp, qword [r15 + 0x18]
add rax, 1
sub r12, r14
mov qword [rsp + 0x30], rax
test rbp, rbp
je 0x1004119ae
xor ebp, ebp
mov byte [rsp + 0x5d], 0
xor edi, edi
mov byte [rsp + 0x5e], 0
mov qword [rsp + 0x20], 0
mov qword [rsp + 0x48], r10
mov qword [rsp + 0x28], rbp
jmp 0x1004111ba
mov rax, qword [rsp + 0x38]
add rdi, 1
cmp rdi, rax
jae 0x100411300
mov qword [rsp + 0x20], rbx
cmp qword [r15 + 0x18], 0
je 0x100411300
call sub.msys_2.0.dll___errno
mov rcx, qword [r15 + 0x18]
mov dword [rax], 0
call sub.msys_2.0.dll_readdir
mov rbp, rax
test rax, rax
je 0x100411670
test byte [rsi + 0x48], 0x20
jne 0x1004111ea
cmp byte [rax + 0x18], 0x2e
je 0x100411450
lea rbx, [rbp + 0x18]
mov rcx, rbx
call sub.msys_2.0.dll_strlen
mov rdx, rbx
mov rcx, rsi
mov r8, rax
mov r13, rax
call fcn.100410b10
mov rbx, rax
test rax, rax
je 0x1004115d0
cmp r13, r12
jae 0x1004113c0
mov r8, r13
add r8, r14
jb 0x1004119d4
mov rax, qword [rsp + 0x30]
mov ecx, dword [rsi + 0x48]
mov qword [rbx + 0x58], rax
mov rax, qword [rsi]
mov qword [rbx + 0x48], r8
mov qword [rbx + 8], rax
mov rax, qword [rbp + 8]
mov qword [rbx + 0x78], rax
test cl, 4
jne 0x100411410
lea rax, [rbx + 0xf0]
mov qword [rbx + 0x30], rax
cmp qword [rsi + 0x40], 0
je 0x10041126b
test ch, 4
je 0x100411478
movzx eax, byte [rbp + 0x10]
mov edx, 2
test cl, 8
je 0x100411281
test al, 0xfb
jne 0x100411490
mov ecx, 0xb
sub eax, 1
mov word [rbx + 0x68], cx
xor ecx, ecx
cmp eax, 0xb
ja 0x10041129e
lea rcx, [0x100439500]
mov ecx, dword [rcx + rax*4]
mov dword [rbx + 0x80], ecx
mov qword [rbx + 0x98], rdx
cmp qword [rsp + 0x28], 0
mov qword [rbx + 0x10], 0
je 0x100411440
mov rax, qword [rsp + 0x20]
mov qword [rax + 0x10], rbx
cmp rdi, 0x2710
jne 0x100411198
movzx eax, byte [rsp + 0x5d]
cmp qword [rsi + 0x40], 0
mov edi, 1
mov qword [rsp + 0x20], rbx
cmove eax, edi
cmp qword [r15 + 0x18], 0
mov edi, 0x2711
mov byte [rsp + 0x5d], al
jne 0x1004111ba
cmp byte [rsp + 0x5e], 0
mov rbp, qword [rsp + 0x28]
jne 0x1004116a2
cmp qword [rsp + 0x50], 0
sete al
and al, byte [rsp + 0x5f]
test byte [rsi + 0x48], 4
je 0x1004115ac
mov rdx, qword [rsp + 0x40]
cmp qword [rsi + 0x30], r14
je 0x1004115a8
test rdi, rdi
je 0x1004117be
mov byte [rdx], 0
test al, al
je 0x100411379
cmp dword [rsp + 0xc8], 1
je 0x100411355
test rdi, rdi
jne 0x100411379
cmp qword [r15 + 0x58], 0
jne 0x100411818
mov rcx, rsi
call fcn.100410de0
test eax, eax
jne 0x100411839
test rdi, rdi
je 0x1004117ca
cmp byte [rsp + 0x5d], 0
jne 0x100411730
cmp qword [rsi + 0x40], 0
je 0x1004113a2
cmp rdi, 1
je 0x1004113a2
mov rdx, rbp
mov r8, rdi
mov rcx, rsi
call fcn.100410a20
mov rbp, rax
mov rax, rbp
add rsp, 0x78
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rax, qword [rsp + 0x48]
mov rcx, rsi
mov r12, qword [rsi + 0x20]
lea rdx, [rax + r13 + 2]
call fcn.100410820
test al, al
je 0x1004115d0
mov rdx, qword [rsi + 0x20]
cmp rdx, r12
je 0x1004113fa
mov byte [rsp + 0x5e], al
test byte [rsi + 0x48], 4
je 0x1004113fa
lea rax, [rdx + r14]
mov qword [rsp + 0x40], rax
mov r12, qword [rsi + 0x30]
sub r12, r14
jmp 0x10041121c
mov rax, qword [rbx + 0x38]
mov rcx, qword [rsp + 0x40]
lea rdx, [rbx + 0xf0]
mov qword [rbx + 0x30], rax
mov rax, qword [rbx + 0x60]
lea r8, [rax + 1]
call sub.msys_2.0.dll_memmove
mov ecx, dword [rsi + 0x48]
jmp 0x10041125b
mov qword [rsp + 0x28], rbx
jmp 0x1004112c8
cmp byte [rax + 0x19], 0
je 0x1004111af
mov eax, dword [rax + 0x18]
and eax, 0xffff00
cmp eax, 0x2e00
jne 0x1004111ea
jmp 0x1004111af
xor r8d, r8d
mov rdx, rbx
mov rcx, rsi
call fcn.100410890
mov word [rbx + 0x68], ax
jmp 0x1004112ab
shr ecx, 4
cmp al, 0xa
setne dl
or rcx, rdx
mov edx, 2
and ecx, 1
sub rdx, rcx
jmp 0x100411281
mov eax, dword [rcx + 0x48]
mov r8d, eax
and r8d, 0x10
je 0x1004114ca
mov r8d, 0x100000
test al, 1
jne 0x100411658
and eax, 0x204
mov rdx, qword [r15 + 0x30]
mov ecx, 0xfffffffe
cmp eax, 0x200
jne 0x1004114e2
mov ecx, dword [rsi + 0x2c]
lea r9, [rsp + 0x6c]
call fcn.1004173b0
mov qword [r15 + 0x18], rax
test rax, rax
je 0x100411a4e
cmp word [r15 + 0x68], 0xb
je 0x10041179c
mov r8d, dword [rsi + 0x48]
test r8d, 0x100
jne 0x100411760
mov rax, qword [rsi + 0x40]
mov byte [rsp + 0x5f], 0
neg rax
sbb r14, r14
or r14, 0x186a0
cmp dword [rsp + 0xc8], 2
mov qword [rsp + 0x38], r14
je 0x100411112
and r8d, 0x200
mov ecx, dword [rsp + 0x6c]
jne 0x1004118d4
test ecx, ecx
jns 0x1004118ad
cmp dword [rsp + 0xc8], 3
je 0x100411960
or word [r15 + 0x6a], 1
mov rcx, qword [r15 + 0x18]
call sub.msys_2.0.dll_closedir
mov r8d, dword [rsi + 0x48]
mov qword [r15 + 0x18], 0
test r8d, 0x200
je 0x100411596
mov ecx, dword [rsp + 0x6c]
test ecx, ecx
jns 0x10041192a
mov qword [r15 + 0x18], 0
mov byte [rsp + 0x5f], 0
jmp 0x100411112
mov byte [rdx - 1], 0
test al, al
je 0x100411370
cmp dword [rsp + 0xc8], 1
jne 0x100411350
jmp 0x100411355
mov rbp, qword [rsp + 0x28]
call sub.msys_2.0.dll___errno
mov rcx, rbx
mov edi, dword [rax]
call fcn.100410780
call sub.msys_2.0.dll___errno
mov r12d, dword [rax]
test rbp, rbp
je 0x10041161a
nop dword [rax]
mov rbx, rbp
mov rbp, qword [rbp + 0x10]
mov rcx, qword [rbx + 0x18]
test rcx, rcx
je 0x10041160d
call sub.msys_2.0.dll_closedir
mov rcx, rbx
call fcn.100410780
test rbp, rbp
jne 0x1004115f8
call sub.msys_2.0.dll___errno
mov rcx, qword [r15 + 0x18]
mov dword [rax], r12d
call sub.msys_2.0.dll_closedir
mov r9d, 7
mov qword [r15 + 0x18], 0
mov word [r15 + 0x68], r9w
or dword [rsi + 0x48], 0x2000
call sub.msys_2.0.dll___errno
mov dword [rax], edi
xor ebp, ebp
jmp 0x1004113a2
xor r8d, r8d
cmp qword [r15 + 0x58], 0
setne r8b
shl r8d, 0x14
jmp 0x1004114ca
mov rbp, qword [rsp + 0x28]
call sub.msys_2.0.dll___errno
mov r10d, dword [rax]
test r10d, r10d
jne 0x100411884
mov rcx, qword [r15 + 0x18]
call sub.msys_2.0.dll_closedir
cmp byte [rsp + 0x5e], 0
mov qword [r15 + 0x18], 0
je 0x100411310
mov rax, qword [rsi + 8]
mov r8, qword [rsi + 0x20]
test rax, rax
je 0x1004116d8
nop
mov rdx, qword [rax + 0x30]
lea rcx, [rax + 0xf0]
cmp rdx, rcx
je 0x1004116cb
sub rdx, qword [rax + 0x38]
add rdx, r8
mov qword [rax + 0x30], rdx
mov qword [rax + 0x38], r8
mov rax, qword [rax + 0x10]
test rax, rax
jne 0x1004116b0
cmp qword [rbp + 0x58], 0
mov rax, rbp
jns 0x1004116fe
jmp 0x100411310
mov rax, rdx
cmp qword [rax + 0x58], 0
js 0x100411310
mov rdx, qword [rax + 0x30]
lea rcx, [rax + 0xf0]
cmp rcx, rdx
je 0x100411719
sub rdx, qword [rax + 0x38]
add rdx, r8
mov qword [rax + 0x30], rdx
mov rdx, qword [rax + 0x10]
mov qword [rax + 0x38], r8
test rdx, rdx
jne 0x1004116f0
mov rax, qword [rax + 8]
jmp 0x1004116f3
lea rax, [0x100410800]
mov rdx, rbp
mov r8, rdi
mov rcx, rsi
mov qword [rsi + 0x40], rax
call fcn.100410a20
mov qword [rsi + 0x40], 0
mov rbp, rax
jmp 0x1004113a2
mov rdx, r15
mov rcx, rsi
call fcn.100410d50
mov ecx, dword [rsp + 0x6c]
lea rdx, [r15 + 0x70]
call sub.msys_2.0.dll_fstat
test eax, eax
jne 0x100411970
mov rdx, r15
mov rcx, rsi
call fcn.100410c20
test al, al
je 0x1004119ba
mov r8d, dword [rsi + 0x48]
jmp 0x100411516
mov ecx, dword [rsp + 0x6c]
lea rdx, [r15 + 0x70]
call sub.msys_2.0.dll_fstat
test eax, eax
jne 0x100411970
mov r11d, 1
mov word [r15 + 0x68], r11w
jmp 0x100411793
mov byte [rdx - 1], 0
test al, al
jne 0x100411355
cmp dword [rsp + 0xc8], 3
je 0x100411938
call sub.msys_2.0.dll___errno
mov esi, dword [rax]
test rbp, rbp
je 0x10041180a
nop dword [rax]
mov rbx, rbp
mov rbp, qword [rbp + 0x10]
mov rcx, qword [rbx + 0x18]
test rcx, rcx
je 0x1004117fd
call sub.msys_2.0.dll_closedir
mov rcx, rbx
call fcn.100410780
test rbp, rbp
jne 0x1004117e8
call sub.msys_2.0.dll___errno
xor ebp, ebp
mov dword [rax], esi
jmp 0x1004113a2
mov rdx, qword [r15 + 8]
lea r9, [0x1004394e0]
mov r8d, 0xffffffff
mov rcx, rsi
call fcn.100410e70
test eax, eax
je 0x100411370
mov edx, 7
mov word [r15 + 0x68], dx
or dword [rsi + 0x48], 0x2000
call sub.msys_2.0.dll___errno
mov esi, dword [rax]
test rbp, rbp
je 0x10041180a
nop word cs:[rax + rax]
mov rbx, rbp
mov rbp, qword [rbp + 0x10]
mov rcx, qword [rbx + 0x18]
test rcx, rcx
je 0x100411875
call sub.msys_2.0.dll_closedir
mov rcx, rbx
call fcn.100410780
test rbp, rbp
jne 0x100411860
jmp 0x10041180a
call sub.msys_2.0.dll___errno
mov eax, dword [rax]
mov dword [r15 + 0x40], eax
mov rax, qword [rsp + 0x50]
or rax, rdi
cmp rax, 1
sbb eax, eax
and eax, 0xfffffffd
add eax, 7
mov word [r15 + 0x68], ax
jmp 0x100411686
xor r9d, r9d
mov r8d, ecx
mov rdx, r15
mov rcx, rsi
call fcn.100410e70
test eax, eax
jne 0x100411558
mov byte [rsp + 0x5f], 1
mov r8d, dword [rsi + 0x48]
jmp 0x100411112
mov r8d, 3
mov edx, 0xe
call fcn.100431a30
mov dword [rsp + 0x6c], eax
mov ecx, eax
jmp 0x100411550
call sub.msys_2.0.dll___errno
mov rcx, qword [r15 + 0x18]
mov ebx, dword [rax]
call sub.msys_2.0.dll_closedir
cmp dword [rsp + 0xc8], 3
mov qword [r15 + 0x18], 0
jne 0x10041164c
mov edi, 4
mov dword [r15 + 0x40], ebx
xor ebp, ebp
mov word [r15 + 0x68], di
jmp 0x1004113a2
call sub.msys_2.0.dll_close
mov r8d, dword [rsi + 0x48]
jmp 0x100411596
movzx eax, word [r15 + 0x68]
cmp ax, 4
je 0x1004117d8
cmp ax, 7
je 0x1004117d8
mov eax, 6
mov word [r15 + 0x68], ax
jmp 0x1004117d8
call sub.msys_2.0.dll___errno
mov eax, dword [rax]
mov dword [r15 + 0x40], eax
jmp 0x100411566
call sub.msys_2.0.dll___errno
mov rcx, qword [r15 + 0x18]
mov ebx, dword [rax]
call sub.msys_2.0.dll_closedir
cmp dword [rsp + 0xc8], 3
mov qword [r15 + 0x18], 0
jne 0x1004119a0
mov esi, 0xa
mov dword [r15 + 0x40], ebx
mov word [r15 + 0x68], si
call sub.msys_2.0.dll___errno
xor ebp, ebp
mov dword [rax], ebx
jmp 0x1004113a2
mov byte [rsp + 0x5d], 0
xor edi, edi
jmp 0x100411310
call sub.msys_2.0.dll___errno
mov rcx, qword [r15 + 0x18]
mov ebx, dword [rax]
call sub.msys_2.0.dll_closedir
mov qword [r15 + 0x18], 0
jmp 0x1004119a0
mov rcx, rbx
mov rbp, qword [rsp + 0x28]
call fcn.100410780
call sub.msys_2.0.dll___errno
mov edi, dword [rax]
test rbp, rbp
je 0x100411a12
nop dword [rax]
mov rbx, rbp
mov rbp, qword [rbp + 0x10]
mov rcx, qword [rbx + 0x18]
test rcx, rcx
je 0x100411a05
call sub.msys_2.0.dll_closedir
mov rcx, rbx
call fcn.100410780
test rbp, rbp
jne 0x1004119f0
call sub.msys_2.0.dll___errno
mov rcx, qword [r15 + 0x18]
xor ebp, ebp
mov dword [rax], edi
call sub.msys_2.0.dll_closedir
mov r8d, 7
mov qword [r15 + 0x18], 0
mov word [r15 + 0x68], r8w
or dword [rsi + 0x48], 0x2000
call sub.msys_2.0.dll___errno
mov dword [rax], 0x5b
jmp 0x1004113a2
cmp dword [rsp + 0xc8], 3
jne 0x10041164c
mov word [r15 + 0x68], 4
xor ebp, ebp
call sub.msys_2.0.dll___errno
mov eax, dword [rax]
mov dword [r15 + 0x40], eax
jmp 0x1004113a2