Function at 0x1005c1050
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, 0x158
lea rbp, [rsp + 0x80]
mov rbx, rcx
call sym.vim.exe_check_restricted
test eax, eax
je 0x1005c1090
add rsp, 0x158
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
call sym.vim.exe_check_secure
test eax, eax
jne 0x1005c1077
call sym.vim.exe_in_vim9script
test eax, eax
jne 0x1005c1112
lea rdx, str.term_dumpwrite__
mov rcx, rbx
call fcn.1005b8fb0
test rax, rax
je 0x1005c1077
mov rax, qword [rax + 0x2408]
lea rcx, str.E958:_Job_already_finished
cmp qword [rax + 8], 0
mov qword [rbp - 0x40], rax
je 0x1005c16f3
mov eax, dword [rbx + 0x20]
test eax, eax
je 0x1005c1153
cmp eax, 0xc
jne 0x1005c16ec
mov r12, qword [rbx + 0x28]
test r12, r12
je 0x1005c1153
lea rdx, str.rows
mov rcx, r12
call sym.vim.exe_dict_get_number
lea rdx, [0x1006c011a]
mov rcx, r12
mov dword [rbp - 0x50], eax
call sym.vim.exe_dict_get_number
mov dword [rbp - 0x38], eax
jmp 0x1005c1161
xor edx, edx
mov rcx, rbx
call sym.vim.exe_check_for_buffer_arg
test eax, eax
je 0x1005c1077
mov edx, 1
mov rcx, rbx
call sym.vim.exe_check_for_string_arg
test eax, eax
je 0x1005c1077
mov edx, 2
mov rcx, rbx
call sym.vim.exe_check_for_opt_dict_arg
test eax, eax
jne 0x1005c10a2
jmp 0x1005c1077
mov dword [rbp - 0x38], 0
mov dword [rbp - 0x50], 0
lea rcx, [rbx + 0x10]
call sym.vim.exe_tv_get_string_chk
mov r13, rax
test rax, rax
je 0x1005c1077
lea rdx, [rbp + 0x50]
mov rcx, rax
call sub.msys_2.0.dll_stat
test eax, eax
jns 0x1006661fc
cmp byte [r13], 0
je 0x100666220
lea rdx, [0x1006c0140]
mov rcx, r13
call sub.msys_2.0.dll_fopen
mov r12, rax
test rax, rax
je 0x100666219
mov rsi, qword [rbp - 0x40]
mov qword [rbp + 0x10], 0
mov qword [rbp - 0x10], 0
mov qword [rbp - 8], 0
mov qword [rbp], 0
mov qword [rbp + 8], 0
mov dword [rbp + 0x18], 0
mov byte [rbp + 0x10], 2
mov byte [rbp + 0x15], 4
mov rcx, qword [rsi + 8]
call sym.vim.exe_vterm_obtain_screen
mov rcx, qword [rsi + 8]
mov qword [rbp - 0x48], rax
call sym.vim.exe_vterm_obtain_state
lea rdx, [rbp - 0x24]
mov rcx, rax
call sym.vim.exe_vterm_state_get_cursorpos
mov eax, dword [rbp - 0x50]
mov dword [rbp - 0x34], 0
test eax, eax
sete byte [rbp - 0x4a]
js 0x1005c1454
nop dword [rax + rax]
mov rax, qword [rbp - 0x40]
mov esi, dword [rbp - 0x34]
cmp dword [rax + 0x68], esi
jle 0x1005c1454
mov eax, dword [rbp - 0x38]
mov r13d, 0
mov esi, 0
test eax, eax
sete byte [rbp - 0x49]
js 0x1005c142d
nop word [rax + rax]
mov rax, qword [rbp - 0x40]
cmp dword [rax + 0x6c], esi
jle 0x1005c1416
xor r14d, r14d
cmp dword [rbp - 0x20], esi
jne 0x1005c127a
xor r14d, r14d
mov eax, dword [rbp - 0x34]
cmp dword [rbp - 0x24], eax
sete r14b
mov edx, dword [rbp - 0x34]
mov rax, rsi
lea rbx, [rbp + 0x20]
mov rcx, qword [rbp - 0x48]
shl rax, 0x20
mov r8, rbx
or rdx, rax
call sym.vim.exe_vterm_screen_get_cell
test eax, eax
je 0x1005c1558
mov r8d, dword [rbp + 0x20]
xor eax, eax
mov edi, 1
lea rcx, [rbp - 0x10]
mov r15d, dword [rcx + rax*4]
test r8d, r8d
sete dl
test r15d, r15d
sete r9b
or edx, r9d
test rax, rax
je 0x1005c12f0
cmp r8d, r15d
mov r11d, 0
cmovne edi, r11d
test dl, dl
jne 0x1005c1308
add rax, 1
cmp rax, 6
je 0x1005c1308
mov r8d, dword [rbx + rax*4]
jmp 0x1005c12ae
test r8d, r8d
jne 0x1005c1468
test r15d, r15d
je 0x1005c1308
cmp r15d, 0x20
jne 0x1005c1713
mov ecx, dword [rbp + 0x3c]
call fcn.1005b8270
mov ecx, dword [rbp + 0xc]
mov r9d, eax
call fcn.1005b8270
xor r15d, r15d
cmp r9d, eax
je 0x1005c1670
test edi, edi
je 0x1005c1338
movzx eax, byte [rbp + 0x38]
cmp al, byte [rbp + 8]
je 0x1005c1650
mov edi, r15d
xor edi, 1
and edi, 1
test r13d, r13d
je 0x1005c1358
mov r8d, r13d
lea rdx, [0x1006c0143]
mov rcx, r12
call sub.msys_2.0.dll_fprintf
test r14d, r14d
lea rax, [0x1006c00ec]
lea rcx, [0x1006c00ea]
mov r9, r12
cmove rcx, rax
mov r8d, 1
mov edx, 1
call sub.msys_2.0.dll_fwrite
mov ecx, dword [rbp + 0x20]
test ecx, ecx
jne 0x1005c14b0
mov rdx, r12
mov ecx, 0x20
call sub.msys_2.0.dll_fputc
movzx eax, byte [rbp + 0x38]
cmp byte [rbp + 8], al
jne 0x1005c13a6
test dil, dil
je 0x1005c13d5
mov rdx, r12
cmp al, 2
je 0x1005c15a0
mov ecx, 0x2b
call sub.msys_2.0.dll_fputc
test r15d, r15d
je 0x1005c14f0
mov rdx, r12
mov ecx, 0x26
call sub.msys_2.0.dll_fputc
movzx eax, byte [rbp + 0x38]
mov rdx, qword [rbp + 0x40]
movdqa xmm0, xmmword [rbp + 0x20]
xor r13d, r13d
movdqa xmm1, xmmword [rbp + 0x30]
mov qword [rbp + 0x10], rdx
mov edx, dword [rbp + 0x48]
movaps xmmword [rbp - 0x10], xmm0
mov dword [rbp + 0x18], edx
movaps xmmword [rbp], xmm1
lea edx, [rsi + 1]
add esi, 2
cmp al, 2
cmovne esi, edx
cmp dword [rbp - 0x38], esi
jg 0x1005c1258
cmp byte [rbp - 0x49], 0
jne 0x1005c1258
test r13d, r13d
je 0x1005c142d
mov r8d, r13d
lea rdx, [0x1006c0143]
mov rcx, r12
call sub.msys_2.0.dll_fprintf
mov rdx, r12
mov ecx, 0xa
call sub.msys_2.0.dll_fputc
add dword [rbp - 0x34], 1
mov eax, dword [rbp - 0x34]
cmp eax, dword [rbp - 0x50]
jl 0x1005c1228
cmp byte [rbp - 0x4a], 0
jne 0x1005c1228
mov rcx, r12
call fcn.10065e4f0
jmp 0x1005c1077
test r15d, r15d
je 0x1005c1480
cmp r8d, r15d
je 0x1005c12d4
xor edi, edi
jmp 0x1005c12d8
mov ecx, dword [rbp + 0x3c]
call fcn.1005b8270
mov ecx, dword [rbp + 0xc]
mov r9d, eax
call fcn.1005b8270
cmp r8d, 0x20
je 0x1005c131b
cmp r9d, eax
je 0x1005c16d3
mov edi, 1
jmp 0x1005c1341
lea r14, [rbp + 0x34]
lea r13, [rbp - 0x1a]
mov rdx, r13
call sym.vim.exe_utf_char2bytes
mov r9, r12
mov r8d, 1
mov rcx, r13
movsxd rdx, eax
call sub.msys_2.0.dll_fwrite
cmp r14, rbx
je 0x1005c1398
mov ecx, dword [rbx + 4]
add rbx, 4
test ecx, ecx
jne 0x1005c14b8
jmp 0x1005c1398
mov ecx, dword [rbp + 0x3c]
call fcn.1005b8270
lea rdx, [0x1006bfeec]
mov rcx, r12
mov r8d, eax
call sub.msys_2.0.dll_fprintf
lea rdx, [rbp + 0x10]
lea rcx, [rbp + 0x40]
call sym.vim.exe_vterm_color_is_equal
mov rdx, r12
test eax, eax
je 0x1005c1600
mov ecx, 0x26
call sub.msys_2.0.dll_fputc
lea rdx, [rbp + 0x15]
lea rcx, [rbp + 0x45]
call sym.vim.exe_vterm_color_is_equal
mov rdx, r12
mov ebx, eax
test eax, eax
je 0x1005c15b0
mov ecx, 0x26
call sub.msys_2.0.dll_fputc
movzx eax, byte [rbp + 0x38]
jmp 0x1005c13d5
mov qword [rbp + 0x40], 0
xor r8d, r8d
mov qword [rbp + 0x20], 0
mov qword [rbp + 0x28], 0
mov qword [rbp + 0x30], 0
mov qword [rbp + 0x38], 0
mov dword [rbp + 0x48], 0
mov byte [rbp + 0x40], 2
mov byte [rbp + 0x45], 4
jmp 0x1005c12a3
mov ecx, 0x2a
call sub.msys_2.0.dll_fputc
jmp 0x1005c13bb
mov ecx, 0x23
call sub.msys_2.0.dll_fputc
movzx eax, byte [rbp + 0x45]
test al, 1
je 0x1005c16a8
movzx ebx, byte [rbp + 0x49]
add ebx, 1
movzx eax, byte [rbp + 0x48]
movzx r9d, byte [rbp + 0x47]
mov dword [rsp + 0x28], ebx
mov rcx, r12
movzx r8d, byte [rbp + 0x46]
lea rdx, str._02x_02x_02x_d
mov dword [rsp + 0x20], eax
call sub.msys_2.0.dll_fprintf
movzx eax, byte [rbp + 0x38]
jmp 0x1005c13d5
mov ecx, 0x23
call sub.msys_2.0.dll_fputc
movzx eax, byte [rbp + 0x40]
test al, 1
je 0x1005c16c0
movzx r10d, byte [rbp + 0x44]
add r10d, 1
movzx eax, byte [rbp + 0x43]
mov dword [rsp + 0x28], r10d
mov rcx, r12
lea rdx, str._02x_02x_02x_d
movzx r9d, byte [rbp + 0x42]
movzx r8d, byte [rbp + 0x41]
mov dword [rsp + 0x20], eax
call sub.msys_2.0.dll_fprintf
jmp 0x1005c152c
mov edx, r14d
xor edx, 1
test edx, r15d
je 0x1005c1338
add r13d, 1
jmp 0x1005c13f8
lea rdx, [rbp + 0x10]
lea rcx, [rbp + 0x40]
call sym.vim.exe_vterm_color_is_equal
mov r15d, eax
test eax, eax
je 0x1005c1327
lea rdx, [rbp + 0x15]
lea rcx, [rbp + 0x45]
xor r15d, r15d
call sym.vim.exe_vterm_color_is_equal
test eax, eax
setne r15b
jmp 0x1005c1327
test al, al
mov eax, 0xff
cmove ebx, eax
jmp 0x1005c15cd
test al, al
mov eax, 0xff
cmovne eax, r15d
mov r10d, eax
jmp 0x1005c161f
lea rdx, [rbp + 0x10]
lea rcx, [rbp + 0x40]
call sym.vim.exe_vterm_color_is_equal
test eax, eax
je 0x1005c1338
xor edi, edi
jmp 0x1005c1688
mov rcx, qword [sym.vim.exe_e_dictreq]
call sub.msys_intl_8.dll_libintl_gettext
mov rcx, rax
add rsp, 0x158
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
jmp sym.vim.exe_emsg
mov ecx, dword [rbp + 0x3c]
call fcn.1005b8270
mov ecx, dword [rbp + 0xc]
mov r8d, eax
call fcn.1005b8270
cmp r8d, eax
je 0x1005c1733
xor r15d, r15d
jmp 0x1005c1338
lea rdx, [rbp + 0x10]
lea rcx, [rbp + 0x40]
call sym.vim.exe_vterm_color_is_equal
mov r15d, eax
test eax, eax
je 0x1005c1338
xor edi, edi
jmp 0x1005c1688
lea rcx, str.E953:_File_exists:__s
call sub.msys_intl_8.dll_libintl_gettext
mov rdx, r13
mov rcx, rax
call sym.vim.exe_semsg
nop
jmp 0x1005c1077
cmp byte [r13], 0
jne 0x10066622f
lea rcx, [0x1006c0138]
call sub.msys_intl_8.dll_libintl_gettext
mov r13, rax
mov rcx, qword [sym.vim.exe_e_notcreate]
call sub.msys_intl_8.dll_libintl_gettext
mov rdx, r13
mov rcx, rax
call sym.vim.exe_semsg
nop
jmp 0x1005c1077