Function at 0x100593ce0
Capabilities:
Create directory

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0x268
lea rbp, [rsp + 0x80]
mov eax, dword [rbp + 0x250]
mov dword [rbp - 0x4c], edx
mov r15, rcx
mov dword [rbp - 0x38], r8d
mov dword [rbp - 0x40], r9d
mov dword [rbp - 0x34], eax
test r9d, r9d
jne 0x100593ec8
mov rbx, qword [sym.vim.exe_int_wordlist]
mov r12, qword [rbx]
test r12, r12
je 0x1005940d0
mov r9d, dword [rbp - 0x34]
cmp dword [rbp - 0x38], 1
mov qword [rbp - 0x30], r12
sete byte [rbp - 0x3a]
movzx esi, byte [rbp - 0x3a]
test r9d, r9d
setne al
mov byte [rbp - 0x39], al
test sil, sil
jne 0x100593d58
test al, al
je 0x10059442c
mov qword [rbp - 0x48], 0
xor edi, edi
mov rcx, r12
lea rdx, [0x1006bbc27]
lea r13, [rbp - 0x20]
xor r14d, r14d
call sub.msys_2.0.dll_fopen
mov r12, rax
test rax, rax
je 0x1005940f0
movsxd rsi, dword [rbp - 0x4c]
jmp 0x100593d93
mov r14, rbx
mov r8, r12
mov edx, 0x1fc
mov rcx, r13
call sym.vim.exe_vim_fgets
test eax, eax
jne 0x100593e58
mov rcx, r12
call sub.msys_2.0.dll_ftell
mov r8, rsi
mov rdx, r13
mov rcx, r15
mov rbx, rax
call sub.msys_2.0.dll_strncmp
test eax, eax
jne 0x100593d90
movzx eax, byte [rbp + rsi - 0x20]
cmp al, 0x2f
je 0x100593dd5
cmp al, 0x1f
ja 0x100593d90
mov rcx, r12
call fcn.10065e4f0
mov rcx, qword [rbp - 0x30]
lea rdx, [0x1006bcbcb]
call sub.msys_2.0.dll_fopen
mov r12, rax
test rax, rax
je 0x1005940f0
xor r8d, r8d
mov rdx, r14
mov rcx, rax
call sub.msys_2.0.dll_fseek
test eax, eax
je 0x100594110
xor r8d, r8d
mov rdx, rbx
mov rcx, r12
call sub.msys_2.0.dll_fseek
test eax, eax
je 0x100593d90
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, [0x1006bcc02]
mov rdx, rax
call sym.vim.exe_semsg
nop word [rax + rax]
mov rcx, r12
call fcn.10065e4f0
mov eax, dword [rbp - 0x34]
test eax, eax
je 0x1005940fb
mov dword [rsp + 0x20], 1
xor r8d, r8d
lea rdx, [rbp - 0x30]
mov r9d, 1
mov ecx, 1
call sym.vim.exe_mkspell
test rdi, rdi
je 0x100593e9d
mov edx, dword [rdi + 0x158]
mov rcx, rdi
call sym.vim.exe_buf_reload
mov ecx, 0x23
call sym.vim.exe_redraw_all_later
mov rcx, qword [rbp - 0x48]
call sym.vim.exe_vim_free
nop
add rsp, 0x268
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov rbx, qword [sym.vim.exe_curwin]
xor esi, esi
mov rax, qword [rbx]
mov rax, qword [rax + 0x20]
mov rdx, qword [rax + 0x490]
cmp byte [rdx], 0
je 0x1005940a0
mov ecx, 0x1000
call sym.vim.exe_alloc
mov r12, rax
test rax, rax
je 0x100593eb1
mov rax, qword [rbx]
mov rax, qword [rax + 0x20]
mov rax, qword [rax + 0x490]
mov qword [rbp - 0x28], rax
cmp byte [rax], 0
je 0x100593f59
mov r14d, dword [rbp - 0x40]
mov edi, 1
lea rbx, [rbp - 0x28]
lea r13, [0x1006bcb7c]
jmp 0x100593f40
mov rax, qword [rbp - 0x28]
cmp byte [rax], 0
je 0x100665b03
add edi, 1
mov r9, r13
mov r8d, 0x1000
mov rdx, r12
mov rcx, rbx
call sym.vim.exe_copy_option_part
cmp r14d, edi
jne 0x100593f30
mov rcx, r12
call sym.vim.exe_buflist_findname_exp
mov rdi, rax
test rax, rax
je 0x100593f84
cmp qword [rax + 8], 0
je 0x100594180
mov rcx, rax
call sym.vim.exe_bufIsChanged
test eax, eax
jne 0x100594187
mov ecx, dword [rbp - 0x34]
cmp dword [rbp - 0x38], 1
mov qword [rbp - 0x30], r12
sete al
mov qword [rbp - 0x48], r12
test ecx, ecx
setne byte [rbp - 0x39]
movzx ebx, byte [rbp - 0x39]
or bl, al
mov byte [rbp - 0x3a], bl
jne 0x1005943f7
lea rdx, [0x1006bcc09]
mov rcx, r12
call sub.msys_2.0.dll_fopen
mov rbx, rax
test rax, rax
jne 0x100594022
and sil, 1
je 0x100594019
mov rcx, qword [rbp - 0x30]
call sym.vim.exe_dir_of_file_exists
test eax, eax
jne 0x100665ab4
mov rcx, qword [rbp - 0x30]
call sym.vim.exe_gettail_sep
mov rbx, rax
cmp qword [rbp - 0x30], rax
je 0x100665ab4
movzx esi, byte [rax]
mov byte [rax], 0
mov edx, 0x1ed
mov rcx, qword [rbp - 0x30]
call sub.msys_2.0.dll_mkdir
mov byte [rbx], sil
mov rcx, qword [rbp - 0x30]
lea rdx, [0x1006bcc09]
call sub.msys_2.0.dll_fopen
mov rbx, rax
test rbx, rbx
je 0x100665ab4
cmp byte [rbp - 0x3a], 0
je 0x100594402
mov r8d, dword [rbp - 0x4c]
mov r9, r15
lea rdx, [0x1006bcc0b]
mov rcx, rbx
call sub.msys_2.0.dll_fprintf
mov rsi, qword [rbp - 0x48]
mov qword [rbp - 0x48], rbx
mov rcx, qword [rbp - 0x48]
call fcn.10065e4f0
mov rbx, qword [sym.vim.exe_NameBuff]
mov rdx, qword [rbp - 0x30]
xor ecx, ecx
mov dword [rsp + 0x20], 1
mov r9d, 0x1000
mov r8, qword [rbx]
call sym.vim.exe_home_replace
mov rbx, qword [rbx]
lea rcx, str.Word__.s_added_to__s
call sub.msys_intl_8.dll_libintl_gettext
mov edx, dword [rbp - 0x4c]
mov r8, r15
mov rcx, rax
mov r9, rbx
call sym.vim.exe_smsg
mov qword [rbp - 0x48], rsi
jmp 0x100593e6b
mov rcx, qword [rax + 0x498]
cmp byte [rcx], 0
je 0x1005940bc
mov r8d, dword [rax + 0x360]
test r8d, r8d
jg 0x1005941a8
cmp byte [rdx], 0
je 0x100665ad5
mov esi, 1
jmp 0x100593ee8
xor edx, edx
mov ecx, 0x73
call sym.vim.exe_vim_tempname
mov qword [rbx], rax
mov r12, rax
test rax, rax
jne 0x100593d2e
jmp 0x100593eb1
mov edx, dword [rbp - 0x34]
test edx, edx
jne 0x100593ea7
mov r12, qword [rbp - 0x30]
mov esi, dword [rbp - 0x40]
jmp 0x100593fab
mov rdx, r12
mov ecx, 0x23
call sub.msys_2.0.dll_fputc
cmp byte [rbp - 0x39], 0
je 0x100593e0f
mov rax, qword [sym.vim.exe_NameBuff]
mov dword [rsp + 0x20], 1
mov r9d, 0x1000
xor ecx, ecx
mov rdx, qword [rbp - 0x30]
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 r14, qword [rax]
call sub.msys_intl_8.dll_libintl_gettext
mov edx, dword [rbp - 0x4c]
mov r8, r15
mov rcx, rax
mov r9, r14
call sym.vim.exe_smsg
jmp 0x100593e0f
xor edi, edi
jmp 0x100593f84
mov rcx, qword [sym.vim.exe_e_bufloaded]
call sub.msys_intl_8.dll_libintl_gettext
mov rcx, rax
call sym.vim.exe_emsg
mov rcx, r12
call sym.vim.exe_vim_free
jmp 0x100593eb1
mov rax, qword [sym.vim.exe_curbuf]
mov ecx, 0x1000
mov rax, qword [rax]
mov rdi, qword [rax + 0x23a0]
call sym.vim.exe_alloc
mov r12, rax
mov rax, qword [rbx]
mov rax, qword [rax + 0x20]
test r12, r12
je 0x1005943a4
mov rsi, qword [rax + 0x498]
xor r13d, r13d
lea r14, [0x1006bcb78]
movzx eax, byte [rsi]
test al, al
jne 0x10059421a
jmp 0x1005943de
movzx ecx, byte [rsi]
add rsi, 1
call sym.vim.exe_vim_ispathsep
test eax, eax
mov eax, 1
cmovne r13d, eax
movzx eax, byte [rsi]
cmovne rdi, rsi
test al, al
je 0x10059422a
movzx edx, al
mov rcx, r14
call sym.vim.exe_vim_strchr
test rax, rax
je 0x1005941f8
mov rax, qword [sym.vim.exe_p_rtp]
mov rax, qword [rax]
mov qword [rbp - 0x20], rax
cmp byte [rax], 0
je 0x100594395
test r13d, r13d
je 0x100594287
mov rax, qword [sym.vim.exe_curbuf]
mov r8, rdi
mov rcx, r12
mov rax, qword [rax]
mov rdx, qword [rax + 0x23a0]
sub r8, rdx
sub r8, 1
call sym.vim.exe_vim_strncpy
mov rcx, r12
call sym.vim.exe_filewritable
cmp eax, 2
je 0x1005943ba
mov rax, qword [rbp - 0x20]
cmp byte [rax], 0
je 0x100594395
lea r13, [rbp - 0x20]
lea r9, [0x1006bcb7c]
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 0x10059427a
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 0x1005942ee
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], rdi
sub edx, eax
cdqe
lea r8, str.__.s
sub r9d, edi
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 0x1005943b0
call sym.vim.exe_gettail
lea rdx, str..ascii.
mov rcx, rax
call sub.msys_2.0.dll_strstr
test rax, rax
je 0x1005943b0
lea r9, [0x1006bc6d0]
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
mov rcx, r12
call sym.vim.exe_vim_free
mov rax, qword [rbx]
mov rax, qword [rax + 0x20]
mov rdx, qword [rax + 0x490]
jmp 0x1005940bc
call sym.vim.exe_spell_enc
mov r9, rax
jmp 0x100594362
mov rax, qword [sym.vim.exe_curbuf]
mov rcx, r12
mov rax, qword [rax]
mov rdx, qword [rax + 0x23a0]
sub rsi, rdx
mov r8, rsi
call sym.vim.exe_vim_strncpy
jmp 0x10059431d
mov rax, qword [sym.vim.exe_p_rtp]
mov rax, qword [rax]
mov qword [rbp - 0x20], rax
cmp byte [rax], 0
jne 0x100594287
jmp 0x100594395
mov dword [rbp - 0x40], esi
mov byte [rbp - 0x3a], al
jmp 0x100593d62
mov rsi, qword [rbp - 0x48]
mov qword [rbp - 0x48], rbx
cmp dword [rbp - 0x38], 2
mov r8d, dword [rbp - 0x4c]
mov r9, r15
je 0x10059444e
mov rcx, qword [rbp - 0x48]
lea rdx, str._.s_n
call sub.msys_2.0.dll_fprintf
jmp 0x10059404a
lea rdx, [0x1006bcc09]
mov rcx, r12
call sub.msys_2.0.dll_fopen
mov qword [rbp - 0x48], rax
test rax, rax
je 0x100665ab4
xor edi, edi
xor esi, esi
jmp 0x10059440a
mov rcx, qword [rbp - 0x48]
lea rdx, str._.s___n
call sub.msys_2.0.dll_fprintf
jmp 0x10059404a
mov rcx, qword [sym.vim.exe_e_notopen]
mov r12, qword [rbp - 0x30]
call sub.msys_intl_8.dll_libintl_gettext
mov rdx, r12
mov rcx, rax
call sym.vim.exe_semsg
nop
jmp 0x100593ea7
mov rcx, qword [sym.vim.exe_e_notset]
call sub.msys_intl_8.dll_libintl_gettext
lea rdx, str.spellfile
mov rcx, rax
add rsp, 0x268
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
jmp sym.vim.exe_semsg
lea rcx, str.E765:_spellfile_does_not_have__d_entries
call sub.msys_intl_8.dll_libintl_gettext
mov edx, dword [rbp - 0x40]
mov rcx, rax
call sym.vim.exe_semsg
mov rcx, r12
call sym.vim.exe_vim_free
nop
jmp 0x100593eb1