Function at 0x1004907a0
Capabilities:
Get file attributes

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xd8
mov rsi, qword [rsp + 0x140]
mov rbp, rdx
mov edi, r8d
mov edx, 8
mov rbx, rcx
mov r8d, 0x14
mov qword [rsp + 0x138], r9
call sym.vim.exe_ga_init2
mov rcx, rbp
mov dword [0x1007218f4], 1
call sub.msys_2.0.dll_opendir
mov r13, rax
test rax, rax
je 0x100676614
nop word [rax + rax]
mov rcx, r13
call sub.msys_2.0.dll_readdir
test rax, rax
je 0x100490a88
cmp byte [rax + 0x18], 0x2e
lea r12, [rax + 0x18]
je 0x100490b18
test edi, edi
je 0x100490a30
movabs rax, 0x2d2d2d2d2d2d2d2d
mov r9d, 0x2d
mov qword [rsp + 0x46], rax
mov word [rsp + 0x4e], r9w
call sym.vim.exe_dict_alloc
mov r14, rax
test rax, rax
je 0x100490a08
add dword [rax + 4], 1
mov rcx, rbp
call sub.msys_2.0.dll_strlen
mov rcx, r12
mov r15, rax
call sub.msys_2.0.dll_strlen
lea r15, [r15 + rax + 2]
mov rcx, r15
call sym.vim.exe_alloc
mov rcx, rax
test rax, rax
je 0x100490a00
mov qword [rsp + 0x20], r12
mov rdx, r15
mov r9, rbp
lea r8, [0x1006c07e4]
mov qword [rsp + 0x38], rax
lea r15, [rsp + 0x50]
call sym.vim.exe_vim_snprintf
mov rcx, qword [rsp + 0x38]
mov rdx, r15
call sub.msys_2.0.dll_lstat
mov rcx, qword [rsp + 0x38]
test eax, eax
js 0x100490b50
mov eax, dword [rsp + 0x60]
mov dword [rsp + 0x38], 0
and eax, 0xf000
cmp eax, 0xa000
je 0x100490c18
call sym.vim.exe_vim_free
mov r8, r12
lea rdx, [0x1006c0701]
mov rcx, r14
call sym.vim.exe_dict_add_string
test eax, eax
je 0x100490a00
mov eax, dword [rsp + 0x60]
xor r8d, r8d
lea rdx, [0x1006c07ea]
mov rcx, r14
and eax, 0xf000
cmp eax, 0x4000
cmovne r8, qword [rsp + 0x78]
call sym.vim.exe_dict_add_number
test eax, eax
je 0x100490a00
mov r8, qword [rsp + 0x90]
lea rdx, [0x1006c07ef]
mov rcx, r14
call sym.vim.exe_dict_add_number
test eax, eax
je 0x100490a00
mov r8d, dword [rsp + 0x38]
test r8d, r8d
je 0x100490c40
mov eax, dword [rsp + 0x60]
lea r8, str.linkd
and eax, 0xf000
cmp eax, 0x4000
lea rax, [0x1006c07df]
cmovne r8, rax
lea rdx, [0x1006c07f4]
mov rcx, r14
call sym.vim.exe_dict_add_string
test eax, eax
je 0x100490a00
lea rdx, [rsp + 0x46]
mov rcx, r15
call sym.vim.exe_getfpermst
lea rdx, str.perm
mov rcx, r14
mov r8, rax
call sym.vim.exe_dict_add_string
test eax, eax
je 0x100490a00
mov ecx, dword [rsp + 0x68]
call sub.msys_2.0.dll_getpwuid
lea r8, [0x1006c0700]
test rax, rax
je 0x1004909c2
mov r8, qword [rax]
lea rdx, [0x1006c07fe]
mov rcx, r14
call sym.vim.exe_dict_add_string
test eax, eax
je 0x100490a00
mov ecx, dword [rsp + 0x6c]
call sub.msys_2.0.dll_getgrgid
lea r8, [0x1006c0700]
test rax, rax
je 0x1004909ed
mov r8, qword [rax]
lea rdx, [0x1006c0803]
mov rcx, r14
call sym.vim.exe_dict_add_string
test eax, eax
jne 0x100490a40
mov rcx, r14
call sym.vim.exe_dict_unref
mov rcx, r13
call sub.msys_2.0.dll_closedir
xor eax, eax
add rsp, 0xd8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, r12
call sym.vim.exe_vim_strsave
mov r14, rax
test rax, rax
je 0x100490a08
test rsi, rsi
je 0x100490ae8
mov rcx, qword [rsp + 0x138]
mov rdx, r14
call rsi
test eax, eax
js 0x100490c50
jne 0x100490ae8
test edi, edi
je 0x100490b40
mov rcx, r14
call sym.vim.exe_dict_unref
mov rcx, r13
call sub.msys_2.0.dll_readdir
test rax, rax
jne 0x100490811
nop dword [rax]
mov rcx, r13
call sub.msys_2.0.dll_closedir
mov eax, dword [rbx]
test eax, eax
jle 0x100490c80
mov edx, dword [rsp + 0x148]
test edx, edx
jle 0x100490c80
mov esi, dword [rsp + 0x148]
mov dword [0x1007218f4], esi
test edi, edi
jne 0x100490cc1
mov rcx, qword [rbx + 0x10]
movsxd rdx, eax
lea r9, [0x10048f490]
mov r8d, 8
call fcn.100673050
mov eax, 1
jmp 0x100490a12
mov edx, 1
mov rcx, rbx
call sym.vim.exe_ga_grow
cmp eax, 1
jne 0x100490cf8
movsxd rax, dword [rbx]
mov rdx, qword [rbx + 0x10]
lea ecx, [rax + 1]
mov dword [rbx], ecx
mov qword [rdx + rax*8], r14
jmp 0x100490800
movzx edx, byte [rax + 0x19]
test dl, dl
je 0x100490800
cmp dl, 0x2e
jne 0x10049081f
cmp byte [rax + 0x1a], 0
jne 0x10049081f
jmp 0x100490800
mov rcx, r14
call sym.vim.exe_vim_free
jmp 0x100490800
xor r15d, r15d
call sym.vim.exe_vim_free
mov r8, r12
lea rdx, [0x1006c0701]
mov rcx, r14
call sym.vim.exe_dict_add_string
test eax, eax
je 0x100490a00
mov r8, 0xffffffffffffffff
lea rdx, [0x1006c07ea]
mov rcx, r14
call sym.vim.exe_dict_add_number
test eax, eax
je 0x100490a00
mov r8, 0xffffffffffffffff
lea rdx, [0x1006c07ef]
mov rcx, r14
call sym.vim.exe_dict_add_number
test eax, eax
je 0x100490a00
test r15, r15
lea r12, [0x1006c0700]
lea rdx, [0x1006c07f4]
mov rcx, r14
cmove r15, r12
mov r8, r15
call sym.vim.exe_dict_add_string
test eax, eax
je 0x100490a00
mov r8, r12
lea rdx, str.perm
mov rcx, r14
call sym.vim.exe_dict_add_string
test eax, eax
je 0x100490a00
mov r8, r12
lea rdx, [0x1006c07fe]
mov rcx, r14
call sym.vim.exe_dict_add_string
test eax, eax
je 0x100490a00
mov r8, r12
jmp 0x1004909ed
mov rdx, r15
mov qword [rsp + 0x38], rcx
call sub.msys_2.0.dll_stat
mov rcx, qword [rsp + 0x38]
test eax, eax
js 0x100490ce8
mov dword [rsp + 0x38], 1
jmp 0x1004908da
mov rcx, r15
call sym.vim.exe_getftypest
mov r8, rax
jmp 0x100490974
mov ecx, dword [rsp + 0x148]
test ecx, ecx
mov rcx, r14
setg sil
test edi, edi
je 0x100490c8a
call sym.vim.exe_dict_unref
mov rcx, r13
call sub.msys_2.0.dll_closedir
mov eax, dword [rbx]
test eax, eax
jle 0x100490c80
test sil, sil
jne 0x100490cb4
nop dword [rax]
mov eax, 1
jmp 0x100490a12
call sym.vim.exe_vim_free
mov rcx, r13
call sub.msys_2.0.dll_closedir
mov eax, dword [rbx]
test eax, eax
jle 0x100490c80
test sil, sil
je 0x100490c80
mov edi, dword [rsp + 0x148]
mov dword [0x1007218f4], edi
jmp 0x100490abe
mov edi, dword [rsp + 0x148]
mov dword [0x1007218f4], edi
mov rcx, qword [rbx + 0x10]
movsxd rdx, eax
lea r9, [0x10048f410]
mov r8d, 8
call fcn.100673050
mov eax, 1
jmp 0x100490a12
lea r15, [0x1006c07df]
jmp 0x100490b53
mov rcx, r14
test edi, edi
je 0x100490d13
call sym.vim.exe_dict_unref
mov rcx, r13
call sub.msys_2.0.dll_closedir
xor eax, eax
jmp 0x100490a12
call sym.vim.exe_vim_free
mov rcx, r13
call sub.msys_2.0.dll_closedir
xor eax, eax
jmp 0x100490a12
mov rcx, qword [sym.vim.exe_e_cant_open_file_str]
call sub.msys_intl_8.dll_libintl_gettext
mov rdx, rbp
mov rcx, rax
call sym.vim.exe_semsg
xor eax, eax
jmp 0x100490a12