Function at 0x1004e3420
Capabilities:
Get file attributes

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x1a8
mov rax, qword [sym.vim.exe_recoverymode]
mov rbx, qword [sym.vim.exe_curbuf]
mov rdx, qword [sym.vim.exe_highlight_attr]
mov dword [rax], 1
mov rax, qword [rbx]
mov edi, dword [rdx + 0x10]
mov rbp, qword [rax + 8]
mov r12, qword [rax + 0x98]
test rbp, rbp
mov r13d, ecx
mov qword [rsp + 0x98], 0
sete sil
test r12, r12
je 0x1004e3880
mov rcx, r12
call sub.msys_2.0.dll_strlen
test r13d, r13d
je 0x1004e34b2
cmp eax, 3
jle 0x1004e34b2
movsxd r13, eax
mov r8d, 2
lea rdx, [0x1006c75be]
lea rcx, [r12 + r13 - 4]
call sub.msys_2.0.dll_strncasecmp
test eax, eax
je 0x1004e37b0
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, r12
call sym.vim.exe_recover_names
mov r13d, eax
test eax, eax
je 0x10067796b
cmp eax, 1
je 0x1004e3870
xor r8d, r8d
xor r9d, r9d
mov edx, 1
mov rcx, r12
call sym.vim.exe_recover_names
mov ecx, 0xa
call sym.vim.exe_msg_putchar
lea rcx, str.Enter_number_of_swap_file_to_use__0_to_quit_:
call sub.msys_intl_8.dll_libintl_gettext
mov rcx, rax
call sym.vim.exe_msg_puts
xor edx, edx
xor ecx, ecx
call sym.vim.exe_get_number
mov r8d, eax
test eax, eax
jle 0x1004e3850
cmp r13d, eax
jl 0x1004e3850
lea r9, [rsp + 0x98]
xor edx, edx
mov rcx, r12
xor r14d, r14d
call sym.vim.exe_recover_names
mov r13, qword [rsp + 0x98]
test r13, r13
je 0x1004e3850
test rbp, rbp
je 0x1004e38b8
mov ecx, 0x2480
call sym.vim.exe_alloc
mov rbp, rax
test rax, rax
je 0x1004e3810
mov qword [rax + 0x28], 0
mov rcx, r13
mov qword [rax + 0x38], 0
mov qword [rax + 0x10], 0
mov qword [rax + 0x18], 0
mov dword [rax + 0x20], 0
mov rax, qword [sym.vim.exe_empty_option]
mov rax, qword [rax]
mov qword [rbp + 0x1c50], rax
mov qword [rbp + 0x1ef8], rax
call sym.vim.exe_vim_strsave
xor edx, edx
mov rcx, r13
mov r12, rax
call sym.vim.exe_mf_open
mov qword [rsp + 0x98], r12
mov r15, rax
test rax, rax
je 0x1004e38e0
mov eax, dword [rax + 0x10]
test eax, eax
js 0x1004e3890
mov qword [rbp + 8], r15
mov r8d, 1
xor edx, edx
mov rcx, r15
mov qword [r15 + 0x4a8], rbp
mov dword [r15 + 0x4a0], 0x418
call sym.vim.exe_mf_get
mov r13, rax
test rax, rax
je 0x1004e3b20
mov r10, qword [rax + 0x28]
mov r8d, 7
lea rdx, str.VIM_3.0
lea rcx, [r10 + 2]
mov qword [rsp + 0x48], r10
call sub.msys_2.0.dll_strncmp
mov r10, qword [rsp + 0x48]
test eax, eax
je 0x1004e3b80
cmp byte [r10], 0x62
jne 0x10067794b
movzx eax, byte [r10 + 1]
cmp al, 0x30
je 0x1004e3678
cmp al, 0x63
je 0x1004e3678
lea edx, [rax - 0x43]
cmp dl, 0x21
ja 0x10067794b
movabs rcx, 0x200010001
bt rcx, rdx
jae 0x10067794b
nop dword [rax]
cmp qword [r10 + 0x3f0], 0x30313233
je 0x1004e3908
mov qword [rsp + 0x48], r10
or edi, 0x1000
call sym.vim.exe_msg_start
mov rcx, qword [r15]
mov edx, edi
call sym.vim.exe_msg_outtrans_attr
lea rcx, str._cannot_be_used_on_this_computer._n
call sub.msys_intl_8.dll_libintl_gettext
mov edx, edi
mov rcx, rax
call sym.vim.exe_msg_puts_attr
lea rcx, str.The_file_was_created_on
call sub.msys_intl_8.dll_libintl_gettext
mov edx, edi
mov rcx, rax
call sym.vim.exe_msg_puts_attr
mov r10, qword [rsp + 0x48]
mov edx, edi
mov byte [r10 + 0x6c], 0
lea rcx, [r10 + 0x44]
call sym.vim.exe_msg_puts_attr
lea rcx, str.__nor_the_file_has_been_damaged.
call sub.msys_intl_8.dll_libintl_gettext
mov edx, edi
mov rcx, rax
call sym.vim.exe_msg_puts_attr
call sym.vim.exe_msg_end
mov rcx, r12
call sym.vim.exe_vim_free
mov rax, qword [sym.vim.exe_recoverymode]
mov dword [rax], 0
xor r9d, r9d
xor r8d, r8d
mov rdx, r13
mov rcx, r15
call sym.vim.exe_mf_put
xor edx, edx
mov rcx, r15
call sym.vim.exe_mf_close
mov rax, qword [rbx]
mov rcx, qword [rbp + 0x1c50]
cmp rcx, qword [rax + 0x1c50]
je 0x1004e3747
call sym.vim.exe_free_string_option
mov rcx, qword [rbp + 0x1ef8]
call sym.vim.exe_free_string_option
mov rcx, qword [rbp + 0x10]
call sym.vim.exe_vim_free
mov rcx, rbp
call sym.vim.exe_vim_free
mov rcx, qword [rbx]
test sil, sil
jne 0x1004e3831
mov r8, qword [rcx + 0x98]
mov qword [rsp + 0x20], rcx
xor r9d, r9d
xor edx, edx
mov ecx, 0xa
call sym.vim.exe_apply_autocmds
mov rax, qword [rbx]
xor r9d, r9d
xor edx, edx
mov ecx, 0xd
mov r8, qword [rax + 0x98]
mov qword [rsp + 0x20], rax
call sym.vim.exe_apply_autocmds
jmp 0x1004e383c
movzx eax, byte [r12 + r13 - 2]
mov edx, eax
lea ecx, [rax - 0x41]
add edx, 0x20
cmp cl, 0x1a
lea rcx, str.abcdefghijklmnopqrstuvw
movzx edx, dl
cmovae edx, eax
call sym.vim.exe_vim_strchr
test rax, rax
je 0x1004e34b2
movzx eax, byte [r12 + r13 - 1]
and eax, 0xffffffdf
sub eax, 0x41
cmp al, 0x19
ja 0x1004e34b2
mov rcx, r12
mov r14d, 1
call sym.vim.exe_vim_strsave
mov qword [rsp + 0x98], rax
mov r13, rax
jmp 0x1004e3541
mov rcx, r13
call sym.vim.exe_vim_free
mov rax, qword [sym.vim.exe_recoverymode]
mov dword [rax], 0
mov rcx, qword [rbx]
test sil, sil
je 0x1004e3770
mov edx, 1
call sym.vim.exe_ml_close
nop
add rsp, 0x1a8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
xor ecx, ecx
call sym.vim.exe_vim_free
mov rax, qword [sym.vim.exe_recoverymode]
mov dword [rax], 0
jmp 0x1004e3825
mov r8d, 1
jmp 0x1004e3524
lea r12, [0x1006c74a8]
jmp 0x1004e34b2
test r12, r12
jne 0x1004e3c8b
xor ecx, ecx
call sym.vim.exe_vim_free
mov rax, qword [sym.vim.exe_recoverymode]
mov dword [rax], 0
jmp 0x1004e3725
mov rcx, qword [rbx]
call sym.vim.exe_ml_open
test eax, eax
jne 0x1004e3553
mov ecx, 1
call sym.vim.exe_getout
jmp 0x1004e3553
test r12, r12
jne 0x1004e3c86
xor ecx, ecx
call sym.vim.exe_vim_free
mov rax, qword [sym.vim.exe_recoverymode]
mov dword [rax], 0
jmp 0x1004e372f
movabs rdx, 0xffffffffffffff
movabs rcx, 0x55121320212223
and rdx, qword [r10 + 0x3f8]
cmp rdx, rcx
jne 0x1004e3689
cmp al, 0x63
je 0x1004e3bd0
cmp al, 0x43
je 0x1004e3bdf
cmp al, 0x64
je 0x1004e3c33
cmp al, 0x53
je 0x1004e3c4b
mov dword [rsp + 0x50], 0xffffffff
xor edx, edx
nop word cs:[rax + rax]
mov rcx, rbp
mov qword [rsp + 0x48], r10
call sym.vim.exe_crypt_set_cm_option
mov r10, qword [rsp + 0x48]
mov r9d, dword [r15 + 0x4a0]
mov edx, dword [r10 + 0xc]
mov dword [rsp + 0x48], r9d
cmp edx, r9d
je 0x1004e3a1e
mov rcx, r15
call sym.vim.exe_mf_new_page_size
mov r9d, dword [rsp + 0x48]
cmp r9d, dword [r15 + 0x4a0]
ja 0x1004e3bfe
mov ecx, dword [r15 + 0x10]
xor edx, edx
mov r8d, 2
mov dword [rsp + 0x48], r9d
call sub.msys_2.0.dll_lseek
mov r9d, dword [rsp + 0x48]
test rax, rax
jle 0x1004e3c3d
mov ecx, dword [r15 + 0x4a0]
cqo
idiv rcx
mov qword [r15 + 0x480], rax
mov qword [r15 + 0x498], rax
mov dword [rsp + 0x48], r9d
call sym.vim.exe_alloc
test rax, rax
je 0x1004e36ff
mov r8d, dword [rsp + 0x48]
mov rdx, qword [r13 + 0x28]
mov rcx, rax
mov qword [rsp + 0x48], rax
call sub.msys_2.0.dll_memmove
mov rcx, qword [r13 + 0x28]
call sym.vim.exe_vim_free
mov r10, qword [rsp + 0x48]
mov qword [r13 + 0x28], r10
mov rdi, qword [sym.vim.exe_NameBuff]
mov rdx, qword [rdi]
test r14d, r14d
je 0x1004e3a62
lea rcx, [r10 + 0x6c]
mov r8d, 0x1000
mov qword [rsp + 0x48], r10
call sym.vim.exe_expand_env
mov rdx, qword [rdi]
mov rcx, qword [rbx]
xor r8d, r8d
mov r9d, 1
call sym.vim.exe_setfname
mov r10, qword [rsp + 0x48]
test eax, eax
je 0x1004e36ff
mov dword [rsp + 0x20], 1
mov r8, qword [rdi]
mov r9d, 0x1000
xor ecx, ecx
mov rdx, qword [r15]
mov qword [rsp + 0x48], r10
call sym.vim.exe_home_replace
mov r14, qword [rdi]
lea rcx, str.Using_swap_file___s_
call sub.msys_intl_8.dll_libintl_gettext
mov rcx, rax
mov rdx, r14
call sym.vim.exe_smsg
mov rcx, qword [rbx]
call sym.vim.exe_buf_spname
mov r10, qword [rsp + 0x48]
test rax, rax
je 0x1004e3c55
mov rcx, qword [rbx]
mov qword [rsp + 0x48], r10
call sym.vim.exe_buf_spname
mov rcx, qword [rdi]
mov r8d, 0xfff
mov rdx, rax
call sym.vim.exe_vim_strncpy
mov r10, qword [rsp + 0x48]
mov r14, qword [rdi]
lea rcx, str.Original_file___s_
mov qword [rsp + 0x48], r10
call sub.msys_intl_8.dll_libintl_gettext
mov rcx, rax
mov rdx, r14
call sym.vim.exe_smsg
mov ecx, 0xa
call sym.vim.exe_msg_putchar
mov rax, qword [rbx]
mov r10, qword [rsp + 0x48]
mov rcx, qword [rax + 0x88]
mov esi, dword [r10 + 0x10]
test rcx, rcx
jne 0x10067799b
jmp 0x100677a09
call sym.vim.exe_msg_start
lea rcx, str.Unable_to_read_block_0_from
or edi, 0x1000
call sub.msys_intl_8.dll_libintl_gettext
mov edx, edi
mov rcx, rax
call sym.vim.exe_msg_puts_attr
mov rcx, qword [r15]
mov edx, edi
call sym.vim.exe_msg_outtrans_attr
lea rcx, str._nMaybe_no_changes_were_made_or_Vim_did_not_update_the_swap_file.
call sub.msys_intl_8.dll_libintl_gettext
mov edx, edi
mov rcx, rax
call sym.vim.exe_msg_puts_attr
call sym.vim.exe_msg_end
mov rcx, r12
call sym.vim.exe_vim_free
mov rax, qword [sym.vim.exe_recoverymode]
mov dword [rax], 0
jmp 0x1004e3725
call sym.vim.exe_msg_start
mov rcx, qword [r15]
mov edx, 0x1000
call sym.vim.exe_msg_outtrans_attr
lea rcx, str._cannot_be_used_with_this_version_of_Vim._n
call sub.msys_intl_8.dll_libintl_gettext
mov edx, 0x1000
mov rcx, rax
call sym.vim.exe_msg_puts_attr
lea rcx, str.Use_Vim_version_3.0._n
call sub.msys_intl_8.dll_libintl_gettext
mov edx, 0x1000
mov rcx, rax
call sym.vim.exe_msg_puts_attr
call sym.vim.exe_msg_end
jmp 0x1004e36ff
mov dword [rsp + 0x50], 0
xor edx, edx
jmp 0x1004e3960
mov dword [rsp + 0x50], 1
mov rax, qword [r10 + 0x3e6]
mov edx, dword [rsp + 0x50]
mov qword [r15 + 0x4b0], rax
jmp 0x1004e3960
call sym.vim.exe_msg_start
or edi, 0x1000
mov rcx, qword [r15]
mov edx, edi
call sym.vim.exe_msg_outtrans_attr
lea rcx, str._has_been_damaged__page_size_is_smaller_than_minimum_value_._n
call sub.msys_intl_8.dll_libintl_gettext
mov edx, edi
mov rcx, rax
call sym.vim.exe_msg_puts_attr
call sym.vim.exe_msg_end
jmp 0x1004e36ff
mov dword [rsp + 0x50], 2
jmp 0x1004e3be7
mov ecx, dword [r15 + 0x4a0]
xor eax, eax
jmp 0x1004e39d5
mov dword [rsp + 0x50], 3
jmp 0x1004e3be7
mov rax, qword [rbx]
mov r9d, 0x1000
xor ecx, ecx
mov qword [rsp + 0x48], r10
mov rdx, qword [rax + 0x88]
mov dword [rsp + 0x20], 1
mov r8, qword [rdi]
call sym.vim.exe_home_replace
mov r10, qword [rsp + 0x48]
jmp 0x1004e3ad5
jmp 0x100677a5c
jmp 0x100677d70
mov rcx, qword [sym.vim.exe_e_str_does_not_look_like_vim_swap_file]
mov r14, qword [r15]
call sub.msys_intl_8.dll_libintl_gettext
mov rdx, r14
mov rcx, rax
call sym.vim.exe_semsg
nop
jmp 0x1004e36ff
mov rcx, qword [sym.vim.exe_e_no_swap_file_found_for_str]
call sub.msys_intl_8.dll_libintl_gettext
mov rdx, r12
mov rcx, rax
call sym.vim.exe_semsg
xor ecx, ecx
call sym.vim.exe_vim_free
mov rax, qword [sym.vim.exe_recoverymode]
mov dword [rax], 0
jmp 0x1004e3825
lea rdx, [rsp + 0xa0]
mov qword [rsp + 0x48], r10
call sub.msys_2.0.dll_stat
mov r10, qword [rsp + 0x48]
add eax, 1
je 0x100677a09
mov rcx, qword [r15]
lea rdx, [rsp + 0x120]
call sub.msys_2.0.dll_stat
mov r10, qword [rsp + 0x48]
add eax, 1
je 0x100677da1
mov rax, qword [rsp + 0x160]
cmp qword [rsp + 0xe0], rax
jle 0x100677da1
mov rcx, qword [sym.vim.exe_e_warning_original_file_may_have_been_changed]
mov qword [rsp + 0x48], r10
call sub.msys_intl_8.dll_libintl_gettext
mov rcx, rax
call sym.vim.exe_emsg
mov r10, qword [rsp + 0x48]
mov qword [rsp + 0x48], r10
call sym.vim.exe_out_flush
mov r10, qword [rsp + 0x48]
movzx eax, byte [r10 + 0x3ee]
mov esi, eax
mov edi, eax
and esi, 3
and edi, 3
test al, 8
je 0x100677a8d
xor eax, eax
cmp byte [r10 + 1], 0x30
lea rdx, [r10 + 0x6c]
sete al
lea eax, [rax*8 + 0x37a]
cdqe
add rax, rdx
mov rcx, rax
cmp rdx, rcx
jae 0x100677ac8
cmp byte [rcx - 1], 0
je 0x100677ac8
sub rcx, 1
jmp 0x100677a4b
mov rcx, qword [sym.vim.exe_e_cannot_open_str]
call sub.msys_intl_8.dll_libintl_gettext
mov rdx, r12
mov rcx, rax
call sym.vim.exe_semsg
mov rcx, r12
call sym.vim.exe_vim_free
mov rax, qword [sym.vim.exe_recoverymode]
mov dword [rax], 0
jmp 0x1004e372f
xor r14d, r14d
mov rdx, r13
xor r9d, r9d
xor r8d, r8d
mov rcx, r15
mov qword [rsp + 0x48], r10
call sym.vim.exe_mf_put
mov r13, qword [rsp + 0x48]
mov rax, qword [rbx]
mov edx, dword [rax + 0x20]
and edx, 1
mov dword [rsp + 0x60], edx
jne 0x100677ae2
xor edx, edx
mov ecx, 1
call sym.vim.exe_ml_delete_flags
jmp 0x100677aab
sub rax, rcx
mov qword [rsp + 0x48], r10
mov rdx, rax
call sym.vim.exe_vim_strnsave
mov r10, qword [rsp + 0x48]
mov r14, rax
jmp 0x100677a90
mov rcx, qword [rax + 0x88]
mov r10, r13
test rcx, rcx
je 0x100677d60
mov dword [rsp + 0x30], 1
xor r9d, r9d
xor r8d, r8d
xor edx, edx
movabs rax, 0x7fffffffffffffff
mov qword [rsp + 0x48], r13
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x20], rax
call sym.vim.exe_readfile
mov r10, qword [rsp + 0x48]
mov dword [rsp + 0x84], eax
cmp dword [rsp + 0x50], 0xffffffff
je 0x100677c0f
mov rax, qword [rbx]
mov qword [rsp + 0x48], r10
mov rax, qword [rax + 0x1c50]
cmp byte [rax], 0
je 0x100677db4
lea rcx, str.Swap_file_is_encrypted:___s_
call sub.msys_intl_8.dll_libintl_gettext
mov rdx, r12
mov rcx, rax
call sym.vim.exe_smsg
lea rcx, str._nIf_you_entered_a_new_crypt_key_but_did_not_write_the_text_file_
call sub.msys_intl_8.dll_libintl_gettext
mov rcx, rax
call sym.vim.exe_msg_puts
lea rcx, str._nenter_the_new_crypt_key.
call sub.msys_intl_8.dll_libintl_gettext
mov rcx, rax
call sym.vim.exe_msg_puts
lea rcx, str._nIf_you_wrote_the_text_file_after_changing_the_crypt_key_press_enter
call sub.msys_intl_8.dll_libintl_gettext
mov rcx, rax
call sym.vim.exe_msg_puts
lea rcx, str._nto_use_the_same_key_for_text_file_and_swap_file
call sub.msys_intl_8.dll_libintl_gettext
mov rcx, rax
call sym.vim.exe_msg_puts
mov r10, qword [rsp + 0x48]
xor ecx, ecx
xor edx, edx
mov qword [rsp + 0x48], r10
call sym.vim.exe_crypt_get_key
mov r10, qword [rsp + 0x48]
test rax, rax
mov qword [rbp + 0x1c50], rax
mov rcx, rax
jne 0x100678084
mov rax, qword [rbx]
mov rax, qword [rax + 0x1c50]
mov qword [rbp + 0x1c50], rax
test rax, rax
jne 0x100677c0f
mov rax, qword [sym.vim.exe_empty_option]
mov rax, qword [rax]
mov qword [rbp + 0x1c50], rax
test sil, sil
je 0x100677c2b
lea ecx, [rdi - 1]
mov edx, 4
mov qword [rsp + 0x48], r10
call sym.vim.exe_set_fileformat
mov r10, qword [rsp + 0x48]
test r14, r14
je 0x100677c59
mov r9d, 4
mov r8, r14
xor edx, edx
mov qword [rsp + 0x48], r10
lea rcx, [0x1006c7881]
call sym.vim.exe_set_option_value_give_err
mov rcx, r14
call sym.vim.exe_vim_free
mov r10, qword [rsp + 0x48]
mov rcx, qword [rbx]
mov r8d, 1
mov edx, 1
mov qword [rsp + 0x70], r10
call sym.vim.exe_unchanged
mov rax, qword [rbx]
mov r10, qword [rsp + 0x70]
mov qword [rbp + 0x10], 0
mov qword [rbp + 0x18], 0
cmp qword [rax + 0x88], 0
mov qword [rsp + 0x78], r10
sete al
mov qword [rsp + 0x70], r12
xor esi, esi
xor r14d, r14d
movzx eax, al
xor r13d, r13d
mov dword [rsp + 0x58], 0
mov dword [rsp + 0x80], eax
mov eax, dword [rsp + 0x60]
mov qword [rsp + 0x50], 0
mov dword [rsp + 0x6c], eax
mov qword [rsp + 0x48], 1
mov rax, qword [sym.vim.exe_got_int]
mov r12d, dword [rax]
test r12d, r12d
jne 0x100677e3e
test r13, r13
je 0x100677cfb
xor r9d, r9d
xor r8d, r8d
mov rdx, r13
mov rcx, r15
call sym.vim.exe_mf_put
mov r8d, dword [rsp + 0x6c]
mov rdx, qword [rsp + 0x48]
mov rcx, r15
call sym.vim.exe_mf_get
mov r13, rax
test rax, rax
jne 0x100677dd5
cmp qword [rsp + 0x48], 1
jne 0x100678390
mov rcx, qword [sym.vim.exe_e_unable_to_read_block_one_from_str]
mov r13, qword [r15]
xor esi, esi
mov r12, qword [rsp + 0x70]
call sub.msys_intl_8.dll_libintl_gettext
mov rdx, r13
mov rcx, rax
call sym.vim.exe_semsg
mov rcx, r12
call sym.vim.exe_vim_free
mov rax, qword [sym.vim.exe_recoverymode]
mov dword [rax], 0
jmp 0x1004e3725
mov dword [rsp + 0x84], 2
jmp 0x100677b33
mov rcx, qword [sym.vim.exe_e_cannot_open_str]
call sub.msys_intl_8.dll_libintl_gettext
mov rdx, r12
mov rcx, rax
call sym.vim.exe_semsg
mov rcx, r12
call sym.vim.exe_vim_free
mov rax, qword [sym.vim.exe_recoverymode]
mov dword [rax], 0
jmp 0x1004e3725
cmp qword [rsp + 0xe0], rsi
jne 0x1006779eb
jmp 0x100677a09
mov rcx, qword [sym.vim.exe_need_key_msg]
call sub.msys_intl_8.dll_libintl_gettext
mov rdx, r12
mov rcx, rax
call sym.vim.exe_smsg
mov r10, qword [rsp + 0x48]
jmp 0x100677bc2
mov rdi, qword [rax + 0x28]
movzx eax, word [rdi]
cmp ax, 0x7074
jne 0x100677ea7
cmp dword [rsp + 0x58], 0
movzx eax, word [rdi + 2]
jne 0x100677dff
mov r8, qword [rsp + 0x50]
test r8, r8
jne 0x1006783a0
test ax, ax
jne 0x1006783bf
lea rcx, str.___EMPTY_BLOCK
lea rdi, [r14 + 1]
add rsi, 1
call sub.msys_intl_8.dll_libintl_gettext
mov rcx, r14
xor r8d, r8d
mov r14, rdi
mov rdx, rax
mov r9d, 1
call sym.vim.exe_ml_append_flags
mov eax, dword [rbp + 0x18]
test eax, eax
jne 0x100678016
mov r10, qword [rsp + 0x78]
mov r12, qword [rsp + 0x70]
mov qword [rsp + 0x48], rsi
mov rcx, qword [rbx]
cmp dword [rsp + 0x84], 1
mov rdx, qword [rcx]
je 0x1006780ab
cmp rdx, 2
je 0x10067814b
mov qword [rsp + 0x50], r10
call sym.vim.exe_changed_internal
mov rax, qword [rbx]
mov rsi, qword [rsp + 0x50]
add qword [rax + 0xd0], 1
mov rax, qword [rbx]
mov rcx, qword [rax]
cmp rcx, r14
jle 0x100678188
test byte [rax + 0x20], 1
jne 0x100678188
xor edx, edx
call sym.vim.exe_ml_delete_flags
jmp 0x100677e85
cmp ax, 0x6461
je 0x100677ee0
cmp qword [rsp + 0x48], 1
jne 0x100677fe6
mov rcx, qword [sym.vim.exe_e_block_one_id_wrong_str_not_swp_file]
mov r14, qword [r15]
xor esi, esi
mov r12, qword [rsp + 0x70]
call sub.msys_intl_8.dll_libintl_gettext
mov rdx, r14
mov rcx, rax
call sym.vim.exe_semsg
nop
jmp 0x1004e36ff
mov eax, dword [rsp + 0x6c]
imul eax, dword [r15 + 0x4a0]
cmp eax, dword [rdi + 0xc]
je 0x100677fde
lea rcx, str.____from_here_until____END_lines_may_be_messed_up
add rsi, 1
call sub.msys_intl_8.dll_libintl_gettext
lea r11, [r14 + 1]
xor r8d, r8d
mov rcx, r14
mov rdx, rax
mov r9d, 1
mov qword [rsp + 0x48], r11
call sym.vim.exe_ml_append_flags
mov eax, dword [rsp + 0x6c]
mov r12d, dword [rsp + 0x60]
imul eax, dword [r15 + 0x4a0]
mov r11, qword [rsp + 0x48]
mov dword [rdi + 0xc], eax
mov eax, dword [rdi + 0xc]
mov byte [rdi + rax - 1], 0
mov rax, qword [rsp + 0x50]
cmp qword [rdi + 0x10], rax
je 0x100677f88
lea rcx, str.____from_here_until____END_lines_may_have_been_inserted_deleted
mov qword [rsp + 0x48], r11
add rsi, 1
call sub.msys_intl_8.dll_libintl_gettext
mov r11, qword [rsp + 0x48]
mov r9d, 1
xor r8d, r8d
mov rdx, rax
mov rcx, r11
lea r14, [r11 + 1]
call sym.vim.exe_ml_append_flags
mov r12d, dword [rsp + 0x60]
mov r11, r14
xor r10d, r10d
mov qword [rsp + 0x48], r15
mov r14d, r12d
mov r15, rbp
mov r12, r11
mov rbp, rsi
mov rsi, r10
lea rcx, [r12 + rsi]
cmp qword [rdi + 0x10], rsi
jle 0x10067804d
mov eax, dword [rdi + rsi*4 + 0x18]
and eax, 0x7fffffff
cmp eax, 0x1c
jg 0x100678070
add rbp, 1
lea rdx, [0x1006c75ba]
mov r9d, 1
xor r8d, r8d
add rsi, 1
call sym.vim.exe_ml_append_flags
jmp 0x100677f9f
mov r11, r14
jmp 0x100677f3b
add rsi, 1
lea rcx, str.___BLOCK_MISSING
call sub.msys_intl_8.dll_libintl_gettext
lea rdi, [r14 + 1]
mov rcx, r14
xor r8d, r8d
mov rdx, rax
mov r9d, 1
mov r14, rdi
call sym.vim.exe_ml_append_flags
jmp 0x100677e33
sub eax, 1
mov dword [rbp + 0x18], eax
cdqe
shl rax, 5
add rax, qword [rbp + 0x10]
mov rdi, qword [rax]
mov r12d, dword [rax + 0x18]
mov eax, dword [rsp + 0x60]
mov qword [rsp + 0x48], rdi
add r12d, 1
mov dword [rsp + 0x6c], eax
call sym.vim.exe_line_breakcheck
mov dword [rsp + 0x58], r12d
jmp 0x100677cd2
mov r12d, r14d
mov rsi, rbp
mov r14, rcx
mov rbp, r15
mov r15, qword [rsp + 0x48]
test r12d, r12d
je 0x100677e33
lea rcx, str.___END
jmp 0x100677ff1
cmp dword [rdi + 0xc], eax
jle 0x100677fbf
cdqe
lea rdx, [rdi + rax]
jmp 0x100677fca
cmp byte [rax], 0
jne 0x100677c0f
mov qword [rsp + 0x48], r10
call sym.vim.exe_vim_free
mov rax, qword [rbx]
mov r10, qword [rsp + 0x48]
mov rax, qword [rax + 0x1c50]
jmp 0x100677bf2
lea rax, [r14 + r14]
add rax, 1
cmp rax, rdx
jne 0x100677e61
mov qword [rsp + 0x50], r12
mov esi, 1
mov r12, r10
mov qword [rsp + 0x58], r15
mov r15, rbp
mov rcx, qword [rbx]
cmp rsi, r14
jg 0x100678173
mov rdx, rsi
xor r8d, r8d
call sym.vim.exe_ml_get_buf
mov rcx, rax
call sym.vim.exe_vim_strsave
mov rcx, qword [rbx]
lea rdx, [r14 + rsi]
xor r8d, r8d
mov rdi, rax
add rsi, 1
call sym.vim.exe_ml_get_buf
mov rcx, rdi
mov rdx, rax
call sub.msys_2.0.dll_strcmp
mov rcx, rdi
mov ebp, eax
call sym.vim.exe_vim_free
test ebp, ebp
je 0x1006780d1
mov qword [rsp + 0x60], r12
mov rbp, r15
mov r12, qword [rsp + 0x50]
mov r15, qword [rsp + 0x58]
call sym.vim.exe_changed_internal
mov rax, qword [rbx]
mov rsi, qword [rsp + 0x60]
add qword [rax + 0xd0], 1
jmp 0x100677e85
xor r8d, r8d
mov edx, 1
mov qword [rsp + 0x50], r10
call sym.vim.exe_ml_get_buf
mov r10, qword [rsp + 0x50]
cmp byte [rax], 0
jne 0x100677e6b
mov rsi, r10
jmp 0x100677e85
mov rsi, r12
mov rbp, r15
mov r12, qword [rsp + 0x50]
mov r15, qword [rsp + 0x58]
jmp 0x100677e85
or dword [rax + 0x7c], 1
mov qword [rsp + 0x50], rsi
call sym.vim.exe_check_cursor
mov rax, qword [sym.vim.exe_recoverymode]
mov r10, qword [rsp + 0x50]
mov dword [rax], 0
mov rax, qword [sym.vim.exe_got_int]
mov eax, dword [rax]
test eax, eax
je 0x10067824a
mov rcx, qword [sym.vim.exe_e_recovery_interrupted]
call sub.msys_intl_8.dll_libintl_gettext
mov rcx, rax
call sym.vim.exe_emsg
mov rdx, qword [rbp + 0x1c50]
cmp byte [rdx], 0
je 0x10067821b
mov rax, qword [rbx]
mov rcx, qword [rax + 0x1c50]
call sub.msys_2.0.dll_strcmp
test eax, eax
je 0x10067821b
lea rcx, str.Using_crypt_key_from_swap_file_for_the_text_file._n
call sub.msys_intl_8.dll_libintl_gettext
mov rcx, rax
call sym.vim.exe_msg_puts
mov r8, qword [rbp + 0x1c50]
xor edx, edx
mov r9d, 4
lea rcx, [0x1006c7b13]
call sym.vim.exe_set_option_value_give_err
mov ecx, 0x28
xor esi, esi
call sym.vim.exe_redraw_curbuf_later
mov rcx, r12
call sym.vim.exe_vim_free
mov rax, qword [sym.vim.exe_recoverymode]
mov dword [rax], 0
test r13, r13
je 0x10067838b
jmp 0x1004e3714
cmp qword [rsp + 0x48], 0
je 0x1006782a3
mov rsi, qword [sym.vim.exe_no_wait_return]
lea r14, str._____________
mov rcx, r14
add dword [rsi], 1
call sym.vim.exe_msg
mov rcx, qword [sym.vim.exe_e_errors_detected_while_recovering_look_for_lines_starting_with_questions]
call sub.msys_intl_8.dll_libintl_gettext
mov rcx, rax
call sym.vim.exe_emsg
lea rcx, str.See__:help_E312__for_more_information.
sub dword [rsi], 1
call sub.msys_intl_8.dll_libintl_gettext
mov rcx, rax
call sym.vim.exe_msg
mov rcx, r14
call sym.vim.exe_msg
jmp 0x1006781cd
mov rax, qword [rbx]
mov qword [rsp + 0x48], r10
cmp dword [rax + 0xc0], 0
je 0x10067836d
lea rcx, str.Recovery_completed._You_should_check_if_everything_is_OK.
call sub.msys_intl_8.dll_libintl_gettext
mov rcx, rax
call sym.vim.exe_msg
lea rcx, str._n_You_might_want_to_write_out_this_file_under_another_name_n
call sub.msys_intl_8.dll_libintl_gettext
mov rcx, rax
call sym.vim.exe_msg_puts
lea rcx, str.and_run_diff_with_the_original_file_to_check_for_changes_
call sub.msys_intl_8.dll_libintl_gettext
mov rcx, rax
call sym.vim.exe_msg_puts
mov r10, qword [rsp + 0x48]
lea rcx, str._nYou_may_want_to_delete_the_.swp_file_now.
mov qword [rsp + 0x48], r10
call sub.msys_intl_8.dll_libintl_gettext
mov rcx, rax
call sym.vim.exe_msg_puts
mov rdx, qword [rsp + 0x98]
mov rcx, qword [rsp + 0x48]
call fcn.1004defb0
test eax, eax
je 0x10067834a
lea rcx, str._nNote:_process_STILL_RUNNING:
call sub.msys_intl_8.dll_libintl_gettext
mov rcx, rax
call sym.vim.exe_msg_puts
mov r10, qword [rsp + 0x48]
mov ecx, dword [r10 + 0x18]
call sym.vim.exe_msg_outnum
lea rcx, [0x1006c7ad7]
call sym.vim.exe_msg_puts
mov rax, qword [sym.vim.exe_msg_row]
mov edx, dword [rax]
mov rax, qword [sym.vim.exe_cmdline_row]
mov dword [rax], edx
jmp 0x1006781cd
lea rcx, str.Recovery_completed._Buffer_contents_equals_file_contents.
call sub.msys_intl_8.dll_libintl_gettext
mov rcx, rax
call sym.vim.exe_msg
mov r10, qword [rsp + 0x48]
jmp 0x1006782f9
jmp 0x1004e3725
add rsi, 1
lea rcx, str.___MANY_LINES_MISSING
jmp 0x100677ff1
movzx ecx, ax
xor edx, edx
cmp ecx, edx
jle 0x100678472
mov r9, rdx
add rdx, 1
shl r9, 5
sub r8, qword [rdi + r9 + 0x10]
jmp 0x1006783a5
cmp eax, dword [rsp + 0x58]
jle 0x100677e33
movsxd rax, dword [rsp + 0x58]
shl rax, 5
add rdi, rax
cmp qword [rdi + 8], 0
jns 0x1006784c1
cmp dword [rsp + 0x80], 0
jne 0x10067842e
mov rdx, qword [rbx]
mov r11, qword [rdi + 0x10]
mov r8, r14
mov rax, qword [rdi + 0x18]
mov rcx, qword [rdx + 0x88]
mov qword [rsp + 0x20], r11
xor edx, edx
mov dword [rsp + 0x30], 0
lea r9, [rax - 1]
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x50], r11
call sym.vim.exe_readfile
sub eax, 1
je 0x10067851c
lea rcx, str.___LINES_MISSING
lea rdi, [r14 + 1]
add rsi, 1
call sub.msys_intl_8.dll_libintl_gettext
mov rcx, r14
xor r8d, r8d
mov r14, rdi
mov rdx, rax
mov r9d, 1
call sym.vim.exe_ml_append_flags
mov eax, dword [rsp + 0x60]
mov dword [rsp + 0x80], eax
mov r12d, dword [rsp + 0x58]
add r12d, 1
jmp 0x10067803e
mov qword [rsp + 0x50], r8
test r8, r8
je 0x100677dff
lea rcx, str.___LINE_COUNT_WRONG
add rsi, 1
call sub.msys_intl_8.dll_libintl_gettext
mov rcx, r14
mov r9d, 1
xor r8d, r8d
mov rdx, rax
lea rax, [r14 + 1]
mov qword [rsp + 0x88], rax
call sym.vim.exe_ml_append_flags
mov r14, qword [rsp + 0x88]
movzx eax, word [rdi + 2]
jmp 0x100677dff
mov rcx, rbp
call fcn.1004de3b0
test eax, eax
jns 0x1006784e5
add rsi, 1
mov r10, qword [rsp + 0x78]
mov r12, qword [rsp + 0x70]
mov qword [rsp + 0x48], rsi
jmp 0x100677e4d
mov rdx, qword [rsp + 0x48]
cdqe
shl rax, 5
add rax, qword [rbp + 0x10]
mov qword [rax], rdx
mov edx, dword [rsp + 0x58]
mov dword [rax + 0x18], edx
mov rax, qword [rdi + 8]
mov qword [rsp + 0x48], rax
mov rax, qword [rdi + 0x10]
mov qword [rsp + 0x50], rax
mov eax, dword [rdi + 0x20]
mov dword [rsp + 0x6c], eax
jmp 0x10067803e
add r14, qword [rsp + 0x50]
jmp 0x100678464