Function at 0x1004e3330
Capabilities:
Write file on windows

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0x88
lea rbp, [rsp + 0x80]
mov dword [rdx], 7
mov r13, rcx
mov r12, rdx
mov ebx, r8d
mov qword [rdx + 8], 0
call sym.vim.exe_check_restricted
test eax, eax
je 0x1004e3380
add rsp, 0x88
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
call sym.vim.exe_check_secure
mov esi, eax
test eax, eax
jne 0x1004e336b
call sym.vim.exe_in_vim9script
test eax, eax
jne 0x1004e3510
mov eax, dword [r13 + 0x10]
xor r14d, r14d
test eax, eax
jne 0x1004e35a8
mov rax, qword [sym.vim.exe_msg_silent]
mov rcx, r13
cmp dword [rax], 1
sbb edi, edi
and edi, 4
add edi, 0x10
test ebx, ebx
je 0x1004e3540
call sym.vim.exe_tv_get_string
mov r13, rax
call sym.vim.exe_check_restricted
test eax, eax
jne 0x1004e3578
call sym.vim.exe_check_secure
mov esi, eax
test eax, eax
jne 0x1004e3578
mov rcx, r13
lea r9, [rbp - 0x50]
mov r8d, edi
mov rdx, r14
call fcn.1004e3020
mov r13, rax
test rax, rax
je 0x1004e3578
call sym.vim.exe_list_alloc
mov r15, rax
test rax, rax
je 0x1004e37a3
mov eax, dword [rbp - 0x50]
mov edi, 0xa
test eax, eax
jle 0x1004e34ea
nop word [rax + rax]
movsxd rdx, esi
lea r8, [r13 + rdx]
mov rbx, r8
nop dword [rax + rax]
cmp byte [rbx], 0xa
je 0x1004e3700
add esi, 1
add rbx, 1
cmp esi, eax
jl 0x1004e3440
movsxd rcx, esi
lea rbx, [r13 + rcx]
sub rcx, rdx
mov qword [rbp - 0x58], r8
add rcx, 1
call sym.vim.exe_alloc
mov rcx, rax
test rax, rax
je 0x1004e371d
mov r8, qword [rbp - 0x58]
cmp r8, rbx
jae 0x1004e3710
sub rbx, r8
xor eax, eax
nop word [rax + rax]
movzx edx, byte [r8 + rax]
test dl, dl
cmove edx, edi
mov byte [rcx + rax], dl
add rax, 1
cmp rbx, rax
jne 0x1004e3490
add rbx, rcx
mov byte [rbx], 0
mov qword [rbp - 0x58], rcx
call sym.vim.exe_listitem_alloc
mov rcx, qword [rbp - 0x58]
test rax, rax
mov rdx, rax
je 0x1004e3718
mov qword [rax + 0x18], rcx
mov rcx, r15
add esi, 1
mov dword [rax + 0x10], 7
mov byte [rax + 0x14], 0
call sym.vim.exe_list_append
mov eax, dword [rbp - 0x50]
cmp eax, esi
jg 0x1004e3430
mov rdx, r15
mov rcx, r12
call sym.vim.exe_rettv_list_set
test r14, r14
je 0x1004e350a
mov rcx, r14
call sub.msys_2.0.dll_unlink
mov rcx, r14
call sym.vim.exe_vim_free
mov rcx, r13
jmp 0x1004e358c
xor edx, edx
mov rcx, r13
call sym.vim.exe_check_for_string_arg
test eax, eax
je 0x1004e336b
mov edx, 1
mov rcx, r13
call sym.vim.exe_check_for_opt_string_or_number_or_list_arg
test eax, eax
jne 0x1004e3398
jmp 0x1004e336b
call sym.vim.exe_tv_get_string
mov r13, rax
call sym.vim.exe_check_restricted
test eax, eax
jne 0x1004e3648
call sym.vim.exe_check_secure
test eax, eax
jne 0x1004e3648
xor r9d, r9d
mov r8d, edi
mov rdx, r14
mov rcx, r13
call fcn.1004e3020
mov qword [r12 + 8], rax
test r14, r14
je 0x1004e336b
mov rcx, r14
call sub.msys_2.0.dll_unlink
mov rcx, r14
add rsp, 0x88
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
jmp sym.vim.exe_vim_free
mov edx, 1
mov ecx, 0x69
call sym.vim.exe_vim_tempname
mov r14, rax
test rax, rax
je 0x1004e377c
lea rdx, [0x1006ac160]
mov rcx, rax
call sub.msys_2.0.dll_fopen
mov r15, rax
test rax, rax
je 0x100663d6e
mov eax, dword [r13 + 0x10]
cmp eax, 5
je 0x1004e364f
cmp eax, 0xb
je 0x1004e3755
lea rdx, [rbp - 0x50]
lea rcx, [r13 + 0x10]
call sym.vim.exe_tv_get_string_buf_chk
mov rsi, rax
test rax, rax
je 0x1004e37d8
mov rcx, rax
call sub.msys_2.0.dll_strlen
mov rcx, r15
test rax, rax
jne 0x1004e37b1
call fcn.10065e4f0
test eax, eax
je 0x1004e33a7
lea rcx, str.E677:_Error_writing_temp_file
call sub.msys_intl_8.dll_libintl_gettext
mov rcx, rax
call sym.vim.exe_emsg
jmp 0x1004e3581
xor eax, eax
jmp 0x1004e3573
mov ecx, dword [r13 + 0x18]
call sym.vim.exe_buflist_findnr
mov qword [rbp - 0x60], rax
test rax, rax
je 0x100663d28
cmp qword [rax], 0
mov qword [rbp - 0x58], 1
jle 0x1004e36e9
nop dword [rax + rax]
mov rcx, qword [rbp - 0x60]
mov rdx, qword [rbp - 0x58]
xor r8d, r8d
call sym.vim.exe_ml_get_buf
movzx ecx, byte [rax]
mov rdi, rax
test cl, cl
jne 0x1004e36a4
jmp 0x1004e36c1
movzx ecx, byte [rdi + 1]
add rdi, 1
test cl, cl
je 0x1004e36c1
cmp cl, 0xa
mov eax, 0
mov rdx, r15
cmove ecx, eax
call sub.msys_2.0.dll_putc
cmp eax, 0xffffffff
jne 0x1004e3698
mov esi, 1
mov rdx, r15
mov ecx, 0xa
call sub.msys_2.0.dll_putc
cmp eax, 0xffffffff
je 0x1004e37d3
mov rdi, qword [rbp - 0x60]
add qword [rbp - 0x58], 1
mov rax, qword [rbp - 0x58]
cmp qword [rdi], rax
jge 0x1004e3678
mov rcx, r15
call fcn.10065e4f0
or eax, esi
je 0x1004e33a7
jmp 0x1004e362a
movsxd rcx, esi
jmp 0x1004e345c
mov rbx, rax
jmp 0x1004e34a9
call sym.vim.exe_vim_free
test r14, r14
je 0x1004e3732
mov rcx, r14
call sub.msys_2.0.dll_unlink
mov rcx, r14
call sym.vim.exe_vim_free
mov rcx, r13
call sym.vim.exe_vim_free
mov rcx, r15
add rsp, 0x88
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
jmp sym.vim.exe_list_free
mov rdx, qword [r13 + 0x18]
mov rcx, r15
mov r8d, 1
call sym.vim.exe_write_list
mov rcx, r15
test eax, eax
jne 0x1004e361d
call fcn.10065e4f0
jmp 0x1004e362a
mov rcx, qword [sym.vim.exe_e_notmp]
call sub.msys_intl_8.dll_libintl_gettext
mov rcx, rax
add rsp, 0x88
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
jmp sym.vim.exe_emsg
test r14, r14
jne 0x1004e34fa
jmp 0x1004e350a
mov rcx, rsi
mov r9, r15
mov r8d, 1
mov rdx, rax
call sub.msys_2.0.dll_fwrite
mov rcx, r15
cmp rax, 1
jne 0x1004e3772
jmp 0x1004e361d
mov rcx, r15
jmp 0x1004e3772
mov rcx, r15
call fcn.10065e4f0
jmp 0x1004e3581
mov rcx, qword [sym.vim.exe_e_nobufnr]
mov r12, qword [r13 + 0x18]
call sub.msys_intl_8.dll_libintl_gettext
mov rdx, r12
mov rcx, rax
call sym.vim.exe_semsg
mov rcx, r15
call fcn.10065e4f0
mov rcx, r14
call sub.msys_2.0.dll_unlink
mov rcx, r14
add rsp, 0x88
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
jmp sym.vim.exe_vim_free
mov rcx, qword [sym.vim.exe_e_notopen]
call sub.msys_intl_8.dll_libintl_gettext
mov rdx, r14
mov rcx, rax
call sym.vim.exe_semsg
jmp 0x100663d4b