Function at 0x1005e4620
Capabilities:
Get file attributes
Write file on windows

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x198
mov qword [rsp + 0x40], rcx
mov r13d, edx
mov rdi, r8
mov rsi, r9
mov qword [rsp + 0x60], 0
mov qword [rsp + 0x68], 0
mov qword [rsp + 0x70], 0
mov qword [rsp + 0x78], 0
mov qword [rsp + 0x80], 0
mov qword [rsp + 0x88], 0
mov qword [rsp + 0x28], rcx
test rcx, rcx
je 0x1005e4b34
mov rcx, qword [rdi + 0x88]
test rcx, rcx
je 0x1005e48a0
lea rdx, [rsp + 0x90]
call sub.msys_2.0.dll_stat
test eax, eax
js 0x1005e48a0
mov ebp, dword [rsp + 0xa0]
mov rcx, qword [rsp + 0x28]
mov r12d, 1
mov ebx, ebp
and ebx, 0x1b6
call sym.vim.exe_mch_getperm
test rax, rax
jns 0x1005e48c0
mov r13d, dword [rdi + 0x1240]
test r13d, r13d
jne 0x1005e46f9
mov rax, qword [rdi + 0x1270]
mov qword [rsp + 0x30], rax
test rax, rax
je 0x1005e4af2
mov rcx, qword [rsp + 0x28]
mov r8d, ebx
mov edx, 0x110a01
call sub.msys_2.0.dll_open
mov dword [rsp + 0x3c], eax
test eax, eax
js 0x10067b631
mov rcx, qword [rsp + 0x28]
movsxd rdx, ebx
call sym.vim.exe_mch_setperm
mov rax, qword [sym.vim.exe_p_verbose]
cmp qword [rax], 0
jg 0x1005e5493
test r12d, r12d
jne 0x1005e48e0
mov ecx, dword [rsp + 0x3c]
lea rdx, [0x1006d9b20]
call sub.msys_2.0.dll_fdopen
mov qword [rsp + 0x30], rax
test rax, rax
je 0x10067b5fe
mov rbx, qword [sym.vim.exe_curbuf]
mov rax, qword [rbx]
mov ebp, dword [rax + 0x1244]
test ebp, ebp
jne 0x1005e4797
mov rdx, qword [rax + 0x1dd0]
cmp rdx, 0xfffffffffffe1dc0
je 0x1005e4b98
test rdx, rdx
jns 0x1005e4b1c
mov dword [rax + 0x1244], 1
mov rax, qword [rsp + 0x30]
mov r8d, 1
mov edx, 9
lea rcx, [0x1006d9a9b]
mov qword [rsp + 0x60], rdi
mov r9, rax
mov qword [rsp + 0x68], rax
call sub.msys_2.0.dll_fwrite
cmp rax, 1
jne 0x10067b658
mov rax, qword [rdi + 0x1c50]
cmp byte [rax], 0
jne 0x1005e4a28
lea r13, [rsp + 0x58]
lea r12, [rsp + 0x60]
mov ebx, 0x200
mov r8d, 2
mov rdx, r13
mov rcx, r12
mov word [rsp + 0x58], bx
call fcn.1005e2a10
mov r8d, 0x20
mov rdx, rsi
mov rcx, r12
call fcn.1005e2a10
test eax, eax
je 0x1005e4bb8
mov eax, dword [rdi]
mov rcx, r12
mov r8d, 4
mov rdx, r13
bswap eax
mov dword [rsp + 0x58], eax
call fcn.1005e2a10
mov rcx, qword [rdi + 0x1270]
test rcx, rcx
je 0x1005e5569
call sub.msys_2.0.dll_strlen
mov r8d, 4
mov rdx, r13
mov rcx, r12
mov rbx, rax
bswap eax
mov dword [rsp + 0x58], eax
call fcn.1005e2a10
test rbx, rbx
je 0x1005e4c2f
cmp qword [rsp + 0x70], 0
mov rdx, qword [rdi + 0x1270]
mov r8, rbx
mov rcx, r12
je 0x1005e4c26
cmp qword [rsp + 0x78], 0
jne 0x1005e4c26
call fcn.1005e2520
jmp 0x1005e4c2b
mov rcx, qword [rsp + 0x28]
xor r12d, r12d
mov ebx, 0x180
mov ebp, 0x180
call sym.vim.exe_mch_getperm
test rax, rax
js 0x1005e46d8
cmp qword [rsp + 0x40], 0
je 0x1005e4950
test r13d, r13d
je 0x1005e4950
mov rcx, qword [rsp + 0x28]
call sub.msys_2.0.dll_unlink
jmp 0x1005e46d8
mov rcx, qword [rsp + 0x28]
lea rdx, [rsp + 0x110]
call sub.msys_2.0.dll_stat
test eax, eax
js 0x1005e473e
mov r8d, dword [rsp + 0xac]
cmp dword [rsp + 0x12c], r8d
je 0x1005e473e
mov ecx, dword [rsp + 0x3c]
mov edx, 0xffffffff
call sub.msys_2.0.dll_fchown
test eax, eax
je 0x1005e473e
lea edx, [rbx*8]
and ebp, 0x186
mov rcx, qword [rsp + 0x28]
and edx, 0x38
or edx, ebp
movsxd rdx, edx
call sym.vim.exe_mch_setperm
jmp 0x1005e473e
mov rcx, qword [rsp + 0x28]
xor r8d, r8d
mov edx, 0x10000
call sub.msys_2.0.dll_open
mov r14d, eax
test eax, eax
js 0x1005e4a06
mov ecx, eax
lea rdx, [rsp + 0x110]
mov r8d, 9
call sym.vim.exe_read_eintr
mov ecx, r14d
mov r13, rax
call sub.msys_2.0.dll_close
cmp r13d, 8
jle 0x1005e49ab
movabs rax, 0x6f446e559f6d6956
cmp qword [rsp + 0x110], rax
je 0x1005e5480
cmp qword [rsp + 0x40], 0
jne 0x10067b6e8
mov rax, qword [sym.vim.exe_p_verbose]
cmp qword [rax], 0
jg 0x10067b6bf
mov qword [rsp + 0x30], 0
mov rcx, qword [rsp + 0x30]
call sym.vim.exe_vim_free
mov rdi, qword [rsp + 0x40]
cmp qword [rsp + 0x28], rdi
je 0x1005e49f2
mov rcx, qword [rsp + 0x28]
call sym.vim.exe_vim_free
nop
add rsp, 0x198
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
cmp qword [rsp + 0x40], 0
jne 0x10067b698
mov rax, qword [sym.vim.exe_p_verbose]
cmp qword [rax], 0
jle 0x1005e49c8
jmp 0x10067b668
lea r13, [rsp + 0x58]
lea r12, [rsp + 0x60]
mov r11d, 0x280
mov r8d, 2
mov rdx, r13
mov rcx, r12
mov word [rsp + 0x58], r11w
call fcn.1005e2a10
mov rbx, qword [rdi + 0x1c50]
mov rcx, rdi
call sym.vim.exe_crypt_get_method_nr
lea r9, [rsp + 0x50]
mov r8, r13
mov ecx, eax
mov rdx, rbx
call sym.vim.exe_crypt_create_for_writing
mov qword [rsp + 0x70], rax
mov rbp, rax
test rax, rax
je 0x1005e4bb8
mov rcx, qword [rsp + 0x58]
movsxd rdx, dword [rsp + 0x50]
mov r8d, 1
mov r9, qword [rsp + 0x30]
call sub.msys_2.0.dll_fwrite
mov rcx, qword [rsp + 0x58]
mov rbx, rax
call sym.vim.exe_vim_free
cmp rbx, 1
jne 0x1005e4ba7
mov rcx, rdi
call sym.vim.exe_crypt_get_method_nr
mov ecx, eax
call sym.vim.exe_crypt_whole_undofile
test eax, eax
je 0x1005e47ff
mov ecx, 0x2000
call sym.vim.exe_alloc
mov qword [rsp + 0x78], rax
test rax, rax
je 0x1005e4ba7
mov qword [rsp + 0x80], 0
jmp 0x1005e47ff
mov rax, qword [sym.vim.exe_p_verbose]
cmp qword [rax], 0
jle 0x1005e49c8
lea rcx, str.Skipping_undo_file_write__nothing_to_undo
call sub.msys_intl_8.dll_libintl_gettext
mov rcx, rax
call sym.vim.exe_verb_msg
jmp 0x1005e49d1
call fcn.1005e2950
mov rax, qword [rbx]
mov qword [rax + 0x1238], 0
jmp 0x1005e4797
mov rcx, qword [r8 + 0x88]
xor edx, edx
call fcn.1005e2310
mov qword [rsp + 0x28], rax
test rax, rax
jne 0x1005e468b
mov rax, qword [sym.vim.exe_p_verbose]
cmp qword [rax], 0
jle 0x1005e49f2
call sym.vim.exe_verbose_enter
lea rcx, str.Cannot_write_undo_file_in_any_directory_in_undodir
call sub.msys_intl_8.dll_libintl_gettext
mov rcx, rax
call sym.vim.exe_smsg
nop
add rsp, 0x198
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp sym.vim.exe_verbose_leave
mov rdx, qword [sym.vim.exe_p_ul]
mov rdx, qword [rdx]
jmp 0x1005e4784
mov rcx, rbp
call sym.vim.exe_crypt_free_state
mov qword [rsp + 0x70], 0
mov rcx, qword [rsp + 0x30]
call fcn.100672bf0
mov rcx, qword [sym.vim.exe_e_write_error_in_undo_file_str]
call sub.msys_intl_8.dll_libintl_gettext
mov rdx, qword [rsp + 0x28]
mov rcx, rax
call sym.vim.exe_semsg
mov rcx, qword [rdi + 0x88]
test rcx, rcx
je 0x1005e4c04
call sym.vim.exe_mch_get_acl
mov rcx, qword [rsp + 0x28]
mov r12, rax
mov rdx, rax
call sym.vim.exe_mch_set_acl
mov rcx, r12
call sym.vim.exe_mch_free_acl
mov rax, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x70]
mov qword [rsp + 0x30], rax
test rcx, rcx
je 0x1005e49d1
call sym.vim.exe_crypt_free_state
jmp 0x1005e49d1
call fcn.1005e2a10
test eax, eax
je 0x1005e4bb8
mov eax, dword [rdi + 0x1280]
mov r8d, 4
mov rdx, r13
mov rcx, r12
bswap eax
mov dword [rsp + 0x58], eax
call fcn.1005e2a10
mov eax, dword [rdi + 0x1288]
mov rdx, r13
mov rcx, r12
mov r8d, 4
bswap eax
mov dword [rsp + 0x58], eax
call fcn.1005e2a10
mov rax, qword [rdi + 0x1228]
test rax, rax
je 0x1005e555b
mov rax, qword [rax + 0x20]
mov rcx, rax
mov rdx, rax
movzx esi, ah
shr rcx, 0x18
shr rdx, 0x10
mov r8, rsi
mov byte [rsp + 0x58], cl
mov rcx, r12
mov byte [rsp + 0x59], dl
mov rdx, r13
mov byte [rsp + 0x5a], r8b
mov r8d, 4
mov byte [rsp + 0x5b], al
call fcn.1005e2a10
mov rax, qword [rdi + 0x1230]
test rax, rax
je 0x1005e554d
mov rax, qword [rax + 0x20]
mov rcx, rax
mov rdx, rax
movzx esi, ah
shr rcx, 0x18
shr rdx, 0x10
mov r8, rsi
mov byte [rsp + 0x58], cl
mov rcx, r12
mov byte [rsp + 0x59], dl
mov rdx, r13
mov byte [rsp + 0x5a], r8b
mov r8d, 4
mov byte [rsp + 0x5b], al
call fcn.1005e2a10
mov rax, qword [rdi + 0x1238]
test rax, rax
je 0x1005e553f
mov rax, qword [rax + 0x20]
mov rcx, rax
mov rdx, rax
movzx esi, ah
shr rcx, 0x18
shr rdx, 0x10
mov r8, rsi
mov byte [rsp + 0x58], cl
mov rcx, r12
mov byte [rsp + 0x59], dl
mov rdx, r13
mov byte [rsp + 0x5a], r8b
mov r8d, 4
mov byte [rsp + 0x5b], al
call fcn.1005e2a10
mov eax, dword [rdi + 0x1240]
mov rdx, r13
mov rcx, r12
mov r8d, 4
bswap eax
mov dword [rsp + 0x58], eax
call fcn.1005e2a10
mov eax, dword [rdi + 0x1248]
mov rdx, r13
mov rcx, r12
mov r8d, 4
bswap eax
mov dword [rsp + 0x58], eax
call fcn.1005e2a10
mov eax, dword [rdi + 0x1258]
mov rdx, r13
mov rcx, r12
mov r8d, 4
bswap eax
mov dword [rsp + 0x58], eax
call fcn.1005e2a10
lea rax, [rsp + 0x50]
mov rcx, qword [rdi + 0x1260]
mov rsi, rax
mov rdx, rax
mov qword [rsp + 0x48], rax
call sym.vim.exe_time_to_bytes
mov rdx, rsi
mov r8d, 8
mov rcx, r12
call fcn.1005e2a10
mov rdx, r13
mov rcx, r12
mov byte [rsp + 0x58], 4
mov r8d, 1
call fcn.1005e2a10
mov rdx, r13
mov rcx, r12
mov byte [rsp + 0x58], 1
mov r8d, 1
call fcn.1005e2a10
mov eax, dword [rdi + 0x1250]
mov rdx, r13
mov rcx, r12
mov r8d, 4
bswap eax
mov dword [rsp + 0x58], eax
call fcn.1005e2a10
mov rdx, r13
mov rcx, r12
mov byte [rsp + 0x58], 0
mov r8d, 1
call fcn.1005e2a10
mov eax, dword [0x100729b20]
mov rsi, qword [rdi + 0x1228]
add eax, 1
mov dword [rsp + 0x38], eax
mov dword [0x100729b20], eax
test rsi, rsi
je 0x1005e53bc
mov eax, dword [rsi + 0x28]
mov edx, dword [rsp + 0x38]
cmp edx, eax
je 0x1005e5356
mov dword [rsi + 0x28], edx
mov r10d, 0xffffd05f
mov rdx, r13
mov rcx, r12
mov r8d, 2
mov word [rsp + 0x58], r10w
call fcn.1005e2a10
test eax, eax
je 0x1005e53ae
mov rax, qword [rsi]
test rax, rax
je 0x1005e5428
mov rax, qword [rax + 0x20]
mov rcx, rax
mov rdx, rax
movzx ebx, ah
shr rcx, 0x18
shr rdx, 0x10
mov r8, rbx
mov byte [rsp + 0x58], cl
mov rcx, r12
mov byte [rsp + 0x59], dl
mov rdx, r13
mov byte [rsp + 0x5a], r8b
mov r8d, 4
mov byte [rsp + 0x5b], al
call fcn.1005e2a10
mov rax, qword [rsi + 8]
test rax, rax
je 0x1005e5452
mov rax, qword [rax + 0x20]
mov rcx, rax
mov rdx, rax
movzx ebx, ah
shr rcx, 0x18
shr rdx, 0x10
mov r8, rbx
mov byte [rsp + 0x58], cl
mov rcx, r12
mov byte [rsp + 0x59], dl
mov rdx, r13
mov byte [rsp + 0x5a], r8b
mov r8d, 4
mov byte [rsp + 0x5b], al
call fcn.1005e2a10
mov rax, qword [rsi + 0x10]
test rax, rax
je 0x1005e5436
mov rax, qword [rax + 0x20]
mov rcx, rax
mov rdx, rax
movzx ebx, ah
shr rcx, 0x18
shr rdx, 0x10
mov r8, rbx
mov byte [rsp + 0x58], cl
mov rcx, r12
mov byte [rsp + 0x59], dl
mov rdx, r13
mov byte [rsp + 0x5a], r8b
mov r8d, 4
mov byte [rsp + 0x5b], al
call fcn.1005e2a10
mov rax, qword [rsi + 0x18]
test rax, rax
je 0x1005e5444
mov rax, qword [rax + 0x20]
mov rcx, rax
mov rdx, rax
movzx ebx, ah
shr rcx, 0x18
shr rdx, 0x10
mov r8, rbx
mov byte [rsp + 0x58], cl
mov rcx, r12
lea r14, [rsi + 0x200]
mov byte [rsp + 0x59], dl
mov rdx, r13
mov byte [rsp + 0x5a], r8b
mov r8d, 4
mov byte [rsp + 0x5b], al
call fcn.1005e2a10
mov eax, dword [rsi + 0x20]
mov rdx, r13
mov rcx, r12
mov r8d, 4
bswap eax
mov dword [rsp + 0x58], eax
call fcn.1005e2a10
mov eax, dword [rsi + 0x40]
mov ebp, dword [rsi + 0x48]
mov rdx, r13
mov r8d, 4
mov rcx, r12
mov ebx, dword [rsi + 0x4c]
bswap eax
mov dword [rsp + 0x58], eax
bswap ebp
call fcn.1005e2a10
mov r8d, 4
mov rdx, r13
mov rcx, r12
mov dword [rsp + 0x58], ebp
bswap ebx
call fcn.1005e2a10
mov rdx, r13
mov rcx, r12
mov dword [rsp + 0x58], ebx
mov r8d, 4
lea rbx, [rsi + 0x60]
call fcn.1005e2a10
mov eax, dword [rsi + 0x50]
mov rdx, r13
mov rcx, r12
mov r8d, 4
bswap eax
mov dword [rsp + 0x58], eax
call fcn.1005e2a10
movzx eax, word [rsi + 0x58]
mov rdx, r13
mov rcx, r12
mov r8d, 2
rol ax, 8
mov word [rsp + 0x58], ax
call fcn.1005e2a10
nop word [rax + rax]
mov rax, qword [rbx]
mov r15d, dword [rbx + 8]
mov r8d, 4
mov rdx, r13
mov rcx, r12
mov ebp, dword [rbx + 0xc]
add rbx, 0x10
bswap eax
mov dword [rsp + 0x58], eax
bswap r15d
call fcn.1005e2a10
mov r8d, 4
mov rdx, r13
mov rcx, r12
mov dword [rsp + 0x58], r15d
bswap ebp
call fcn.1005e2a10
mov rdx, r13
mov rcx, r12
mov dword [rsp + 0x58], ebp
mov r8d, 4
call fcn.1005e2a10
cmp rbx, r14
jne 0x1005e5050
mov eax, dword [rsi + 0x200]
mov ebp, dword [rsi + 0x208]
mov rdx, r13
mov rcx, r12
mov r8d, 4
mov ebx, dword [rsi + 0x20c]
bswap eax
mov dword [rsp + 0x58], eax
bswap ebp
call fcn.1005e2a10
mov r8d, 4
mov rdx, r13
mov rcx, r12
mov dword [rsp + 0x58], ebp
bswap ebx
call fcn.1005e2a10
mov rdx, r13
mov rcx, r12
mov dword [rsp + 0x58], ebx
mov r8d, 4
call fcn.1005e2a10
mov eax, dword [rsi + 0x210]
mov rdx, r13
mov rcx, r12
mov ebp, dword [rsi + 0x218]
mov r8d, 4
mov ebx, dword [rsi + 0x21c]
bswap eax
mov dword [rsp + 0x58], eax
call fcn.1005e2a10
mov rdx, r13
mov r8d, 4
mov rcx, r12
bswap ebp
mov dword [rsp + 0x58], ebp
bswap ebx
call fcn.1005e2a10
mov rdx, r13
mov rcx, r12
mov dword [rsp + 0x58], ebx
mov r8d, 4
call fcn.1005e2a10
mov eax, dword [rsi + 0x220]
mov rdx, r13
mov rcx, r12
mov r8d, 4
bswap eax
mov dword [rsp + 0x58], eax
call fcn.1005e2a10
mov eax, dword [rsi + 0x224]
mov rdx, r13
mov rcx, r12
mov r8d, 4
bswap eax
mov dword [rsp + 0x58], eax
call fcn.1005e2a10
mov rbx, qword [rsp + 0x48]
mov rcx, qword [rsi + 0x228]
mov rdx, rbx
call sym.vim.exe_time_to_bytes
mov r8d, 8
mov rdx, rbx
mov rcx, r12
call fcn.1005e2a10
mov rdx, r13
mov rcx, r12
mov byte [rsp + 0x58], 4
mov r8d, 1
call fcn.1005e2a10
mov rdx, r13
mov rcx, r12
mov byte [rsp + 0x58], 1
mov r8d, 1
call fcn.1005e2a10
mov eax, dword [rsi + 0x230]
mov rdx, r13
mov rcx, r12
mov r8d, 4
bswap eax
mov dword [rsp + 0x58], eax
call fcn.1005e2a10
mov rdx, r13
mov rcx, r12
mov byte [rsp + 0x58], 0
mov r8d, 1
call fcn.1005e2a10
mov r14, qword [rsi + 0x30]
test r14, r14
je 0x1005e5339
mov r9d, 0x18f5
mov rdx, r13
mov rcx, r12
xor ebp, ebp
mov r8d, 2
mov word [rsp + 0x58], r9w
call fcn.1005e2a10
mov eax, dword [r14 + 8]
mov rdx, r13
mov rcx, r12
mov r8d, 4
bswap eax
mov dword [rsp + 0x58], eax
call fcn.1005e2a10
mov eax, dword [r14 + 0x10]
mov rdx, r13
mov rcx, r12
mov r8d, 4
bswap eax
mov dword [rsp + 0x58], eax
call fcn.1005e2a10
mov eax, dword [r14 + 0x18]
mov rdx, r13
mov rcx, r12
mov r8d, 4
bswap eax
mov dword [rsp + 0x58], eax
call fcn.1005e2a10
mov eax, dword [r14 + 0x28]
mov rdx, r13
mov rcx, r12
mov r8d, 4
bswap eax
mov dword [rsp + 0x58], eax
call fcn.1005e2a10
cmp qword [r14 + 0x28], 0
jg 0x1005e52ca
jmp 0x1005e532d
add rbp, 1
cmp rbp, qword [r14 + 0x28]
jge 0x1005e532d
mov rax, qword [r14 + 0x20]
mov r15, rbp
shl r15, 4
mov rcx, qword [rax + r15]
call sub.msys_2.0.dll_strlen
mov r8d, 4
mov rdx, r13
mov rcx, r12
mov rbx, rax
bswap eax
mov dword [rsp + 0x58], eax
call fcn.1005e2a10
test eax, eax
je 0x1005e5377
test rbx, rbx
je 0x1005e52c0
mov rax, qword [r14 + 0x20]
cmp qword [rsp + 0x70], 0
mov r8, rbx
mov rcx, r12
mov rdx, qword [rax + r15]
je 0x1005e531f
cmp qword [rsp + 0x78], 0
je 0x1005e5370
call fcn.1005e2a10
test eax, eax
jne 0x1005e52c0
jmp 0x10067b658
mov r14, qword [r14]
test r14, r14
jne 0x1005e5223
mov r8d, 0xffff8135
mov rdx, r13
mov rcx, r12
mov word [rsp + 0x58], r8w
mov r8d, 2
call fcn.1005e2a10
mov rdx, qword [rsi + 8]
test rdx, rdx
je 0x1005e537c
mov eax, dword [rdx + 0x28]
cmp dword [rsp + 0x38], eax
je 0x1005e537c
mov rsi, rdx
jmp 0x1005e4e50
call fcn.1005e2520
jmp 0x1005e5324
jmp 0x10067b658
mov rdx, qword [rsi + 0x10]
test rdx, rdx
je 0x1005e538e
mov eax, dword [rdx + 0x28]
cmp dword [rsp + 0x38], eax
jne 0x1005e5368
mov rdx, qword [rsi]
mov rsi, qword [rsi + 0x18]
test rdx, rdx
je 0x1005e53b3
test rsi, rsi
jne 0x1005e4e4d
mov eax, dword [rdx + 0x28]
mov rsi, rdx
jmp 0x1005e4e50
jmp 0x10067b658
test rsi, rsi
jne 0x1005e4e4d
mov ecx, 0xffffaae7
mov r8d, 2
mov rdx, r13
mov word [rsp + 0x58], cx
mov rcx, r12
call fcn.1005e2a10
mov rcx, qword [rsp + 0x70]
mov ebx, eax
test rcx, rcx
je 0x1005e53fe
mov r12, qword [rsp + 0x78]
test r12, r12
je 0x1005e53fe
mov r13, qword [rsp + 0x80]
test r13, r13
jne 0x1005e54c0
mov rax, qword [sym.vim.exe_p_fs]
mov eax, dword [rax]
test eax, eax
jne 0x1005e5460
mov rcx, qword [rsp + 0x30]
call fcn.100672bf0
cmp ebx, 1
je 0x1005e4bdb
jmp 0x1005e4bc2
xor eax, eax
xor r8d, r8d
xor edx, edx
xor ecx, ecx
jmp 0x1005e4ea8
xor eax, eax
xor r8d, r8d
xor edx, edx
xor ecx, ecx
jmp 0x1005e4f36
xor eax, eax
xor r8d, r8d
xor edx, edx
xor ecx, ecx
jmp 0x1005e4f7d
xor eax, eax
xor r8d, r8d
xor edx, edx
xor ecx, ecx
jmp 0x1005e4eef
mov rcx, qword [rsp + 0x30]
call sub.msys_2.0.dll_fflush
test eax, eax
jne 0x1005e540b
mov ecx, dword [rsp + 0x3c]
call sym.vim.exe_vim_fsync
test eax, eax
je 0x1005e540b
jmp 0x1005e4bb8
cmp byte [rsp + 0x118], 0xe5
jne 0x1005e49ab
jmp 0x1005e48d1
call sym.vim.exe_verbose_enter
lea rcx, str.Writing_undo_file:__s
call sub.msys_intl_8.dll_libintl_gettext
mov rdx, qword [rsp + 0x28]
mov rcx, rax
call sym.vim.exe_smsg
call sym.vim.exe_verbose_leave
jmp 0x1005e4735
xor r9d, r9d
mov r8, r13
mov rdx, r12
call sym.vim.exe_crypt_encode_inplace
mov r9, qword [rsp + 0x68]
mov rdx, r13
mov rcx, r12
mov r8d, 1
call sub.msys_2.0.dll_fwrite
cmp rax, 1
jne 0x1005e54fb
mov qword [rsp + 0x80], 0
jmp 0x1005e53fe
mov rax, qword [sym.vim.exe_p_fs]
mov edx, dword [rax]
test edx, edx
je 0x1005e4bb8
mov rsi, qword [rsp + 0x30]
mov rcx, rsi
call sub.msys_2.0.dll_fflush
test eax, eax
jne 0x10067b658
mov ecx, dword [rsp + 0x3c]
call sym.vim.exe_vim_fsync
test eax, eax
jne 0x1005e4bb8
mov rcx, rsi
call fcn.100672bf0
jmp 0x1005e4bc2
xor eax, eax
xor r8d, r8d
xor edx, edx
xor ecx, ecx
jmp 0x1005e4d25
xor eax, eax
xor r8d, r8d
xor edx, edx
xor ecx, ecx
jmp 0x1005e4cdb
xor eax, eax
xor r8d, r8d
xor edx, edx
xor ecx, ecx
jmp 0x1005e4c91
mov r8d, 4
mov rdx, r13
mov rcx, r12
mov dword [rsp + 0x58], 0
call fcn.1005e2a10
jmp 0x1005e4c2f
mov rcx, qword [sym.vim.exe_e_cannot_open_undo_file_for_writing_str]
call sub.msys_intl_8.dll_libintl_gettext
mov rdi, qword [rsp + 0x28]
mov rcx, rax
mov rdx, rdi
call sym.vim.exe_semsg
mov ecx, dword [rsp + 0x3c]
call sub.msys_2.0.dll_close
mov rcx, rdi
call sub.msys_2.0.dll_unlink
nop
jmp 0x1005e49d1
mov rcx, qword [sym.vim.exe_e_cannot_open_undo_file_for_writing_str]
call sub.msys_intl_8.dll_libintl_gettext
mov rdx, qword [rsp + 0x28]
mov rcx, rax
call sym.vim.exe_semsg
mov qword [rsp + 0x30], 0
jmp 0x1005e49d1
mov rcx, qword [rsp + 0x30]
call fcn.100672bf0
nop
jmp 0x1005e4bc2
call sym.vim.exe_verbose_enter
lea rcx, str.Will_not_overwrite_with_undo_file__cannot_read:__s
call sub.msys_intl_8.dll_libintl_gettext
mov rdx, qword [rsp + 0x28]
mov rcx, rax
call sym.vim.exe_smsg
call sym.vim.exe_verbose_leave
xor ecx, ecx
call sym.vim.exe_vim_free
nop
jmp 0x1005e49e7
lea rcx, str.Will_not_overwrite_with_undo_file__cannot_read:__s
call sub.msys_intl_8.dll_libintl_gettext
mov rdx, qword [rsp + 0x28]
mov rcx, rax
call sym.vim.exe_smsg
mov qword [rsp + 0x30], 0
jmp 0x1005e49d1
call sym.vim.exe_verbose_enter
lea rcx, str.Will_not_overwrite__this_is_not_an_undo_file:__s
call sub.msys_intl_8.dll_libintl_gettext
mov rdx, qword [rsp + 0x28]
mov rcx, rax
call sym.vim.exe_smsg
call sym.vim.exe_verbose_leave
nop
jmp 0x1005e49c8
lea rcx, str.Will_not_overwrite__this_is_not_an_undo_file:__s
call sub.msys_intl_8.dll_libintl_gettext
mov rdx, qword [rsp + 0x28]
mov rcx, rax
call sym.vim.exe_smsg
nop
jmp 0x1005e49c8