Function at 0x1004961b0
Capabilities:
Get file attributes

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0xc8
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x90], rcx
mov rcx, rdx
mov r12, rdx
mov r15, r8
call sym.vim.exe_path_with_url
mov dword [rbp - 0x58], eax
test eax, eax
je 0x1004964a0
mov rcx, qword [0x1007088d0]
mov r8d, 0xfff
mov rdx, r12
call sym.vim.exe_vim_strncpy
mov dword [rbp - 0x58], 1
mov rax, qword [rbp + 0x90]
mov r14, qword [rax]
test r14, r14
jne 0x100496242
jmp 0x1004963c0
mov r8d, dword [r14 + 0x10]
test r8d, r8d
je 0x100496236
mov eax, dword [rbp - 0x40]
cmp dword [r14 + 0x14], eax
je 0x100496438
mov r14, qword [r14]
test r14, r14
je 0x1004963c0
mov r9d, dword [rbp - 0x58]
test r9d, r9d
je 0x100496220
mov rdx, qword [0x1007088d0]
lea rcx, [r14 + 0x20]
call sym.vim.exe_vim_fnamecmp
test eax, eax
jne 0x100496236
mov rax, qword [r14 + 8]
mov qword [rbp - 0x50], rax
cmp rax, r15
je 0x100496460
mov rax, qword [rbp - 0x50]
test rax, rax
je 0x100496236
test r15, r15
je 0x100496236
movzx edx, byte [rax]
movzx eax, byte [r15]
test dl, dl
je 0x10049648c
xor ecx, ecx
mov qword [rbp - 0x60], r14
mov r13, qword [rbp - 0x50]
xor esi, esi
mov dword [rbp - 0x44], 0
xor edi, edi
xor r12d, r12d
mov r14d, ecx
jmp 0x10049634b
mov rax, qword [sym.vim.exe_mb_ptr2char]
mov rcx, r13
call qword [rax]
mov ebx, eax
mov rax, qword [sym.vim.exe_has_mbyte]
mov edx, dword [rax]
test edx, edx
je 0x1004964ed
mov rax, qword [sym.vim.exe_mb_ptr2char]
mov rcx, r12
call qword [rax]
mov r8d, eax
mov rax, qword [sym.vim.exe_p_fic]
cmp qword [rax], 0
jne 0x10049637b
cmp r8d, ebx
je 0x100496308
cmp r14d, 0x2a
jne 0x1004963b0
cmp dword [rbp - 0x44], 0x2a
jne 0x1004963b0
mov rax, qword [sym.vim.exe_mb_ptr2len]
mov rcx, r13
call qword [rax]
mov rcx, r12
add edi, eax
mov rax, qword [sym.vim.exe_mb_ptr2len]
call qword [rax]
movsxd r9, edi
add esi, eax
mov rax, qword [rbp - 0x50]
lea r13, [rax + r9]
movzx edx, byte [r13]
test dl, dl
je 0x100496480
movsxd r12, esi
mov dword [rbp - 0x44], r14d
mov r14d, ebx
movzx eax, byte [r15 + r12]
add r12, r15
test al, al
je 0x1004963b0
mov rbx, qword [sym.vim.exe_has_mbyte]
mov ecx, dword [rbx]
test ecx, ecx
jne 0x1004962b0
movzx ebx, dl
movzx r8d, al
mov rax, qword [sym.vim.exe_p_fic]
cmp qword [rax], 0
je 0x1004962ef
mov ecx, ebx
mov dword [rbp - 0x54], r8d
call sym.vim.exe_vim_tolower
mov r8d, dword [rbp - 0x54]
mov dword [rbp - 0x48], eax
mov ecx, r8d
call sym.vim.exe_vim_tolower
cmp dword [rbp - 0x48], eax
je 0x100496308
cmp r14d, 0x2a
je 0x1004962fe
nop dword [rax + rax]
mov r14, qword [rbp - 0x60]
mov r14, qword [r14]
test r14, r14
jne 0x100496242
mov rcx, qword [0x1007088d0]
call sub.msys_2.0.dll_strlen
lea rcx, [rax + 0x28]
call sym.vim.exe_alloc
mov rbx, rax
test rax, rax
je 0x10049642d
mov eax, dword [rbp - 0x58]
test eax, eax
jne 0x1004964c0
mov rax, qword [rbp - 0x38]
mov dword [rbx + 0x10], 1
mov byte [rbx + 0x20], 0
mov qword [rbx + 0x18], rax
mov eax, dword [rbp - 0x40]
mov dword [rbx + 0x14], eax
test r15, r15
je 0x1004964e0
mov rcx, r15
call sym.vim.exe_vim_strsave
mov qword [rbx + 8], rax
mov rax, qword [rbp + 0x90]
mov rax, qword [rax]
mov qword [rbx], rax
mov rax, qword [rbp + 0x90]
mov qword [rax], rbx
mov eax, 1
jmp 0x100496462
mov rax, qword [rbp - 0x38]
cmp qword [r14 + 0x18], rax
jne 0x100496236
mov rax, qword [r14 + 8]
mov qword [rbp - 0x50], rax
cmp rax, r15
jne 0x100496270
nop word [rax + rax]
xor eax, eax
add rsp, 0xc8
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
movsxd rsi, esi
mov r14, qword [rbp - 0x60]
movzx eax, byte [r15 + rsi]
test al, al
jne 0x100496236
jmp 0x100496460
mov rax, qword [0x1007088d0]
lea rdx, [rbp - 0x40]
mov rcx, r12
mov byte [rax], 0
call sub.msys_2.0.dll_stat
test eax, eax
jns 0x100496207
jmp 0x100496460
mov dword [rbx + 0x10], 0
mov rdx, qword [0x1007088d0]
lea rcx, [rbx + 0x20]
call sub.msys_2.0.dll_strcpy
test r15, r15
jne 0x10049640a
mov qword [rbx + 8], 0
jmp 0x100496416
movzx eax, byte [r12]
jmp 0x100496366