Function at 0x1005a00f0
Capabilities:
Create directory

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x278
mov eax, dword [rsp + 0x2e0]
mov dword [rsp + 0x40], eax
mov rax, qword [sym.vim.exe_enc_utf8]
mov rdi, rcx
mov r15d, r9d
mov dword [rsp + 0x54], edx
mov r11d, dword [rax]
mov dword [rsp + 0x44], r8d
test r11d, r11d
jne 0x1005a0480
test r15d, r15d
je 0x1005a02d0
mov rbx, qword [sym.vim.exe_curwin]
xor r13d, r13d
mov rax, qword [rbx]
mov rax, qword [rax + 0x20]
mov rdx, qword [rax + 0x490]
cmp byte [rdx], 0
je 0x1005a05a8
mov ecx, 0x1000
call sym.vim.exe_alloc
mov r14, rax
test rax, rax
je 0x1005a0467
mov rax, qword [rbx]
mov rax, qword [rax + 0x20]
mov rax, qword [rax + 0x490]
mov qword [rsp + 0x68], rax
cmp byte [rax], 0
je 0x1005a01ca
mov esi, 1
lea rbx, [rsp + 0x68]
lea rbp, [0x1006d605c]
jmp 0x1005a01b1
mov rax, qword [rsp + 0x68]
cmp byte [rax], 0
je 0x10067a5a5
add esi, 1
mov r9, rbp
mov r8d, 0x1000
mov rdx, r14
mov rcx, rbx
call sym.vim.exe_copy_option_part
cmp r15d, esi
jne 0x1005a01a0
mov rcx, r14
call sym.vim.exe_buflist_findname_exp
mov qword [rsp + 0x48], rax
test rax, rax
je 0x1005a01f7
cmp qword [rax + 8], 0
je 0x1005a04c0
mov rcx, rax
call sym.vim.exe_bufIsChanged
test eax, eax
jne 0x1005a0602
mov ecx, dword [rsp + 0x40]
cmp dword [rsp + 0x44], 1
mov qword [rsp + 0x60], r14
sete al
mov qword [rsp + 0x38], r14
test ecx, ecx
setne byte [rsp + 0x53]
movzx ebx, byte [rsp + 0x53]
or bl, al
mov byte [rsp + 0x52], bl
jne 0x1005a090a
mov rbx, qword [rsp + 0x38]
lea r12, [0x1006d60bb]
mov rdx, r12
mov rcx, rbx
call sub.msys_2.0.dll_fopen
mov rbp, rax
test rax, rax
jne 0x1005a02a0
and r13b, 1
je 0x1005a0297
mov rcx, rbx
call sym.vim.exe_dir_of_file_exists
test eax, eax
jne 0x10067a5ca
mov rsi, qword [rsp + 0x38]
mov rcx, rsi
call sym.vim.exe_gettail_sep
mov rbx, rax
cmp rax, rsi
je 0x10067a5ca
movzx ebp, byte [rbx]
mov byte [rbx], 0
mov edx, 0x1ed
mov rcx, rsi
call sub.msys_2.0.dll_mkdir
mov byte [rbx], bpl
mov rdx, r12
mov rcx, rsi
call sub.msys_2.0.dll_fopen
mov rbp, rax
test rbp, rbp
je 0x10067a5ca
cmp byte [rsp + 0x52], 0
je 0x1005a093c
mov r8d, dword [rsp + 0x54]
mov r9, rdi
mov rcx, rbp
mov rsi, r14
lea rdx, [0x1006d60bd]
mov r14, rbp
call sub.msys_2.0.dll_fprintf
jmp 0x1005a08b3
mov rsi, qword [sym.vim.exe_int_wordlist]
mov rax, qword [rsi]
mov qword [rsp + 0x38], rax
test rax, rax
je 0x1005a05e0
mov r10d, dword [rsp + 0x40]
mov rax, qword [rsp + 0x38]
cmp dword [rsp + 0x44], 1
sete byte [rsp + 0x52]
test r10d, r10d
movzx esi, byte [rsp + 0x52]
mov qword [rsp + 0x60], rax
setne al
mov byte [rsp + 0x53], al
test sil, sil
jne 0x1005a031d
test al, al
je 0x1005a0869
mov qword [rsp + 0x48], 0
xor r14d, r14d
mov rcx, qword [rsp + 0x38]
lea rdx, [0x1006d53f7]
xor ebp, ebp
lea r13, [rsp + 0x70]
call sub.msys_2.0.dll_fopen
mov r12, rax
test rax, rax
je 0x1005a0452
mov rsi, qword [rsp + 0x38]
mov ebx, dword [rsp + 0x54]
mov qword [rsp + 0x58], r14
mov dword [rsp + 0x38], r15d
jmp 0x1005a036b
mov rbp, r14
mov r8, r12
mov edx, 0x1fc
mov rcx, r13
call sym.vim.exe_vim_fgets
test eax, eax
jne 0x1005a04d0
mov rcx, r12
call sub.msys_2.0.dll_ftell
mov r14, rax
test rax, rax
js 0x1005a04d0
movsxd r15, ebx
mov rdx, r13
mov rcx, rdi
mov r8, r15
call sub.msys_2.0.dll_strncmp
test eax, eax
jne 0x1005a0368
movzx eax, byte [rsp + r15 + 0x70]
cmp al, 0x2f
je 0x1005a03ba
cmp al, 0x1f
ja 0x1005a0368
mov rcx, r12
call fcn.100672bf0
lea rdx, [0x1006d607d]
mov rcx, rsi
call sub.msys_2.0.dll_fopen
mov r12, rax
test rax, rax
je 0x1005a0448
xor r8d, r8d
mov rdx, rbp
mov rcx, rax
call sub.msys_2.0.dll_fseek
test eax, eax
je 0x1005a0540
xor r8d, r8d
mov rdx, r14
mov rcx, r12
call sub.msys_2.0.dll_fseek
test eax, eax
je 0x1005a0368
mov r14, qword [rsp + 0x58]
mov r15d, dword [rsp + 0x38]
call sub.msys_2.0.dll___errno
mov ecx, dword [rax]
call sub.msys_2.0.dll_strerror
lea rcx, str.Seek_error_in_spellfile
mov rbx, rax
call sub.msys_intl_8.dll_libintl_gettext
mov r8, rbx
lea rcx, [0x1006d60b4]
mov rdx, rax
call sym.vim.exe_semsg
jmp 0x1005a04da
mov r14, qword [rsp + 0x58]
mov r15d, dword [rsp + 0x38]
mov eax, dword [rsp + 0x40]
test eax, eax
je 0x1005a0916
mov rcx, r14
call sym.vim.exe_vim_free
nop
add rsp, 0x278
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
xor edx, edx
call sym.vim.exe_utf_valid_string
test eax, eax
jne 0x1005a0130
mov rcx, qword [sym.vim.exe_e_illegal_character_in_word]
call sub.msys_intl_8.dll_libintl_gettext
mov rcx, rax
add rsp, 0x278
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp sym.vim.exe_emsg
mov qword [rsp + 0x48], 0
jmp 0x1005a01f7
mov r14, qword [rsp + 0x58]
mov r15d, dword [rsp + 0x38]
mov rcx, r12
call fcn.100672bf0
mov edx, dword [rsp + 0x40]
test edx, edx
je 0x1005a0916
mov dword [rsp + 0x20], 1
xor r8d, r8d
lea rdx, [rsp + 0x60]
mov r9d, 1
mov ecx, 1
call sym.vim.exe_mkspell
cmp qword [rsp + 0x48], 0
je 0x1005a0529
mov rcx, qword [rsp + 0x48]
xor r8d, r8d
mov edx, dword [rcx + 0x158]
call sym.vim.exe_buf_reload
mov ecx, 0x23
call sym.vim.exe_redraw_all_later
jmp 0x1005a045e
mov rdx, r12
mov ecx, 0x23
call sub.msys_2.0.dll_fputc
cmp byte [rsp + 0x53], 0
je 0x1005a03ef
mov rax, qword [sym.vim.exe_NameBuff]
mov dword [rsp + 0x20], 1
mov rdx, rsi
xor ecx, ecx
mov r9d, 0x1000
mov r8, qword [rax]
call sym.vim.exe_home_replace
mov rax, qword [sym.vim.exe_NameBuff]
lea rcx, str.Word__.s_removed_from__s
mov rbp, qword [rax]
call sub.msys_intl_8.dll_libintl_gettext
mov r8, rdi
mov edx, ebx
mov rcx, rax
mov r9, rbp
call sym.vim.exe_smsg
jmp 0x1005a03ef
mov rcx, qword [rax + 0x498]
mov rsi, qword [sym.vim.exe_curbuf]
cmp byte [rcx], 0
mov r8, qword [rsi]
je 0x1005a05ca
mov r9d, dword [rax + 0x360]
test r9d, r9d
jg 0x1005a0623
cmp byte [rdx], 0
je 0x10067a577
mov r13d, 1
jmp 0x1005a015a
xor edx, edx
mov ecx, 0x73
call sym.vim.exe_vim_tempname
mov qword [rsp + 0x38], rax
mov qword [rsi], rax
test rax, rax
jne 0x1005a02e8
jmp 0x1005a0467
mov rcx, qword [sym.vim.exe_e_file_is_loaded_in_another_buffer]
call sub.msys_intl_8.dll_libintl_gettext
mov rcx, rax
call sym.vim.exe_emsg
mov rcx, r14
call sym.vim.exe_vim_free
jmp 0x1005a0467
mov ecx, 0x1000
mov r14, qword [r8 + 0x2408]
call sym.vim.exe_alloc
mov r12, rax
mov rax, qword [rbx]
mov rax, qword [rax + 0x20]
test r12, r12
je 0x1005a0815
mov rsi, qword [rax + 0x498]
xor ebp, ebp
lea r13, [0x1006d6058]
movzx eax, byte [rsi]
test al, al
jne 0x1005a0689
jmp 0x1005a084f
movzx ecx, byte [rsi]
add rsi, 1
call sym.vim.exe_vim_ispathsep
test eax, eax
mov eax, 1
cmovne ebp, eax
movzx eax, byte [rsi]
cmovne r14, rsi
test al, al
je 0x1005a0699
movzx edx, al
mov rcx, r13
call sym.vim.exe_vim_strchr
test rax, rax
je 0x1005a0668
mov rax, qword [sym.vim.exe_p_rtp]
mov rax, qword [rax]
mov qword [rsp + 0x70], rax
cmp byte [rax], 0
je 0x1005a0806
test ebp, ebp
je 0x1005a06f7
mov rax, qword [sym.vim.exe_curbuf]
mov r8, r14
mov rcx, r12
mov rax, qword [rax]
mov rdx, qword [rax + 0x2408]
sub r8, rdx
sub r8, 1
call sym.vim.exe_vim_strncpy
mov rcx, r12
call sym.vim.exe_filewritable
cmp eax, 2
je 0x1005a082b
mov rax, qword [rsp + 0x70]
cmp byte [rax], 0
je 0x1005a0806
lea r13, [rsp + 0x70]
lea r9, [0x1006d605c]
mov r8d, 0x1000
mov rdx, r12
mov rcx, r13
call sym.vim.exe_copy_option_part
mov rcx, r12
call sym.vim.exe_filewritable
cmp eax, 2
jne 0x1005a06e9
mov rcx, r12
call sub.msys_2.0.dll_strlen
mov edx, 0x1000
lea r8, str._spell
sub edx, eax
cdqe
lea rcx, [r12 + rax]
movsxd rdx, edx
call sym.vim.exe_vim_snprintf
mov rcx, r12
call sym.vim.exe_filewritable
cmp eax, 2
je 0x1005a075f
mov edx, 0x1ed
mov rcx, r12
call sub.msys_2.0.dll_mkdir
mov rcx, r12
call sub.msys_2.0.dll_strlen
mov edx, 0x1000
mov r9d, esi
mov qword [rsp + 0x20], r14
sub edx, eax
cdqe
lea r8, str.__.s
sub r9d, r14d
movsxd rdx, edx
lea rcx, [r12 + rax]
call sym.vim.exe_vim_snprintf
mov rcx, r12
call sub.msys_2.0.dll_strlen
mov rsi, rax
mov rax, qword [rbx]
mov rax, qword [rax + 0x20]
mov rax, qword [rax + 0x370]
mov rax, qword [rax]
mov rcx, qword [rax + 0x10]
test rcx, rcx
je 0x1005a0821
call sym.vim.exe_gettail
lea rdx, str..ascii.
mov rcx, rax
call sub.msys_2.0.dll_strstr
test rax, rax
je 0x1005a0821
lea r9, [0x1006d5c40]
mov edx, 0x1000
movsxd rcx, esi
lea r8, str.._s.add
sub edx, esi
add rcx, r12
movsxd rdx, edx
call sym.vim.exe_vim_snprintf
mov r9d, 4
mov r8, r12
xor edx, edx
lea rcx, str.spellfile
call sym.vim.exe_set_option_value_give_err
mov rcx, r12
call sym.vim.exe_vim_free
mov rax, qword [rbx]
mov rax, qword [rax + 0x20]
mov rdx, qword [rax + 0x490]
jmp 0x1005a05ca
call sym.vim.exe_spell_enc
mov r9, rax
jmp 0x1005a07d3
mov rax, qword [sym.vim.exe_curbuf]
mov rcx, r12
mov rax, qword [rax]
mov rdx, qword [rax + 0x2408]
sub rsi, rdx
mov r8, rsi
call sym.vim.exe_vim_strncpy
jmp 0x1005a078e
mov rax, qword [sym.vim.exe_p_rtp]
mov rax, qword [rax]
mov qword [rsp + 0x70], rax
cmp byte [rax], 0
jne 0x1005a06f7
jmp 0x1005a0806
mov rcx, qword [rsp + 0x38]
lea rdx, [0x1006d60bb]
call sub.msys_2.0.dll_fopen
mov r14, rax
test rax, rax
je 0x10067a5ca
mov qword [rsp + 0x48], 0
xor esi, esi
cmp dword [rsp + 0x44], 2
mov r8d, dword [rsp + 0x54]
mov r9, rdi
je 0x1005a0928
lea rdx, str._.s_n
mov rcx, r14
call sub.msys_2.0.dll_fprintf
mov rcx, r14
mov r14, rsi
call fcn.100672bf0
mov rbp, qword [sym.vim.exe_NameBuff]
mov rdx, qword [rsp + 0x38]
xor ecx, ecx
mov dword [rsp + 0x20], 1
mov r9d, 0x1000
mov r8, qword [rbp]
call sym.vim.exe_home_replace
mov rbx, qword [rbp]
lea rcx, str.Word__.s_added_to__s
call sub.msys_intl_8.dll_libintl_gettext
mov edx, dword [rsp + 0x54]
mov r8, rdi
mov rcx, rax
mov r9, rbx
call sym.vim.exe_smsg
jmp 0x1005a04ee
mov byte [rsp + 0x52], al
mov r15d, r13d
jmp 0x1005a0329
mov rax, qword [rsp + 0x60]
mov r13d, r15d
mov qword [rsp + 0x38], rax
jmp 0x1005a0225
lea rdx, str._.s___n
mov rcx, r14
call sub.msys_2.0.dll_fprintf
jmp 0x1005a08b3
mov rsi, r14
mov r14, rbp
jmp 0x1005a0891
mov rcx, qword [sym.vim.exe_e_option_str_is_not_set]
call sub.msys_intl_8.dll_libintl_gettext
lea rdx, str.spellfile
mov rcx, rax
add rsp, 0x278
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp sym.vim.exe_semsg
mov rcx, qword [sym.vim.exe_e_spellfile_does_not_have_nr_entries]
call sub.msys_intl_8.dll_libintl_gettext
mov edx, r15d
mov rcx, rax
call sym.vim.exe_semsg
mov rcx, r14
call sym.vim.exe_vim_free
nop
jmp 0x1005a0467
mov rcx, qword [sym.vim.exe_e_cant_open_file_str]
call sub.msys_intl_8.dll_libintl_gettext
mov rdx, qword [rsp + 0x38]
mov rcx, rax
call sym.vim.exe_semsg
nop
jmp 0x1005a045e