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

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0x198
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x160], rcx
mov r12d, edx
mov rax, qword [rbp + 0x160]
mov r13, r9
mov qword [rbp + 0x170], r8
mov rcx, qword [r8 + 0x88]
mov qword [rbp - 0x20], 0
mov qword [rbp - 0x18], 0
mov qword [rbp - 0x10], 0
mov qword [rbp - 8], 0
mov qword [rbp], 0
mov qword [rbp + 8], 0
mov qword [rbp - 0x40], rax
test rax, rax
je 0x1005d69e2
test rcx, rcx
je 0x1005d6647
lea rdx, [rbp + 0x10]
call sub.msys_2.0.dll_stat
test eax, eax
js 0x1005d6647
mov esi, dword [rbp + 0x20]
mov rcx, qword [rbp - 0x40]
mov edi, 1
mov ebx, esi
and ebx, 0x1b6
call sym.vim.exe_mch_getperm
test rax, rax
jns 0x1005d6665
mov rax, qword [rbp + 0x170]
mov r12d, dword [rax + 0x1240]
test r12d, r12d
jne 0x1005d64e7
cmp qword [rax + 0x1270], 0
je 0x1005d69a0
mov rcx, qword [rbp - 0x40]
mov r8d, ebx
mov edx, 0x100a01
call sub.msys_2.0.dll_open
mov dword [rbp - 0x50], eax
test eax, eax
js 0x100666913
mov rcx, qword [rbp - 0x40]
movsxd rdx, ebx
call sym.vim.exe_mch_setperm
mov rax, qword [sym.vim.exe_p_verbose]
cmp qword [rax], 0
jg 0x1005d79c9
test edi, edi
jne 0x1005d67d0
mov ecx, dword [rbp - 0x50]
lea rdx, [0x1006c15a0]
call sub.msys_2.0.dll_fdopen
mov qword [rbp - 0x48], rax
test rax, rax
je 0x1006668d3
mov rbx, qword [sym.vim.exe_curbuf]
mov rax, qword [rbx]
mov edi, dword [rax + 0x1244]
test edi, edi
jne 0x1005d657f
mov rdx, qword [rax + 0x1d68]
cmp rdx, 0xfffffffffffe1dc0
je 0x1005d6a09
test rdx, rdx
jns 0x1005d69ca
mov dword [rax + 0x1244], 1
mov rax, qword [rbp + 0x170]
mov r8d, 1
mov edx, 9
lea rcx, [0x1006c151b]
mov qword [rbp - 0x20], rax
mov rax, qword [rbp - 0x48]
mov r9, rax
mov qword [rbp - 0x18], rax
call sub.msys_2.0.dll_fwrite
cmp rax, 1
je 0x1005d668a
mov rcx, qword [rbp - 0x48]
call fcn.10065e4f0
lea rcx, str.E829:_write_error_in_undo_file:__s
call sub.msys_intl_8.dll_libintl_gettext
mov rdx, qword [rbp - 0x40]
mov rcx, rax
call sym.vim.exe_semsg
mov rax, qword [rbp + 0x170]
mov rcx, qword [rax + 0x88]
test rcx, rcx
je 0x1005d6606
call sym.vim.exe_mch_get_acl
mov rcx, qword [rbp - 0x40]
mov r12, rax
mov rdx, rax
call sym.vim.exe_mch_set_acl
mov rcx, r12
call sym.vim.exe_mch_free_acl
mov rcx, qword [rbp - 0x10]
test rcx, rcx
je 0x1005d6614
call sym.vim.exe_crypt_free_state
mov rcx, qword [rbp - 8]
call sym.vim.exe_vim_free
mov rax, qword [rbp - 0x40]
cmp rax, qword [rbp + 0x160]
je 0x1005d6633
mov rcx, rax
call sym.vim.exe_vim_free
nop
add rsp, 0x198
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov rcx, qword [rbp - 0x40]
xor edi, edi
mov ebx, 0x180
mov esi, 0x180
call sym.vim.exe_mch_getperm
test rax, rax
js 0x1005d64c6
cmp qword [rbp + 0x160], 0
je 0x1005d6838
test r12d, r12d
je 0x1005d6838
mov rcx, qword [rbp - 0x40]
call sub.msys_2.0.dll_unlink
jmp 0x1005d64c6
mov rsi, qword [rbp + 0x170]
mov rax, qword [rbp - 8]
mov rdx, qword [rsi + 0x1c00]
cmp byte [rdx], 0
jne 0x1005d68d8
mov esi, 0x200
mov word [rbp - 0x28], si
test rax, rax
je 0x1005d7cd1
lea r12, [rbp - 0x28]
lea rcx, [rbp - 0x20]
mov r8d, 2
mov rdx, r12
call fcn.1005d4820
mov rax, qword [rbp - 8]
test rax, rax
je 0x1005d7cab
lea rcx, [rbp - 0x20]
mov r8d, 0x20
mov rdx, r13
call fcn.1005d4820
test eax, eax
je 0x1005d65b6
mov rax, qword [rbp + 0x170]
cmp qword [rbp - 8], 0
mov eax, dword [rax]
bswap eax
mov dword [rbp - 0x28], eax
je 0x1005d7c8f
lea rcx, [rbp - 0x20]
mov r8d, 4
mov rdx, r12
call fcn.1005d4820
mov rax, qword [rbp + 0x170]
mov rcx, qword [rax + 0x1270]
test rcx, rcx
je 0x1005d7c7c
call sub.msys_2.0.dll_strlen
mov rbx, rax
mov r13, rax
mov rdx, rax
shr rax, 0x10
movzx esi, bh
shr rdx, 0x18
mov rcx, r13
mov r8, rsi
cmp qword [rbp - 8], 0
mov byte [rbp - 0x28], dl
mov byte [rbp - 0x27], al
mov byte [rbp - 0x26], r8b
mov byte [rbp - 0x25], cl
je 0x1005d7c60
lea rcx, [rbp - 0x20]
mov r8d, 4
mov rdx, r12
call fcn.1005d4820
mov rax, qword [rbp - 8]
test rbx, rbx
je 0x1005d6a44
mov rsi, qword [rbp + 0x170]
cmp qword [rbp - 0x10], 0
mov r10, qword [rsi + 0x1270]
je 0x1005d6a18
test rax, rax
je 0x1005d7c4c
lea rcx, [rbp - 0x20]
mov r8, r13
mov rdx, r10
call fcn.1005d4820
test eax, eax
jne 0x1005d6a40
jmp 0x1005d65b6
mov rcx, qword [rbp - 0x40]
lea rdx, [rbp + 0x90]
call sub.msys_2.0.dll_stat
test eax, eax
js 0x1005d6528
mov r8d, dword [rbp + 0x2c]
cmp dword [rbp + 0xac], r8d
je 0x1005d6528
mov ecx, dword [rbp - 0x50]
mov edx, 0xffffffff
call sub.msys_2.0.dll_fchown
test eax, eax
je 0x1005d6528
lea edx, [rbx*8]
and esi, 0x186
mov rcx, qword [rbp - 0x40]
and edx, 0x38
or edx, esi
movsxd rdx, edx
call sym.vim.exe_mch_setperm
jmp 0x1005d6528
mov rcx, qword [rbp - 0x40]
xor r8d, r8d
xor edx, edx
call sub.msys_2.0.dll_open
mov r14d, eax
test eax, eax
js 0x1005d68b0
lea r12, [rbp + 0x90]
mov ecx, eax
mov r8d, 9
mov rdx, r12
call sym.vim.exe_read_eintr
mov ecx, r14d
mov r15, rax
call sub.msys_2.0.dll_close
cmp r15d, 8
jle 0x1005d688c
movabs rax, 0x6f446e559f6d6956
cmp qword [rbp + 0x90], rax
je 0x1005d79b7
cmp qword [rbp + 0x160], 0
jne 0x10066699f
mov rax, qword [sym.vim.exe_p_verbose]
cmp qword [rax], 0
jle 0x1005d6606
jmp 0x100666977
cmp qword [rbp + 0x160], 0
jne 0x100666959
mov rax, qword [sym.vim.exe_p_verbose]
cmp qword [rax], 0
jle 0x1005d6606
jmp 0x100666931
mov ebx, 0x280
lea r12, [rbp - 0x28]
mov word [rbp - 0x28], bx
test rax, rax
je 0x1005d7c30
lea rcx, [rbp - 0x20]
mov r8d, 2
mov rdx, r12
call fcn.1005d4820
mov rax, qword [rbp + 0x170]
mov r14, qword [rax + 0x1c00]
mov rcx, rax
call sym.vim.exe_crypt_get_method_nr
lea r9, [rbp - 0x30]
mov r8, r12
mov ecx, eax
mov rdx, r14
call sym.vim.exe_crypt_create_for_writing
mov qword [rbp - 0x10], rax
test rax, rax
je 0x1005d65b6
mov rcx, qword [rbp - 0x28]
movsxd rdx, dword [rbp - 0x30]
mov r8d, 1
mov r9, qword [rbp - 0x48]
call sub.msys_2.0.dll_fwrite
mov rcx, qword [rbp - 0x28]
mov rbx, rax
call sym.vim.exe_vim_free
cmp rbx, 1
jne 0x1005d797c
mov rcx, qword [rbp + 0x170]
call sym.vim.exe_crypt_get_method_nr
mov ecx, eax
call sym.vim.exe_crypt_whole_undofile
test eax, eax
je 0x1005d66cd
mov ecx, 0x2000
call sym.vim.exe_alloc
mov qword [rbp - 8], rax
test rax, rax
je 0x1005d797c
mov qword [rbp], 0
jmp 0x1005d66d1
mov rax, qword [sym.vim.exe_p_verbose]
cmp qword [rax], 0
jle 0x1005d6606
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 0x1005d6606
call fcn.1005d4750
mov rax, qword [rbx]
mov qword [rax + 0x1238], 0
jmp 0x1005d657f
xor edx, edx
call fcn.1005d4100
mov qword [rbp - 0x40], rax
test rax, rax
je 0x1005d7bfb
mov rax, qword [rbp + 0x170]
mov rcx, qword [rax + 0x88]
jmp 0x1005d648a
mov rdx, qword [sym.vim.exe_p_ul]
mov rdx, qword [rdx]
jmp 0x1005d656c
test rax, rax
jne 0x1005d67ae
mov r9, qword [rbp - 0x18]
mov r8d, 1
mov rdx, r13
mov rcx, r10
call sub.msys_2.0.dll_fwrite
cmp rax, 1
jne 0x1005d65b6
mov rax, qword [rbp - 8]
mov rsi, qword [rbp + 0x170]
mov edx, dword [rsi + 0x1280]
bswap edx
mov dword [rbp - 0x28], edx
test rax, rax
je 0x1005d7bdf
lea rcx, [rbp - 0x20]
mov r8d, 4
mov rdx, r12
call fcn.1005d4820
mov rax, qword [rbp + 0x170]
cmp qword [rbp - 8], 0
mov eax, dword [rax + 0x1288]
bswap eax
mov dword [rbp - 0x28], eax
je 0x1005d7bc3
lea rcx, [rbp - 0x20]
mov r8d, 4
mov rdx, r12
call fcn.1005d4820
mov rax, qword [rbp + 0x170]
mov rax, qword [rax + 0x1228]
test rax, rax
je 0x1005d7bb5
mov rax, qword [rax + 0x20]
mov rcx, rax
mov rdx, rax
movzx esi, ah
shr rcx, 0x18
shr rdx, 0x10
mov r8, rsi
cmp qword [rbp - 8], 0
mov byte [rbp - 0x28], cl
mov byte [rbp - 0x27], dl
mov byte [rbp - 0x26], r8b
mov byte [rbp - 0x25], al
je 0x1005d7b99
lea rcx, [rbp - 0x20]
mov r8d, 4
mov rdx, r12
call fcn.1005d4820
mov rax, qword [rbp + 0x170]
mov rax, qword [rax + 0x1230]
test rax, rax
je 0x1005d7b8b
mov rax, qword [rax + 0x20]
mov rcx, rax
mov rdx, rax
movzx esi, ah
shr rcx, 0x18
shr rdx, 0x10
mov r8, rsi
cmp qword [rbp - 8], 0
mov byte [rbp - 0x28], cl
mov byte [rbp - 0x27], dl
mov byte [rbp - 0x26], r8b
mov byte [rbp - 0x25], al
je 0x1005d7b6f
lea rcx, [rbp - 0x20]
mov r8d, 4
mov rdx, r12
call fcn.1005d4820
mov rax, qword [rbp + 0x170]
mov rax, qword [rax + 0x1238]
test rax, rax
je 0x1005d7b61
mov rax, qword [rax + 0x20]
mov rcx, rax
mov rdx, rax
movzx esi, ah
shr rcx, 0x18
shr rdx, 0x10
mov r8, rsi
cmp qword [rbp - 8], 0
mov byte [rbp - 0x28], cl
mov byte [rbp - 0x27], dl
mov byte [rbp - 0x26], r8b
mov byte [rbp - 0x25], al
je 0x1005d7b45
lea rcx, [rbp - 0x20]
mov r8d, 4
mov rdx, r12
call fcn.1005d4820
mov rax, qword [rbp + 0x170]
cmp qword [rbp - 8], 0
mov eax, dword [rax + 0x1240]
bswap eax
mov dword [rbp - 0x28], eax
je 0x1005d7b29
lea rcx, [rbp - 0x20]
mov r8d, 4
mov rdx, r12
call fcn.1005d4820
mov rax, qword [rbp + 0x170]
cmp qword [rbp - 8], 0
mov eax, dword [rax + 0x1248]
bswap eax
mov dword [rbp - 0x28], eax
je 0x1005d7b0d
lea rcx, [rbp - 0x20]
mov r8d, 4
mov rdx, r12
call fcn.1005d4820
mov rax, qword [rbp + 0x170]
cmp qword [rbp - 8], 0
mov eax, dword [rax + 0x1258]
bswap eax
mov dword [rbp - 0x28], eax
je 0x1005d7af1
lea rcx, [rbp - 0x20]
mov r8d, 4
mov rdx, r12
call fcn.1005d4820
mov rax, qword [rbp + 0x170]
lea rsi, [rbp - 0x30]
mov rdx, rsi
mov qword [rbp - 0x58], rsi
mov rcx, qword [rax + 0x1260]
call sym.vim.exe_time_to_bytes
cmp qword [rbp - 8], 0
je 0x1005d7ad4
lea rcx, [rbp - 0x20]
mov r8d, 8
mov rdx, rsi
call fcn.1005d4820
cmp qword [rbp - 8], 0
mov byte [rbp - 0x28], 4
je 0x1005d7ab8
lea rcx, [rbp - 0x20]
mov r8d, 1
mov rdx, r12
call fcn.1005d4820
cmp qword [rbp - 8], 0
mov byte [rbp - 0x28], 1
je 0x1005d7a9c
lea rcx, [rbp - 0x20]
mov r8d, 1
mov rdx, r12
call fcn.1005d4820
mov rax, qword [rbp + 0x170]
cmp qword [rbp - 8], 0
mov eax, dword [rax + 0x1250]
bswap eax
mov dword [rbp - 0x28], eax
je 0x1005d7a80
lea rcx, [rbp - 0x20]
mov r8d, 4
mov rdx, r12
call fcn.1005d4820
cmp qword [rbp - 8], 0
mov byte [rbp - 0x28], 0
je 0x1005d7a64
lea rcx, [rbp - 0x20]
mov r8d, 1
mov rdx, r12
call fcn.1005d4820
mov eax, dword [0x100710600]
mov rcx, qword [rbp - 8]
add eax, 1
mov dword [rbp - 0x4c], eax
mov dword [0x100710600], eax
mov rax, qword [rbp + 0x170]
mov rax, qword [rax + 0x1228]
mov qword [rbp - 0x38], rax
test rax, rax
je 0x1005d75c0
mov eax, dword [rax + 0x28]
lea r13, [rbp - 0x20]
mov esi, dword [rbp - 0x4c]
cmp esi, eax
je 0x1005d744e
mov rax, qword [rbp - 0x38]
mov r11d, 0xffffd05f
mov dword [rax + 0x28], esi
mov word [rbp - 0x28], r11w
test rcx, rcx
je 0x1005d7638
mov r8d, 2
mov rdx, r12
mov rcx, r13
call fcn.1005d4820
test eax, eax
je 0x100666904
mov rax, qword [rbp - 0x38]
mov rax, qword [rax]
test rax, rax
je 0x1005d7694
mov rax, qword [rax + 0x20]
mov rcx, rax
mov rdx, rax
movzx esi, ah
shr rcx, 0x18
shr rdx, 0x10
mov r8, rsi
cmp qword [rbp - 8], 0
mov byte [rbp - 0x28], cl
mov byte [rbp - 0x27], dl
mov byte [rbp - 0x26], r8b
mov byte [rbp - 0x25], al
je 0x1005d76da
mov r8d, 4
mov rdx, r12
mov rcx, r13
call fcn.1005d4820
mov rax, qword [rbp - 0x38]
mov rax, qword [rax + 8]
test rax, rax
je 0x1005d7686
mov rax, qword [rax + 0x20]
mov rcx, rax
mov rdx, rax
movzx edi, ah
shr rcx, 0x18
shr rdx, 0x10
mov r8, rdi
cmp qword [rbp - 8], 0
mov byte [rbp - 0x28], cl
mov byte [rbp - 0x27], dl
mov byte [rbp - 0x26], r8b
mov byte [rbp - 0x25], al
je 0x1005d76be
mov r8d, 4
mov rdx, r12
mov rcx, r13
call fcn.1005d4820
mov rax, qword [rbp - 0x38]
mov rax, qword [rax + 0x10]
test rax, rax
je 0x1005d7678
mov rax, qword [rax + 0x20]
mov rcx, rax
mov rdx, rax
movzx esi, ah
shr rcx, 0x18
shr rdx, 0x10
mov r8, rsi
cmp qword [rbp - 8], 0
mov byte [rbp - 0x28], cl
mov byte [rbp - 0x27], dl
mov byte [rbp - 0x26], r8b
mov byte [rbp - 0x25], al
je 0x1005d775c
mov r8d, 4
mov rdx, r12
mov rcx, r13
call fcn.1005d4820
mov rax, qword [rbp - 0x38]
mov rax, qword [rax + 0x18]
test rax, rax
je 0x1005d766a
mov rax, qword [rax + 0x20]
mov rcx, rax
mov rdx, rax
movzx edi, ah
shr rcx, 0x18
shr rdx, 0x10
mov r8, rdi
cmp qword [rbp - 8], 0
mov byte [rbp - 0x28], cl
mov byte [rbp - 0x27], dl
mov byte [rbp - 0x26], r8b
mov byte [rbp - 0x25], al
je 0x1005d7794
mov r8d, 4
mov rdx, r12
mov rcx, r13
call fcn.1005d4820
mov rax, qword [rbp - 0x38]
cmp qword [rbp - 8], 0
mov eax, dword [rax + 0x20]
bswap eax
mov dword [rbp - 0x28], eax
je 0x1005d7778
mov r8d, 4
mov rdx, r12
mov rcx, r13
call fcn.1005d4820
mov rdx, qword [rbp - 0x38]
cmp qword [rbp - 8], 0
mov eax, dword [rdx + 0x40]
mov esi, dword [rdx + 0x48]
mov ebx, dword [rdx + 0x4c]
bswap eax
bswap esi
mov dword [rbp - 0x28], eax
bswap ebx
je 0x1005d7804
mov r8d, 4
mov rdx, r12
mov rcx, r13
call fcn.1005d4820
cmp qword [rbp - 8], 0
mov dword [rbp - 0x28], esi
je 0x1005d77e8
mov r8d, 4
mov rdx, r12
mov rcx, r13
call fcn.1005d4820
cmp qword [rbp - 8], 0
mov dword [rbp - 0x28], ebx
je 0x1005d77cc
mov r8d, 4
mov rdx, r12
mov rcx, r13
call fcn.1005d4820
mov rax, qword [rbp - 0x38]
cmp qword [rbp - 8], 0
mov eax, dword [rax + 0x50]
bswap eax
mov dword [rbp - 0x28], eax
je 0x1005d77b0
mov r8d, 4
mov rdx, r12
mov rcx, r13
call fcn.1005d4820
mov rax, qword [rbp - 0x38]
movzx eax, word [rax + 0x58]
mov word [rbp - 0x5a], ax
rol ax, 8
cmp qword [rbp - 8], 0
mov word [rbp - 0x28], ax
je 0x1005d76a2
mov r8d, 2
mov rdx, r12
mov rcx, r13
call fcn.1005d4820
mov rax, qword [rbp - 0x38]
lea rdi, [rax + 0x60]
lea rsi, [rax + 0x200]
jmp 0x1005d701e
mov r8d, 4
mov rdx, r12
mov rcx, r13
bswap r14d
call fcn.1005d4820
cmp qword [rbp - 8], 0
mov dword [rbp - 0x28], r14d
je 0x1005d7059
mov r8d, 4
mov rdx, r12
mov rcx, r13
bswap ebx
call fcn.1005d4820
cmp qword [rbp - 8], 0
mov dword [rbp - 0x28], ebx
je 0x1005d707c
mov r8d, 4
mov rdx, r12
mov rcx, r13
add rdi, 0x10
call fcn.1005d4820
cmp rdi, rsi
je 0x1005d709c
mov rax, qword [rdi]
cmp qword [rbp - 8], 0
mov r14d, dword [rdi + 8]
mov ebx, dword [rdi + 0xc]
bswap eax
mov dword [rbp - 0x28], eax
jne 0x1005d6fc8
mov r9, qword [rbp - 0x18]
mov r8d, 1
mov edx, 4
mov rcx, r12
bswap r14d
call sub.msys_2.0.dll_fwrite
cmp qword [rbp - 8], 0
mov dword [rbp - 0x28], r14d
jne 0x1005d6fe7
mov r9, qword [rbp - 0x18]
mov r8d, 1
mov edx, 4
mov rcx, r12
bswap ebx
call sub.msys_2.0.dll_fwrite
cmp qword [rbp - 8], 0
mov dword [rbp - 0x28], ebx
jne 0x1005d7004
mov r9, qword [rbp - 0x18]
mov edx, 4
mov rcx, r12
add rdi, 0x10
mov r8d, 1
call sub.msys_2.0.dll_fwrite
cmp rdi, rsi
jne 0x1005d701e
mov rbx, qword [rbp - 0x38]
cmp qword [rbp - 8], 0
mov eax, dword [rbx + 0x200]
mov esi, dword [rbx + 0x208]
mov ebx, dword [rbx + 0x20c]
bswap eax
bswap esi
mov dword [rbp - 0x28], eax
bswap ebx
je 0x1005d76f6
mov r8d, 4
mov rdx, r12
mov rcx, r13
call fcn.1005d4820
cmp qword [rbp - 8], 0
mov dword [rbp - 0x28], esi
je 0x1005d771b
mov r8d, 4
mov rdx, r12
mov rcx, r13
call fcn.1005d4820
cmp qword [rbp - 8], 0
mov dword [rbp - 0x28], ebx
je 0x1005d7740
mov r8d, 4
mov rdx, r12
mov rcx, r13
call fcn.1005d4820
mov rdx, qword [rbp - 0x38]
cmp qword [rbp - 8], 0
mov eax, dword [rdx + 0x210]
mov esi, dword [rdx + 0x218]
mov ebx, dword [rdx + 0x21c]
bswap eax
bswap esi
mov dword [rbp - 0x28], eax
bswap ebx
je 0x1005d791d
mov r8d, 4
mov rdx, r12
mov rcx, r13
call fcn.1005d4820
cmp qword [rbp - 8], 0
mov dword [rbp - 0x28], esi
je 0x1005d7901
mov r8d, 4
mov rdx, r12
mov rcx, r13
call fcn.1005d4820
cmp qword [rbp - 8], 0
mov dword [rbp - 0x28], ebx
je 0x1005d78e5
mov r8d, 4
mov rdx, r12
mov rcx, r13
call fcn.1005d4820
mov rax, qword [rbp - 0x38]
cmp qword [rbp - 8], 0
mov eax, dword [rax + 0x220]
bswap eax
mov dword [rbp - 0x28], eax
je 0x1005d78c9
mov r8d, 4
mov rdx, r12
mov rcx, r13
call fcn.1005d4820
mov rax, qword [rbp - 0x38]
cmp qword [rbp - 8], 0
mov eax, dword [rax + 0x224]
bswap eax
mov dword [rbp - 0x28], eax
je 0x1005d78ad
mov r8d, 4
mov rdx, r12
mov rcx, r13
call fcn.1005d4820
mov rax, qword [rbp - 0x38]
mov rsi, qword [rbp - 0x58]
mov rcx, qword [rax + 0x228]
mov rdx, rsi
call sym.vim.exe_time_to_bytes
cmp qword [rbp - 8], 0
je 0x1005d7890
mov r8d, 8
mov rdx, rsi
mov rcx, r13
call fcn.1005d4820
cmp qword [rbp - 8], 0
mov byte [rbp - 0x28], 4
je 0x1005d7874
mov r8d, 1
mov rdx, r12
mov rcx, r13
call fcn.1005d4820
cmp qword [rbp - 8], 0
mov byte [rbp - 0x28], 1
je 0x1005d7858
mov r8d, 1
mov rdx, r12
mov rcx, r13
call fcn.1005d4820
mov rax, qword [rbp - 0x38]
cmp qword [rbp - 8], 0
mov eax, dword [rax + 0x230]
bswap eax
mov dword [rbp - 0x28], eax
je 0x1005d783c
mov r8d, 4
mov rdx, r12
mov rcx, r13
call fcn.1005d4820
cmp qword [rbp - 8], 0
mov byte [rbp - 0x28], 0
je 0x1005d7820
mov r8d, 1
mov rdx, r12
mov rcx, r13
call fcn.1005d4820
mov rax, qword [rbp - 0x38]
mov r15, qword [rbp - 8]
mov rsi, qword [rax + 0x30]
test rsi, rsi
je 0x1005d7425
mov r10d, 0x18f5
mov word [rbp - 0x28], r10w
test r15, r15
je 0x1005d756a
mov r8d, 2
mov rdx, r12
mov rcx, r13
call fcn.1005d4820
mov eax, dword [rsi + 8]
cmp qword [rbp - 8], 0
bswap eax
mov dword [rbp - 0x28], eax
je 0x1005d7594
mov r8d, 4
mov rdx, r12
mov rcx, r13
call fcn.1005d4820
mov eax, dword [rsi + 0x10]
cmp qword [rbp - 8], 0
bswap eax
mov dword [rbp - 0x28], eax
je 0x1005d754e
mov r8d, 4
mov rdx, r12
mov rcx, r13
call fcn.1005d4820
mov eax, dword [rsi + 0x18]
cmp qword [rbp - 8], 0
bswap eax
mov dword [rbp - 0x28], eax
je 0x1005d7532
mov r9d, 0xffff8135
mov word [rbp - 0x28], r9w
test r15, r15
je 0x1005d7960
mov r8d, 2
mov rdx, r12
mov rcx, r13
call fcn.1005d4820
mov rcx, qword [rbp - 8]
mov rax, qword [rbp - 0x38]
mov rdx, qword [rax + 8]
test rdx, rdx
je 0x1005d746c
mov eax, dword [rdx + 0x28]
cmp dword [rbp - 0x4c], eax
je 0x1005d746c
mov qword [rbp - 0x38], rdx
jmp 0x1005d6d3d
mov rax, qword [rbp - 0x38]
mov rdx, qword [rax + 0x10]
test rdx, rdx
je 0x1005d7481
mov eax, dword [rdx + 0x28]
cmp dword [rbp - 0x4c], eax
jne 0x1005d7463
mov rax, qword [rbp - 0x38]
mov rdx, qword [rax]
mov rax, qword [rax + 0x18]
mov qword [rbp - 0x38], rax
test rdx, rdx
je 0x1005d75b5
test rax, rax
je 0x1005d765e
mov rax, qword [rbp - 0x38]
mov eax, dword [rax + 0x28]
jmp 0x1005d6d3d
mov r9, qword [rbp - 0x18]
mov r8d, 1
mov edx, 4
mov rcx, r12
call sub.msys_2.0.dll_fwrite
jmp 0x1005d7324
mov r9, qword [rbp - 0x18]
mov r8d, 1
mov edx, 2
mov rcx, r12
call sub.msys_2.0.dll_fwrite
mov eax, dword [rsi + 8]
cmp qword [rbp - 8], 0
bswap eax
mov dword [rbp - 0x28], eax
jne 0x1005d72ef
mov r9, qword [rbp - 0x18]
mov r8d, 1
mov edx, 4
mov rcx, r12
call sub.msys_2.0.dll_fwrite
jmp 0x1005d7300
cmp qword [rbp - 0x38], 0
jne 0x1005d74a2
mov r8d, 0xffffaae7
mov word [rbp - 0x28], r8w
test rcx, rcx
je 0x1005d7992
lea rcx, [rbp - 0x20]
mov r8d, 2
mov rdx, r12
xor ebx, ebx
call fcn.1005d4820
cmp eax, 1
sete bl
mov rcx, qword [rbp - 0x10]
test rcx, rcx
je 0x1005d760d
mov rdx, qword [rbp - 8]
test rdx, rdx
je 0x1005d760d
mov r8, qword [rbp]
test r8, r8
jne 0x1005d79f0
mov rax, qword [sym.vim.exe_p_fs]
mov eax, dword [rax]
test eax, eax
jne 0x1005d7939
mov rcx, qword [rbp - 0x48]
call fcn.10065e4f0
test ebx, ebx
jne 0x1005d65d7
jmp 0x1005d65bf
mov r9, qword [rbp - 0x18]
mov r8d, 1
mov edx, 2
mov rcx, r12
call sub.msys_2.0.dll_fwrite
cmp rax, 1
jne 0x100666904
jmp 0x1005d6d7c
mov qword [rbp - 0x38], rdx
mov eax, dword [rdx + 0x28]
jmp 0x1005d6d3d
xor eax, eax
xor r8d, r8d
xor edx, edx
xor ecx, ecx
jmp 0x1005d6e9a
xor eax, eax
xor r8d, r8d
xor edx, edx
xor ecx, ecx
jmp 0x1005d6e48
xor eax, eax
xor r8d, r8d
xor edx, edx
xor ecx, ecx
jmp 0x1005d6df6
xor eax, eax
xor r8d, r8d
xor edx, edx
xor ecx, ecx
jmp 0x1005d6da4
mov r9, qword [rbp - 0x18]
mov r8d, 1
mov edx, 2
mov rcx, r12
call sub.msys_2.0.dll_fwrite
jmp 0x1005d6fb3
mov r9, qword [rbp - 0x18]
mov r8d, 1
mov edx, 4
mov rcx, r12
call sub.msys_2.0.dll_fwrite
jmp 0x1005d6e1f
mov r9, qword [rbp - 0x18]
mov r8d, 1
mov edx, 4
mov rcx, r12
call sub.msys_2.0.dll_fwrite
jmp 0x1005d6dcd
mov r9, qword [rbp - 0x18]
mov r8d, 1
mov edx, 4
mov rcx, r12
call sub.msys_2.0.dll_fwrite
cmp qword [rbp - 8], 0
mov dword [rbp - 0x28], esi
jne 0x1005d70e5
mov r9, qword [rbp - 0x18]
mov r8d, 1
mov edx, 4
mov rcx, r12
call sub.msys_2.0.dll_fwrite
cmp qword [rbp - 8], 0
mov dword [rbp - 0x28], ebx
jne 0x1005d7104
mov r9, qword [rbp - 0x18]
mov r8d, 1
mov edx, 4
mov rcx, r12
call sub.msys_2.0.dll_fwrite
jmp 0x1005d7115
mov r9, qword [rbp - 0x18]
mov r8d, 1
mov edx, 4
mov rcx, r12
call sub.msys_2.0.dll_fwrite
jmp 0x1005d6e71
mov r9, qword [rbp - 0x18]
mov r8d, 1
mov edx, 4
mov rcx, r12
call sub.msys_2.0.dll_fwrite
jmp 0x1005d6eeb
mov r9, qword [rbp - 0x18]
mov r8d, 1
mov edx, 4
mov rcx, r12
call sub.msys_2.0.dll_fwrite
jmp 0x1005d6ec3
mov r9, qword [rbp - 0x18]
mov r8d, 1
mov edx, 4
mov rcx, r12
call sub.msys_2.0.dll_fwrite
jmp 0x1005d6f83
mov r9, qword [rbp - 0x18]
mov r8d, 1
mov edx, 4
mov rcx, r12
call sub.msys_2.0.dll_fwrite
jmp 0x1005d6f5b
mov r9, qword [rbp - 0x18]
mov r8d, 1
mov edx, 4
mov rcx, r12
call sub.msys_2.0.dll_fwrite
jmp 0x1005d6f3c
mov r9, qword [rbp - 0x18]
mov r8d, 1
mov edx, 4
mov rcx, r12
call sub.msys_2.0.dll_fwrite
jmp 0x1005d6f1d
mov r9, qword [rbp - 0x18]
mov r8d, 1
mov edx, 1
mov rcx, r12
call sub.msys_2.0.dll_fwrite
jmp 0x1005d72a2
mov r9, qword [rbp - 0x18]
mov r8d, 1
mov edx, 4
mov rcx, r12
call sub.msys_2.0.dll_fwrite
jmp 0x1005d7282
mov r9, qword [rbp - 0x18]
mov r8d, 1
mov edx, 1
mov rcx, r12
call sub.msys_2.0.dll_fwrite
jmp 0x1005d7257
mov r9, qword [rbp - 0x18]
mov r8d, 1
mov edx, 1
mov rcx, r12
call sub.msys_2.0.dll_fwrite
jmp 0x1005d7237
mov r9, qword [rbp - 0x18]
mov rcx, qword [rbp - 0x58]
mov r8d, 1
mov edx, 8
call sub.msys_2.0.dll_fwrite
jmp 0x1005d7217
mov r9, qword [rbp - 0x18]
mov r8d, 1
mov edx, 4
mov rcx, r12
call sub.msys_2.0.dll_fwrite
jmp 0x1005d71e4
mov r9, qword [rbp - 0x18]
mov r8d, 1
mov edx, 4
mov rcx, r12
call sub.msys_2.0.dll_fwrite
jmp 0x1005d71b9
mov r9, qword [rbp - 0x18]
mov r8d, 1
mov edx, 4
mov rcx, r12
call sub.msys_2.0.dll_fwrite
jmp 0x1005d718e
mov r9, qword [rbp - 0x18]
mov r8d, 1
mov edx, 4
mov rcx, r12
call sub.msys_2.0.dll_fwrite
jmp 0x1005d716f
mov r9, qword [rbp - 0x18]
mov r8d, 1
mov edx, 4
mov rcx, r12
call sub.msys_2.0.dll_fwrite
jmp 0x1005d7150
mov rcx, qword [rbp - 0x48]
call sub.msys_2.0.dll_fflush
test eax, eax
jne 0x1005d761e
mov ecx, dword [rbp - 0x50]
call sym.vim.exe_vim_fsync
test eax, eax
je 0x1005d761e
jmp 0x1005d65b6
mov r9, qword [rbp - 0x18]
mov r8d, 1
mov edx, 2
mov rcx, r12
call sub.msys_2.0.dll_fwrite
jmp 0x1005d744a
mov rcx, qword [rbp - 0x10]
call sym.vim.exe_crypt_free_state
mov qword [rbp - 0x10], 0
jmp 0x1005d65b6
mov r9, qword [rbp - 0x18]
mov r8d, 1
mov rcx, r12
xor ebx, ebx
mov edx, 2
call sub.msys_2.0.dll_fwrite
cmp rax, 1
sete bl
jmp 0x1005d75ee
cmp byte [rbp + 0x98], 0xe5
jne 0x1005d688c
jmp 0x1005d667c
call sym.vim.exe_verbose_enter
lea rcx, str.Writing_undo_file:__s
call sub.msys_intl_8.dll_libintl_gettext
mov rdx, qword [rbp - 0x40]
mov rcx, rax
call sym.vim.exe_smsg
call sym.vim.exe_verbose_leave
jmp 0x1005d6520
xor r9d, r9d
call sym.vim.exe_crypt_encode_inplace
mov r9, qword [rbp - 0x18]
mov rdx, qword [rbp]
mov r8d, 1
mov rcx, qword [rbp - 8]
call sub.msys_2.0.dll_fwrite
cmp rax, 1
jne 0x1005d7a22
mov qword [rbp], 0
jmp 0x1005d760d
mov rax, qword [sym.vim.exe_p_fs]
mov edx, dword [rax]
test edx, edx
je 0x1005d65b6
mov rsi, qword [rbp - 0x48]
mov rcx, rsi
call sub.msys_2.0.dll_fflush
test eax, eax
jne 0x100666904
mov ecx, dword [rbp - 0x50]
call sym.vim.exe_vim_fsync
test eax, eax
jne 0x1005d65b6
mov rcx, rsi
call fcn.10065e4f0
jmp 0x1005d65bf
mov r9, qword [rbp - 0x18]
mov r8d, 1
mov edx, 1
mov rcx, r12
call sub.msys_2.0.dll_fwrite
jmp 0x1005d6d05
mov r9, qword [rbp - 0x18]
mov r8d, 1
mov edx, 4
mov rcx, r12
call sub.msys_2.0.dll_fwrite
jmp 0x1005d6ce4
mov r9, qword [rbp - 0x18]
mov r8d, 1
mov edx, 1
mov rcx, r12
call sub.msys_2.0.dll_fwrite
jmp 0x1005d6cb5
mov r9, qword [rbp - 0x18]
mov r8d, 1
mov edx, 1
mov rcx, r12
call sub.msys_2.0.dll_fwrite
jmp 0x1005d6c94
mov r9, qword [rbp - 0x18]
mov rcx, qword [rbp - 0x58]
mov r8d, 1
mov edx, 8
call sub.msys_2.0.dll_fwrite
jmp 0x1005d6c73
mov r9, qword [rbp - 0x18]
mov r8d, 1
mov edx, 4
mov rcx, r12
call sub.msys_2.0.dll_fwrite
jmp 0x1005d6c38
mov r9, qword [rbp - 0x18]
mov r8d, 1
mov edx, 4
mov rcx, r12
call sub.msys_2.0.dll_fwrite
jmp 0x1005d6c09
mov r9, qword [rbp - 0x18]
mov r8d, 1
mov edx, 4
mov rcx, r12
call sub.msys_2.0.dll_fwrite
jmp 0x1005d6bda
mov r9, qword [rbp - 0x18]
mov r8d, 1
mov edx, 4
mov rcx, r12
call sub.msys_2.0.dll_fwrite
jmp 0x1005d6bab
xor eax, eax
xor r8d, r8d
xor edx, edx
xor ecx, ecx
jmp 0x1005d6b81
mov r9, qword [rbp - 0x18]
mov r8d, 1
mov edx, 4
mov rcx, r12
call sub.msys_2.0.dll_fwrite
jmp 0x1005d6b52
xor eax, eax
xor r8d, r8d
xor edx, edx
xor ecx, ecx
jmp 0x1005d6b28
mov r9, qword [rbp - 0x18]
mov r8d, 1
mov edx, 4
mov rcx, r12
call sub.msys_2.0.dll_fwrite
jmp 0x1005d6af9
xor eax, eax
xor r8d, r8d
xor edx, edx
xor ecx, ecx
jmp 0x1005d6acf
mov r9, qword [rbp - 0x18]
mov r8d, 1
mov edx, 4
mov rcx, r12
call sub.msys_2.0.dll_fwrite
jmp 0x1005d6aa0
mov r9, qword [rbp - 0x18]
mov r8d, 1
mov edx, 4
mov rcx, r12
call sub.msys_2.0.dll_fwrite
jmp 0x1005d6a71
mov rax, qword [sym.vim.exe_p_verbose]
cmp qword [rax], 0
jle 0x1005d6633
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
call sym.vim.exe_verbose_leave
jmp 0x1005d6633
mov r9, qword [rbp - 0x18]
mov r8d, 1
mov edx, 2
mov rcx, r12
call sub.msys_2.0.dll_fwrite
jmp 0x1005d6900
lea rcx, [rbp - 0x20]
mov r8, r13
mov rdx, r10
call fcn.1005d4320
jmp 0x1005d67bd
mov r9, qword [rbp - 0x18]
mov r8d, 1
mov edx, 4
mov rcx, r12
call sub.msys_2.0.dll_fwrite
jmp 0x1005d677f
xor ecx, ecx
xor r8d, r8d
xor eax, eax
xor edx, edx
xor r13d, r13d
xor ebx, ebx
jmp 0x1005d6755
mov r9, qword [rbp - 0x18]
mov r8d, 1
mov edx, 4
mov rcx, r12
call sub.msys_2.0.dll_fwrite
jmp 0x1005d671f
mov r9, qword [rbp - 0x18]
mov r8d, 1
mov edx, 0x20
mov rcx, r13
call sub.msys_2.0.dll_fwrite
cmp rax, 1
jne 0x1005d65b6
jmp 0x1005d66f4
lea r12, [rbp - 0x28]
mov r9, qword [rbp - 0x18]
mov r8d, 1
mov edx, 2
mov rcx, r12
call sub.msys_2.0.dll_fwrite
jmp 0x1005d66cd
lea rcx, str.E828:_Cannot_open_undo_file_for_writing:__s
call sub.msys_intl_8.dll_libintl_gettext
mov rsi, qword [rbp - 0x40]
mov rcx, rax
mov rdx, rsi
call sym.vim.exe_semsg
mov ecx, dword [rbp - 0x50]
call sub.msys_2.0.dll_close
mov rcx, rsi
call sub.msys_2.0.dll_unlink
nop
jmp 0x1005d6606
mov rcx, qword [rbp - 0x48]
call fcn.10065e4f0
nop
jmp 0x1005d65bf
lea rcx, str.E828:_Cannot_open_undo_file_for_writing:__s
call sub.msys_intl_8.dll_libintl_gettext
mov rdx, qword [rbp - 0x40]
mov rcx, rax
call sym.vim.exe_semsg
nop
jmp 0x1005d6606
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 [rbp - 0x40]
mov rcx, rax
call sym.vim.exe_smsg
call sym.vim.exe_verbose_leave
nop
jmp 0x1005d6606
lea rcx, str.Will_not_overwrite_with_undo_file__cannot_read:__s
call sub.msys_intl_8.dll_libintl_gettext
mov rdx, qword [rbp - 0x40]
mov rcx, rax
call sym.vim.exe_smsg
nop
jmp 0x1005d6606
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 [rbp - 0x40]
mov rcx, rax
call sym.vim.exe_smsg
call sym.vim.exe_verbose_leave
nop
jmp 0x1005d6606
lea rcx, str.Will_not_overwrite__this_is_not_an_undo_file:__s
call sub.msys_intl_8.dll_libintl_gettext
mov rdx, qword [rbp - 0x40]
mov rcx, rax
call sym.vim.exe_smsg
nop
jmp 0x1005d6606