Function at 0x10048a450
Capabilities:
Get file attributes

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0xd8
lea rbp, [rsp + 0x80]
mov rdi, qword [rbp + 0xc0]
mov dword [rbp + 0xb0], r8d
mov r15, rdx
mov r8d, 0x14
mov rbx, rcx
mov edx, 8
mov qword [rbp + 0xb8], r9
call sym.vim.exe_ga_init2
mov rcx, r15
mov dword [0x100708894], 1
call sub.msys_2.0.dll_opendir
mov r14, rax
test rax, rax
je 0x100661c57
nop dword [rax]
mov rcx, r14
call sub.msys_2.0.dll_readdir
test rax, rax
je 0x10048a740
cmp byte [rax + 0x18], 0x2e
lea r13, [rax + 0x18]
je 0x10048a7d0
mov eax, dword [rbp + 0xb0]
test eax, eax
je 0x10048a6e0
movabs rax, 0x2d2d2d2d2d2d2d2d
mov qword [rbp - 0x3a], rax
mov eax, 0x2d
mov word [rbp - 0x32], ax
call sym.vim.exe_dict_alloc
mov r12, rax
test rax, rax
je 0x10048a6b8
add dword [rax + 4], 1
mov rcx, r15
call sub.msys_2.0.dll_strlen
mov rcx, r13
mov rsi, rax
call sub.msys_2.0.dll_strlen
lea rsi, [rsi + rax + 2]
mov rcx, rsi
call sym.vim.exe_alloc
mov rcx, rax
test rax, rax
je 0x10048a6b0
mov qword [rsp + 0x20], r13
mov rdx, rsi
mov r9, r15
lea r8, [0x1006a3565]
mov qword [rbp - 0x48], rax
lea rsi, [rbp - 0x30]
call sym.vim.exe_vim_snprintf
mov rcx, qword [rbp - 0x48]
mov rdx, rsi
call sub.msys_2.0.dll_lstat
mov rcx, qword [rbp - 0x48]
test eax, eax
js 0x10048a808
mov eax, dword [rbp - 0x20]
mov dword [rbp - 0x48], 0
and eax, 0xf000
cmp eax, 0xa000
je 0x10048a8d8
call sym.vim.exe_vim_free
mov r8, r13
lea rdx, [0x1006a3401]
mov rcx, r12
call sym.vim.exe_dict_add_string
test eax, eax
je 0x10048a6b0
mov eax, dword [rbp - 0x20]
mov r8d, 0
lea rdx, [0x1006a356b]
mov rcx, r12
and eax, 0xf000
cmp eax, 0x4000
cmovne r8, qword [rbp - 8]
call sym.vim.exe_dict_add_number
test eax, eax
je 0x10048a6b0
mov r8, qword [rbp + 0x10]
lea rdx, [0x1006a3570]
mov rcx, r12
call sym.vim.exe_dict_add_number
test eax, eax
je 0x10048a6b0
mov r13d, dword [rbp - 0x48]
test r13d, r13d
je 0x10048a900
mov eax, dword [rbp - 0x20]
lea r8, [0x1006a3560]
and eax, 0xf000
cmp eax, 0x4000
lea rax, str.linkd
cmove r8, rax
lea rdx, [0x1006a3575]
mov rcx, r12
call sym.vim.exe_dict_add_string
test eax, eax
je 0x10048a6b0
lea rdx, [rbp - 0x3a]
mov rcx, rsi
call sym.vim.exe_getfpermst
lea rdx, str.perm
mov rcx, r12
mov r8, rax
call sym.vim.exe_dict_add_string
test eax, eax
je 0x10048a6b0
mov ecx, dword [rbp - 0x18]
call sub.msys_2.0.dll_getpwuid
lea r8, [0x1006a3400]
test rax, rax
je 0x10048a66f
mov r8, qword [rax]
lea rdx, [0x1006a357f]
mov rcx, r12
call sym.vim.exe_dict_add_string
test eax, eax
je 0x10048a6b0
mov ecx, dword [rbp - 0x14]
call sub.msys_2.0.dll_getgrgid
lea r8, [0x1006a3400]
test rax, rax
je 0x10048a699
mov r8, qword [rax]
lea rdx, [0x1006a3584]
mov rcx, r12
call sym.vim.exe_dict_add_string
test eax, eax
jne 0x10048a6f0
nop dword [rax]
mov rcx, r12
call sym.vim.exe_dict_unref
mov rcx, r14
call sub.msys_2.0.dll_closedir
xor eax, eax
add rsp, 0xd8
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov rcx, r13
call sym.vim.exe_vim_strsave
mov r12, rax
test rax, rax
je 0x10048a6b8
test rdi, rdi
je 0x10048a7a0
mov rcx, qword [rbp + 0xb8]
mov rdx, r12
call rdi
test eax, eax
js 0x10048a940
jne 0x10048a7a0
mov r9d, dword [rbp + 0xb0]
test r9d, r9d
je 0x10048a7f8
mov rcx, r12
call sym.vim.exe_dict_unref
mov rcx, r14
call sub.msys_2.0.dll_readdir
test rax, rax
jne 0x10048a4c9
nop dword [rax]
mov rcx, r14
call sub.msys_2.0.dll_closedir
mov eax, dword [rbx]
test eax, eax
jle 0x10048a930
mov edx, dword [rbp + 0xc8]
test edx, edx
jle 0x10048a930
mov edi, dword [rbp + 0xc8]
mov ecx, dword [rbp + 0xb0]
mov dword [0x100708894], edi
test ecx, ecx
je 0x10048a9e3
mov rcx, qword [rbx + 0x10]
movsxd rdx, eax
lea r9, [0x100488ff0]
mov r8d, 8
call sub.msys_2.0.dll_qsort
mov eax, 1
jmp 0x10048a6c2
mov edx, 1
mov rcx, rbx
call sym.vim.exe_ga_grow
cmp eax, 1
jne 0x10048a9a0
movsxd rax, dword [rbx]
mov rdx, qword [rbx + 0x10]
lea ecx, [rax + 1]
mov dword [rbx], ecx
mov qword [rdx + rax*8], r12
jmp 0x10048a4b8
movzx edx, byte [rax + 0x19]
test dl, dl
je 0x10048a4b8
cmp dl, 0x2e
jne 0x10048a4d7
cmp byte [rax + 0x1a], 0
jne 0x10048a4d7
jmp 0x10048a4b8
mov rcx, r12
call sym.vim.exe_vim_free
jmp 0x10048a4b8
xor esi, esi
call sym.vim.exe_vim_free
mov r8, r13
lea rdx, [0x1006a3401]
mov rcx, r12
call sym.vim.exe_dict_add_string
test eax, eax
je 0x10048a6b0
mov r8, 0xffffffffffffffff
lea rdx, [0x1006a356b]
mov rcx, r12
call sym.vim.exe_dict_add_number
test eax, eax
je 0x10048a6b0
mov r8, 0xffffffffffffffff
lea rdx, [0x1006a3570]
mov rcx, r12
call sym.vim.exe_dict_add_number
test eax, eax
je 0x10048a6b0
test rsi, rsi
lea r8, [0x1006a3400]
lea rdx, [0x1006a3575]
mov rcx, r12
cmovne r8, rsi
call sym.vim.exe_dict_add_string
test eax, eax
je 0x10048a6b0
lea r8, [0x1006a3400]
lea rdx, str.perm
mov rcx, r12
call sym.vim.exe_dict_add_string
test eax, eax
je 0x10048a6b0
lea r8, [0x1006a3400]
lea rdx, [0x1006a357f]
mov rcx, r12
call sym.vim.exe_dict_add_string
test eax, eax
je 0x10048a6b0
lea r8, [0x1006a3400]
jmp 0x10048a699
mov rdx, rsi
mov qword [rbp - 0x48], rcx
call sub.msys_2.0.dll_stat
mov rcx, qword [rbp - 0x48]
test eax, eax
js 0x10048a990
mov dword [rbp - 0x48], 1
jmp 0x10048a58e
mov rcx, rsi
call sym.vim.exe_getftypest
mov r8, rax
jmp 0x10048a623
call sym.vim.exe_vim_free
mov rcx, r14
call sub.msys_2.0.dll_closedir
mov eax, dword [rbx]
test eax, eax
jle 0x10048a930
test sil, sil
jne 0x10048a9d7
nop dword [rax]
mov eax, 1
jmp 0x10048a6c2
mov r10d, dword [rbp + 0xc8]
mov r11d, dword [rbp + 0xb0]
mov rcx, r12
test r10d, r10d
setg sil
test r11d, r11d
je 0x10048a910
call sym.vim.exe_dict_unref
mov rcx, r14
call sub.msys_2.0.dll_closedir
mov eax, dword [rbx]
test eax, eax
jle 0x10048a930
test sil, sil
je 0x10048a930
mov edi, dword [rbp + 0xc8]
mov dword [0x100708894], edi
jmp 0x10048a77a
lea rsi, [0x1006a3560]
jmp 0x10048a80a
mov r8d, dword [rbp + 0xb0]
mov rcx, r12
test r8d, r8d
je 0x10048a9c3
call sym.vim.exe_dict_unref
mov rcx, r14
call sub.msys_2.0.dll_closedir
xor eax, eax
jmp 0x10048a6c2
call sym.vim.exe_vim_free
mov rcx, r14
call sub.msys_2.0.dll_closedir
xor eax, eax
jmp 0x10048a6c2
mov edi, dword [rbp + 0xc8]
mov dword [0x100708894], edi
mov rcx, qword [rbx + 0x10]
movsxd rdx, eax
lea r9, [0x100489070]
mov r8d, 8
call sub.msys_2.0.dll_qsort
mov eax, 1
jmp 0x10048a6c2
mov rcx, qword [sym.vim.exe_e_notopen]
call sub.msys_intl_8.dll_libintl_gettext
mov rdx, r15
mov rcx, rax
call sym.vim.exe_semsg
xor eax, eax
jmp 0x10048a6c2