Function at 0x10061ba10
Capabilities:
Get file attributes

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x1b8
mov rax, qword [sym.vim.exe_p_viminfofile]
mov r12, rcx
mov rcx, qword [rax]
mov dword [rsp + 0x208], edx
lea rdx, [0x1006e2d10]
call sub.msys_2.0.dll_strcmp
test eax, eax
jne 0x10061ba5b
add rsp, 0x1b8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, r12
call fcn.100617970
mov qword [rsp + 0x20], rax
mov rcx, rax
test rax, rax
je 0x10061ba47
lea rdx, [0x1006e2d15]
call sub.msys_2.0.dll_fopen
mov qword [rsp + 0x28], rax
test rax, rax
je 0x10061bd00
mov rcx, qword [rsp + 0x28]
call sub.msys_2.0.dll_fileno
lea rdx, [rsp + 0xb0]
mov ecx, eax
call sub.msys_2.0.dll_fstat
test eax, eax
js 0x10067eb31
mov eax, dword [rsp + 0xc0]
and eax, 0xf000
cmp eax, 0x4000
je 0x10067eb31
call sub.msys_2.0.dll_getuid
test eax, eax
jne 0x10061bcd5
xor edi, edi
lea rsi, [rsp + 0x30]
lea rbp, [0x1006e2d5a]
nop dword [rax]
mov rdx, qword [rsp + 0x20]
xor r9d, r9d
lea r8, str..tmp
mov ecx, edi
call sym.vim.exe_buf_modname
mov r12, rax
test rax, rax
je 0x10067ead8
mov rcx, rax
call sub.msys_2.0.dll_strlen
mov rcx, r12
lea rbx, [r12 + rax - 5]
call sym.vim.exe_gettail
cmp rbx, rax
jb 0x10061bcc5
mov r15d, 0x7a
jmp 0x10061bb56
test edi, edi
jne 0x10061bb45
mov eax, dword [rsp + 0xb0]
cmp dword [rsp + 0x30], eax
je 0x10061bca0
cmp r15d, 0x60
je 0x10061be42
mov byte [rbx], r15b
sub r15d, 1
mov rdx, rsi
mov rcx, r12
call sub.msys_2.0.dll_stat
test eax, eax
je 0x10061bb30
xor ecx, ecx
call sub.msys_2.0.dll_umask
mov rcx, r12
mov edx, 0x110a01
movzx r8d, byte [rsp + 0xc0]
mov r13d, eax
or r8d, 0x180
call sub.msys_2.0.dll_open
mov ecx, r13d
mov r14d, eax
call sub.msys_2.0.dll_umask
test r14d, r14d
js 0x10061bc88
mov ecx, r14d
mov rdx, rbp
call sub.msys_2.0.dll_fdopen
mov r14, rax
test rax, rax
je 0x10061bb45
lea rdx, [rsp + 0x130]
mov rcx, r12
call sub.msys_2.0.dll_stat
test eax, eax
js 0x10061bd95
mov ebx, dword [rsp + 0xc8]
cmp ebx, dword [rsp + 0x148]
jne 0x10061bd50
mov ebx, dword [rsp + 0xcc]
cmp ebx, dword [rsp + 0x14c]
jne 0x10061bd75
mov rax, qword [sym.vim.exe_p_verbose]
cmp qword [rax], 0
jg 0x10061be1a
cmp dword [rsp + 0x208], 1
mov rcx, qword [rsp + 0x28]
mov rdx, r14
mov dword [0x100729e28], 0
sbb r8d, r8d
and r8d, 3
call fcn.100618290
mov rcx, r14
call fcn.100672bf0
cmp eax, 0xffffffff
jne 0x10061bc3e
add dword [0x100729e28], 1
mov rax, qword [rsp + 0x28]
test rax, rax
je 0x10061bc6a
mov rcx, rax
call fcn.100672bf0
mov eax, dword [0x100729e28]
test eax, eax
je 0x10061bde6
test eax, eax
jle 0x10061bc6a
mov rcx, r12
call sub.msys_2.0.dll_unlink
mov rcx, qword [rsp + 0x20]
call sym.vim.exe_vim_free
mov rcx, r12
call sym.vim.exe_vim_free
jmp 0x10061ba47
call sub.msys_2.0.dll___errno
cmp dword [rax], 0x11
je 0x10061bb45
jmp 0x10067eb18
mov rax, qword [rsp + 0xb8]
cmp qword [rsp + 0x38], rax
jne 0x10061bb45
mov rcx, r12
mov edi, 1
call sym.vim.exe_vim_free
jmp 0x10061bae0
mov rcx, r12
call sym.vim.exe_gettail
mov rbx, rax
jmp 0x10061bb20
mov ebx, dword [rsp + 0xc8]
call sub.msys_2.0.dll_getuid
cmp ebx, eax
jne 0x10061bd1f
test byte [rsp + 0xc0], 0x80
jne 0x10061bacf
jmp 0x10067eb31
mov rcx, qword [rsp + 0x20]
lea rdx, [rsp + 0x30]
call sub.msys_2.0.dll_stat
test eax, eax
jne 0x10061bda7
xor r12d, r12d
jmp 0x10061bc6a
mov ebx, dword [rsp + 0xcc]
call sub.msys_2.0.dll_getgid
cmp ebx, eax
je 0x10061be07
test byte [rsp + 0xc0], 2
jne 0x10061bacf
jmp 0x10067eb31
mov rcx, r14
call sub.msys_2.0.dll_fileno
mov edx, ebx
mov r8d, 0xffffffff
mov ecx, eax
call sub.msys_2.0.dll_fchown
mov rdx, qword [sym.vim.exe_vim_ignored]
mov dword [rdx], eax
jmp 0x10061bbdf
mov rcx, r14
call sub.msys_2.0.dll_fileno
mov r8d, ebx
mov edx, 0xffffffff
mov ecx, eax
call sub.msys_2.0.dll_fchown
cmp eax, 0xffffffff
jne 0x10061bbf3
mov edx, 0x180
mov rcx, r12
call sym.vim.exe_mch_setperm
jmp 0x10061bbf3
mov rcx, qword [rsp + 0x20]
mov r8d, 0x180
mov edx, 0x110a01
call sub.msys_2.0.dll_open
mov ecx, eax
test eax, eax
js 0x10061bd17
lea rdx, [0x1006e2d5a]
call sub.msys_2.0.dll_fdopen
mov r14, rax
test rax, rax
je 0x10067eab6
xor r12d, r12d
jmp 0x10061bbf3
mov rdx, qword [rsp + 0x20]
mov rcx, r12
call sym.vim.exe_vim_rename
cmp eax, 0xffffffff
je 0x10067eb68
mov eax, dword [0x100729e28]
jmp 0x10061bc5e
test byte [rsp + 0xc0], 0x10
jne 0x10061bacf
jmp 0x10067eb31
call sym.vim.exe_verbose_enter
lea rcx, str.Writing_viminfo_file___s_
call sub.msys_intl_8.dll_libintl_gettext
mov rdx, qword [rsp + 0x20]
mov rcx, rax
call sym.vim.exe_smsg
call sym.vim.exe_verbose_leave
jmp 0x10061bc04
jmp 0x10067eb01
mov rcx, qword [sym.vim.exe_e_cant_write_viminfo_file_str]
xor r12d, r12d
call sub.msys_intl_8.dll_libintl_gettext
mov rdx, qword [rsp + 0x20]
mov rcx, rax
call sym.vim.exe_semsg
nop
jmp 0x10061bc6a
mov rcx, qword [sym.vim.exe_e_cant_write_viminfo_file_str]
call sub.msys_intl_8.dll_libintl_gettext
mov rdx, qword [rsp + 0x20]
mov rcx, rax
call sym.vim.exe_semsg
mov rcx, qword [rsp + 0x28]
call fcn.100672bf0
nop
jmp 0x10061bc6a
mov rcx, qword [sym.vim.exe_e_too_many_viminfo_temp_files_like_str]
call sub.msys_intl_8.dll_libintl_gettext
mov rdx, r12
mov rcx, rax
call sym.vim.exe_semsg
mov rcx, qword [sym.vim.exe_e_cant_write_viminfo_file_str]
call sub.msys_intl_8.dll_libintl_gettext
mov rdx, r12
mov rcx, rax
call sym.vim.exe_semsg
jmp 0x10067eaf1
mov rbx, qword [sym.vim.exe_msg_didany]
mov rcx, qword [sym.vim.exe_e_viminfo_file_is_not_writable_str]
xor r12d, r12d
mov esi, dword [rbx]
call sub.msys_intl_8.dll_libintl_gettext
mov rdx, qword [rsp + 0x20]
mov rcx, rax
call sym.vim.exe_semsg
mov rcx, qword [rsp + 0x28]
mov dword [rbx], esi
call fcn.100672bf0
nop
jmp 0x10061bc6a
mov rcx, qword [sym.vim.exe_e_cant_rename_viminfo_file_to_str]
add dword [0x100729e28], 1
call sub.msys_intl_8.dll_libintl_gettext
mov rdx, qword [rsp + 0x20]
mov rcx, rax
call sym.vim.exe_semsg
mov eax, dword [0x100729e28]
jmp 0x10061bc5e