Function at 0x10049c780
Capabilities:
Get file attributes

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xc8
mov qword [rsp + 0x110], rcx
mov rcx, rdx
mov r12, rdx
mov qword [rsp + 0x120], r8
call sym.vim.exe_path_with_url
mov dword [rsp + 0x34], eax
test eax, eax
je 0x10049ca48
mov rcx, qword [0x100721930]
mov r8d, 0xfff
mov rdx, r12
call sym.vim.exe_vim_strncpy
mov dword [rsp + 0x34], 1
mov rax, qword [rsp + 0x110]
mov r15, qword [rax]
test r15, r15
jne 0x10049c813
jmp 0x10049c998
mov r9d, dword [r15 + 0x10]
test r9d, r9d
je 0x10049c807
mov eax, dword [rsp + 0x40]
cmp dword [r15 + 0x14], eax
je 0x10049ca30
mov r15, qword [r15]
test r15, r15
je 0x10049c998
mov r10d, dword [rsp + 0x34]
test r10d, r10d
je 0x10049c7f0
mov rdx, qword [0x100721930]
lea rcx, [r15 + 0x20]
call sym.vim.exe_vim_fnamecmp
test eax, eax
jne 0x10049c807
mov rax, qword [r15 + 8]
mov rdi, rax
cmp rax, qword [rsp + 0x120]
je 0x10049ca70
test rax, rax
je 0x10049c807
cmp qword [rsp + 0x120], 0
je 0x10049c807
movzx edx, byte [rax]
mov rax, qword [rsp + 0x120]
movzx eax, byte [rax]
test dl, dl
je 0x10049caa4
mov r13, rdi
mov qword [rsp + 0x38], r15
xor esi, esi
xor edi, edi
xor r14d, r14d
xor ebp, ebp
mov r15, r13
jmp 0x10049c90f
mov rax, qword [sym.vim.exe_mb_ptr2char]
mov rcx, r15
call qword [rax]
mov ebx, eax
mov rax, qword [sym.vim.exe_has_mbyte]
mov ecx, dword [rax]
test ecx, ecx
je 0x10049cacc
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]
mov edx, dword [rax]
test edx, edx
jne 0x10049c94e
cmp r8d, ebx
je 0x10049c8df
cmp ebp, 0x2a
jne 0x10049c980
cmp r14d, 0x2a
jne 0x10049c980
mov r14, qword [sym.vim.exe_mb_ptr2len]
mov rcx, r15
call qword [r14]
mov rcx, r12
add edi, eax
call qword [r14]
movsxd r9, edi
mov r14d, ebp
lea r15, [r13 + r9]
add esi, eax
movzx edx, byte [r15]
test dl, dl
je 0x10049ca90
mov ebp, ebx
movsxd r12, esi
add r12, qword [rsp + 0x120]
movzx eax, byte [r12]
test al, al
je 0x10049c980
mov rbx, qword [sym.vim.exe_has_mbyte]
mov r8d, dword [rbx]
test r8d, r8d
jne 0x10049c888
movzx ebx, dl
movzx r8d, al
mov rax, qword [sym.vim.exe_p_fic]
mov edx, dword [rax]
test edx, edx
je 0x10049c8c7
mov ecx, ebx
mov dword [rsp + 0x30], r8d
call sym.vim.exe_vim_tolower
mov ecx, dword [rsp + 0x30]
mov dword [rsp + 0x2c], eax
call sym.vim.exe_vim_tolower
cmp dword [rsp + 0x2c], eax
je 0x10049c8df
cmp ebp, 0x2a
je 0x10049c8d5
nop word [rax + rax]
mov r15, qword [rsp + 0x38]
mov r15, qword [r15]
test r15, r15
jne 0x10049c813
nop dword [rax]
mov rcx, qword [0x100721930]
call sub.msys_2.0.dll_strlen
lea rcx, [rax + 0x28]
call sym.vim.exe_alloc
mov rbx, rax
test rax, rax
je 0x10049ca21
mov eax, dword [rsp + 0x34]
test eax, eax
jne 0x10049cab0
mov rax, qword [rsp + 0x48]
mov dword [rbx + 0x10], 1
mov byte [rbx + 0x20], 0
mov qword [rbx + 0x18], rax
mov eax, dword [rsp + 0x40]
mov dword [rbx + 0x14], eax
cmp qword [rsp + 0x120], 0
je 0x10049c9fc
mov rcx, qword [rsp + 0x120]
call sym.vim.exe_vim_strsave
mov qword [rsp + 0x120], rax
mov rax, qword [rsp + 0x120]
mov qword [rbx + 8], rax
mov rax, qword [rsp + 0x110]
mov rax, qword [rax]
mov qword [rbx], rax
mov rax, qword [rsp + 0x110]
mov qword [rax], rbx
mov eax, 1
jmp 0x10049ca72
mov rax, qword [rsp + 0x48]
cmp qword [r15 + 0x18], rax
jne 0x10049c807
jmp 0x10049c831
mov rax, qword [0x100721930]
lea rdx, [rsp + 0x40]
mov rcx, r12
mov byte [rax], 0
call sub.msys_2.0.dll_stat
test eax, eax
jns 0x10049c7d7
nop word [rax + rax]
xor eax, eax
add rsp, 0xc8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rax, qword [rsp + 0x120]
movsxd rsi, esi
mov r15, qword [rsp + 0x38]
movzx eax, byte [rax + rsi]
test al, al
jne 0x10049c807
jmp 0x10049ca70
mov dword [rbx + 0x10], 0
mov rdx, qword [0x100721930]
lea rcx, [rbx + 0x20]
call sub.msys_2.0.dll_strcpy
jmp 0x10049c9dc
movzx eax, byte [r12]
jmp 0x10049c939