joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1004a6540
Capabilities:
Write file on windows

Disassembly:
push rbp
push rbx
sub rsp, 0x28
lea rbp, [rsp + 0x80]
mov eax, dword [0x100709a20]
test eax, eax
je 0x1004a6560
add rsp, 0x28
pop rbx
pop rbp
ret
movsxd rbx, edx
mov r9, qword [0x100709a28]
mov edx, 1
mov r8, rbx
call sub.msys_2.0.dll_fwrite
cmp rbx, rax
je 0x1004a6558
lea rcx, str.E455:_Error_writing_to_PostScript_output_file
call sub.msys_intl_8.dll_libintl_gettext
mov rcx, rax
call sym.vim.exe_emsg
mov dword [0x100709a20], 1
add rsp, 0x28
pop rbx
pop rbp
ret

Function at 0x1004a6640
Capabilities:
Write file on windows

Disassembly:
push rbp
push r12
push rbx
mov rbp, rsp
sub rsp, 0x20
mov eax, dword [0x100709a20]
mov r12, rcx
test eax, eax
je 0x1004a6668
add rsp, 0x20
pop rbx
pop r12
pop rbp
ret
call sub.msys_2.0.dll_strlen
mov r9, qword [0x100709a28]
mov edx, 1
mov rcx, r12
movsxd rbx, eax
mov r8, rbx
call sub.msys_2.0.dll_fwrite
cmp rbx, rax
je 0x1004a6658
lea rcx, str.E455:_Error_writing_to_PostScript_output_file
call sub.msys_intl_8.dll_libintl_gettext
mov rcx, rax
call sym.vim.exe_emsg
mov dword [0x100709a20], 1
add rsp, 0x20
pop rbx
pop r12
pop rbp
ret

Function at 0x1004a66c0
Capabilities:
Write file on windows

Disassembly:
push rbp
push rsi
push rbx
mov rbp, rsp
sub rsp, 0x40
mov qword [rsp + 0x28], r9
mov rbx, rcx
mov r9, rcx
mov esi, r8d
mov qword [rsp + 0x20], rdx
lea r8, str.___s__VIM__s___s_ref_n
mov edx, 0x101
lea rcx, [0x100709880]
call sym.vim.exe_vim_snprintf
lea rcx, [0x100709880]
call fcn.1004a6640
mov eax, dword [0x100709834]
test eax, eax
je 0x1004a6768
pxor xmm1, xmm1
mov dword [rsp + 0x28], esi
mov r8d, 0x101
xor edx, edx
cvtsi2sd xmm1, dword [0x100672d00]
movsd xmm0, qword [0x1006a4e20]
mov qword [rsp + 0x38], rbx
lea r9, str.__s__d__f____s_sffs_n
mov qword [rsp + 0x20], rbx
lea rcx, [0x100709880]
divsd xmm0, xmm1
movsd qword [rsp + 0x30], xmm0
call sub.msys_2.0.dll___sprintf_chk
lea rcx, [0x100709880]
add rsp, 0x40
pop rbx
pop rsi
pop rbp
jmp fcn.1004a6640
mov qword [rsp + 0x28], rbx
mov r9, rbx
lea r8, str.__s__d____s_ffs_n
mov edx, 0x101
mov dword [rsp + 0x20], esi
lea rcx, [0x100709880]
call sym.vim.exe_vim_snprintf
jmp 0x1004a6752
Function at 0x1004a6790
Capabilities:
Write file on windows

Disassembly:
push rbp
push rsi
push rbx
mov rbp, rsp
sub rsp, 0x30
pxor xmm2, xmm2
cvttsd2si eax, xmm0
movapd xmm1, xmm0
mov esi, edx
cvtsi2sd xmm2, eax
subsd xmm0, xmm2
comisd xmm2, xmm1
cvtsd2ss xmm0, xmm0
jbe 0x1004a67c1
xorps xmm0, xmmword [0x1006a4e30]
movss xmm1, dword [0x1006a4e40]
mulss xmm0, xmm1
mulss xmm0, xmm1
cmp esi, 3
jne 0x1004a67da
mulss xmm0, xmm1
cvtss2sd xmm0, xmm0
mov dword [rsp + 0x20], eax
xor edx, edx
addsd xmm0, qword [0x1006a4e48]
lea rcx, [0x100709880]
lea r9, [0x1006a4092]
mov r8d, 0x101
cvttsd2si ebx, xmm0
call sub.msys_2.0.dll___sprintf_chk
lea rcx, [0x100709880]
call fcn.1004a6640
test ebx, ebx
jne 0x1004a685a
mov eax, 0x20
lea rcx, [0x100709880]
mov word [0x100709880], ax
add rsp, 0x30
pop rbx
pop rsi
pop rbp
jmp fcn.1004a6640
movsxd rax, ebx
mov edx, ebx
sub esi, 1
imul rax, rax, 0x66666667
sar edx, 0x1f
sar rax, 0x22
sub eax, edx
mov ebx, eax
imul eax, ebx, 0xcccccccd
add eax, 0x19999998
ror eax, 1
cmp eax, 0x19999998
jbe 0x1004a6840
mov dword [rsp + 0x28], ebx
lea r9, str.._0d
xor edx, edx
mov r8d, 0x101
mov dword [rsp + 0x20], esi
lea rcx, [0x100709880]
call sub.msys_2.0.dll___sprintf_chk
lea rcx, [0x100709880]
call fcn.1004a6640
jmp 0x1004a6819
Function at 0x1004a6da0
Capabilities:
Read file on windows

Disassembly:
push rbp
push r13
push r12
push rbx
sub rsp, 0x238
lea rbp, [rsp + 0x80]
lea rdx, [0x1006a40a4]
lea r13, [rcx + 0x40]
mov rbx, rcx
mov rcx, r13
call sub.msys_2.0.dll_fopen
mov r12, rax
test rax, rax
je 0x1006620ea
movsxd rdx, dword [rbx + 0x1044]
lea rax, str.procset
lea r9, str.BeginResource
lea r8, str._____s:__s
lea rcx, [0x100709880]
mov rax, qword [rax + rdx*8]
mov edx, 0x101
mov qword [rsp + 0x20], rax
call sym.vim.exe_vim_snprintf
lea rcx, [0x100709880]
call fcn.1004a6640
lea r9, [rbx + 0x1048]
lea rbx, [rbp - 0x50]
mov edx, 0x101
lea r8, str.__s_n
lea rcx, [0x100709880]
call sym.vim.exe_vim_snprintf
lea rcx, [0x100709880]
call fcn.1004a6640
mov qword [rsp + 0x20], r13
mov edx, 0x101
lea r9, str.BeginDocument
lea r8, str._____s:__s_n
lea rcx, [0x100709880]
call sym.vim.exe_vim_snprintf
lea rcx, [0x100709880]
call fcn.1004a6640
jmp 0x1004a6e98
mov edx, eax
mov rcx, rbx
call fcn.1004a6540
mov eax, dword [0x100709a20]
test eax, eax
jne 0x1004a6f30
mov r9, r12
mov r8d, 0x200
mov edx, 1
mov rcx, rbx
call sub.msys_2.0.dll_fread
test byte [r12 + 0x10], 0x40
jne 0x1006620c4
test rax, rax
jne 0x1004a6e80
mov rcx, r12
call fcn.10065e4f0
lea r9, str.EndDocument
lea r8, str._____s_n
mov edx, 0x101
lea rcx, [0x100709880]
call sym.vim.exe_vim_snprintf
lea rcx, [0x100709880]
call fcn.1004a6640
lea r9, str.EndResource
lea r8, str._____s_n
mov edx, 0x101
lea rcx, [0x100709880]
call sym.vim.exe_vim_snprintf
lea rcx, [0x100709880]
call fcn.1004a6640
mov eax, 1
add rsp, 0x238
pop rbx
pop r12
pop r13
pop rbp
ret
mov rcx, r12
call fcn.10065e4f0
xor eax, eax
add rsp, 0x238
pop rbx
pop r12
pop r13
pop rbp
ret
lea rcx, str.E457:_Cant_read_PostScript_resource_file___s_
call sub.msys_intl_8.dll_libintl_gettext
mov rdx, r13
mov rcx, rax
call sym.vim.exe_semsg
mov rcx, r12
call fcn.10065e4f0
xor eax, eax
jmp 0x1004a6f22
lea rcx, str.E456:_Cant_open_file___s_
call sub.msys_intl_8.dll_libintl_gettext
mov rdx, r13
mov rcx, rax
call sym.vim.exe_semsg
xor eax, eax
jmp 0x1004a6f22
Function at 0x1004b48c0
Capabilities:
Write file on windows

Disassembly:
push rbp
push r14
push r13
push r12
push rdi
push rsi
push rbx
mov rbp, rsp
sub rsp, 0x70
mov rax, qword [0x100709b28]
movsxd rcx, ecx
mov esi, edx
lea rbx, [rcx*8]
sub rbx, rcx
shl rbx, 3
mov r9, qword [rax + rbx + 0x30]
test r9, r9
je 0x1004b491e
lea rcx, [0x1006a7ae0]
mov r8d, 2
mov edx, 1
call sub.msys_2.0.dll_fwrite
mov rax, qword [0x100709b28]
mov rcx, qword [rax + rbx + 0x30]
call sub.msys_2.0.dll_fflush
lea r13, [rbp - 0x40]
lea rcx, [rbp - 0x38]
call sub.msys_2.0.dll_sigemptyset
lea r12, [rbp - 0x20]
mov rdx, r13
lea rax, [0x1004b48b0]
mov r8, r12
mov ecx, 0xe
mov qword [rbp - 0x40], rax
lea r13, [rbp - 0x44]
mov dword [rbp - 0x30], 0x40000000
call sub.msys_2.0.dll_sigaction
mov ecx, 2
call sub.msys_2.0.dll_alarm
mov rax, qword [0x100709b28]
xor r8d, r8d
mov rdx, r13
mov ecx, dword [rax + rbx + 0x18]
call fcn.10065ed90
mov edi, eax
call sub.msys_2.0.dll___errno
xor ecx, ecx
mov r14d, dword [rax]
call sub.msys_2.0.dll_alarm
xor r8d, r8d
mov rdx, r12
mov ecx, 0xe
call sub.msys_2.0.dll_sigaction
mov rax, qword [0x100709b28]
add rax, rbx
test edi, edi
js 0x1004b4a30
mov rcx, qword [rax + 0x28]
test rcx, rcx
je 0x1004b49c0
call fcn.10065e4f0
mov rax, qword [0x100709b28]
add rax, rbx
mov rcx, qword [rax + 0x30]
test rcx, rcx
je 0x1004b49d8
call fcn.10065e4f0
mov rax, qword [0x100709b28]
add rax, rbx
test esi, esi
jne 0x1004b4a78
mov qword [rax], 0
mov qword [rax + 8], 0
mov qword [rax + 0x10], 0
mov qword [rax + 0x18], 0
mov qword [rax + 0x20], 0
mov qword [rax + 0x28], 0
mov qword [rax + 0x30], 0
add rsp, 0x70
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop rbp
ret
mov ecx, dword [rax + 0x18]
cmp ecx, 1
jle 0x1004b49a8
cmp r14d, 0xa
je 0x1004b4ab8
mov edx, 9
call sub.msys_2.0.dll_kill
mov rax, qword [0x100709b28]
xor r8d, r8d
mov rdx, r13
mov ecx, dword [rax + rbx + 0x18]
call fcn.10065ed90
mov rax, qword [0x100709b28]
add rax, rbx
jmp 0x1004b49a8
mov rcx, qword [rax]
call sym.vim.exe_vim_free
mov rax, qword [0x100709b28]
mov rcx, qword [rax + rbx + 8]
call sym.vim.exe_vim_free
mov rax, qword [0x100709b28]
mov rcx, qword [rax + rbx + 0x10]
call sym.vim.exe_vim_free
mov rax, qword [0x100709b28]
add rax, rbx
jmp 0x1004b49e0
xor ecx, ecx
mov edi, 0x28
call sub.msys_2.0.dll_sleep
nop dword [rax]
mov rax, qword [0x100709b28]
xor edx, edx
mov ecx, dword [rax + rbx + 0x18]
call sub.msys_2.0.dll_kill
test eax, eax
jne 0x1004b4a62
xor edx, edx
mov ecx, 0x32
call sym.vim.exe_mch_delay
sub edi, 1
jne 0x1004b4ac8
mov rax, qword [0x100709b28]
mov ecx, dword [rax + rbx + 0x18]
jmp 0x1004b4a42
Function at 0x1004ccff0
Capabilities:
Get file attributes

Disassembly:
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x28
lea rbp, [rsp + 0x80]
mov rdx, qword [rcx + 0x18]
mov rbx, rcx
test rdx, rdx
je 0x1004cd070
mov rsi, qword [sym.vim.exe_NameBuff]
cmp byte [rdx], 0x7e
mov rcx, qword [rsi]
jne 0x1004cd021
cmp byte [rdx + 1], 0x2f
je 0x1004cd080
mov r8d, 0xfff
call sym.vim.exe_vim_strncpy
mov rbx, qword [sym.vim.exe_IObuff]
mov edx, 0x401
mov rcx, qword [rbx]
call sym.vim.exe_mch_dirname
mov rdx, qword [rbx]
mov rcx, qword [rsi]
call sym.vim.exe_shorten_fname
mov rcx, qword [rsi]
xor r9d, r9d
mov r8d, 1
mov rdx, rax
add rsp, 0x28
pop rbx
pop rsi
pop rdi
pop rbp
jmp sym.vim.exe_buflist_new
add rsp, 0x28
pop rbx
pop rsi
pop rdi
pop rbp
ret
mov rdx, rcx
mov r8d, 0x1000
lea rcx, [0x1006a94d0]
call sym.vim.exe_expand_env
mov rdi, qword [rsi]
mov rcx, rdi
call sub.msys_2.0.dll_strlen
mov rdx, qword [rbx + 0x18]
mov r8d, 0xfff
sub r8d, eax
cdqe
add rdx, 2
lea rcx, [rdi + rax]
movsxd r8, r8d
call sym.vim.exe_vim_strncpy
jmp 0x1004cd02c
Function at 0x1004d5f00
Capabilities:
Query environment variable

Disassembly:
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x68
lea rbp, [rsp + 0x80]
mov rsi, rcx
test rcx, rcx
je 0x1004d5f1d
cmp byte [rcx], 0
jne 0x1004d5f80
lea rcx, str.LC_ALL
call sub.msys_2.0.dll_getenv
mov rsi, rax
test rax, rax
je 0x1004d5f36
cmp byte [rax], 0
jne 0x1004d5f80
lea rcx, str.LC_CTYPE
call sub.msys_2.0.dll_getenv
mov rsi, rax
test rax, rax
je 0x1004d5f4f
cmp byte [rax], 0
jne 0x1004d5f80
lea rcx, str.LANG
call sub.msys_2.0.dll_getenv
test rax, rax
je 0x1004d603f
cmp byte [rax], 0
jne 0x1004d5f74
xor eax, eax
add rsp, 0x68
pop rbx
pop rsi
pop rdi
pop rbp
ret
mov rsi, rax
nop word [rax + rax]
mov edx, 0x2e
mov rcx, rsi
call sym.vim.exe_vim_strchr
mov rbx, rax
test rax, rax
je 0x1004d5fbf
lea rax, [rsi + 2]
lea rsi, [rbx + 1]
cmp rax, rbx
jae 0x1004d5fbf
mov r8d, 3
lea rdx, [0x1006a98bb]
mov rcx, rsi
call sub.msys_2.0.dll_strncasecmp
test eax, eax
je 0x1004d6074
xor ebx, ebx
jmp 0x1004d5ffe
cmp al, 0x2d
je 0x1004d600d
call sub.msys_2.0.dll___locale_ctype_ptr
movsx rdx, byte [rsi + rbx]
mov r8, rax
mov rax, rdx
test byte [rdx + r8 + 1], 7
je 0x1004d6021
lea ecx, [rdx - 0x41]
lea edx, [rdx + 0x20]
cmp cl, 0x1a
cmovb eax, edx
mov byte [rbp + rbx - 0x60], al
add rbx, 1
cmp rbx, 0x31
je 0x1004d601c
movzx eax, byte [rsi + rbx]
movsxd rdi, ebx
test al, al
je 0x1004d6021
cmp al, 0x5f
jne 0x1004d5fc8
mov byte [rbp + rbx - 0x60], 0x2d
add rbx, 1
cmp rbx, 0x31
jne 0x1004d5ffe
mov edi, 0x31
movabs rax, 0x746c7561666564
mov byte [rbp + rdi - 0x60], 0
cmp qword [rbp - 0x60], rax
je 0x1004d6050
lea rcx, [rbp - 0x60]
call fcn.1004d3550
add rsp, 0x68
pop rbx
pop rsi
pop rdi
pop rbp
ret
call sym.vim.exe_get_encoding_default
test rax, rax
mov rcx, rax
lea rax, [0x1006a980d]
cmove rcx, rax
call sym.vim.exe_vim_strsave
add rsp, 0x68
pop rbx
pop rsi
pop rdi
pop rbp
ret
call sub.msys_2.0.dll___locale_ctype_ptr
movsx rdx, byte [rbx + 4]
mov r8, rax
test byte [rdx + r8 + 1], 7
jne 0x1004d5fbf
cmp dl, 0x2d
je 0x1004d5fbf
cmp byte [rbx - 3], 0x5f
jne 0x1004d5fbf
mov byte [rbp - 0x52], 0
lea rsi, [rbp - 0x56]
mov dword [rbp - 0x56], 0x2d637565
movzx eax, byte [rbx - 2]
mov byte [rbp - 0x52], al
movzx eax, byte [rbx - 1]
mov byte [rbp - 0x50], 0
mov byte [rbp - 0x51], al
jmp 0x1004d5fbf

Function at 0x1004d60d0
Capabilities:
Query environment variable

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x20
xor ecx, ecx
call sub.msys_2.0.dll_nl_langinfo
mov rcx, rax
test rax, rax
je 0x1004d60ec
cmp byte [rax], 0
jne 0x1004d610c
mov ecx, 2
xor edx, edx
call sub.msys_intl_8.dll_libintl_setlocale
mov rcx, rax
test rax, rax
je 0x1004d610c
cmp byte [rax], 0
mov eax, 0
cmove rcx, rax
add rsp, 0x20
pop rbp
jmp sym.vim.exe_enc_locale_env
Function at 0x1004d89b0
Capabilities:
Get file attributes

Disassembly:
push rbp
mov eax, 0x20a8
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
call fcn.10065e270
sub rsp, rax
lea rbp, [rsp + 0x80]
lea r12, [rbp - 0x60]
mov r14, rdx
mov r13, rcx
mov rbx, r8
mov rdx, r12
call sub.msys_2.0.dll_stat
test eax, eax
jne 0x1004d8a30
mov rsi, qword [rbp - 0x58]
test rsi, rsi
setne dil
mov rdx, r12
mov rcx, r14
call sub.msys_2.0.dll_stat
test eax, eax
cmove rbx, qword [rbp - 0x58]
mov r12, rbx
test rbx, rbx
je 0x1004d8a40
test dil, dil
je 0x1004d8a40
xor eax, eax
cmp rsi, rbx
setne al
add rsp, 0x20a8
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
xor edi, edi
xor esi, esi
jmp 0x1004d89f5
lea r15, [rbp + 0x20]
mov r9d, 1
mov r8d, 0x1000
mov rcx, r13
mov rdx, r15
lea rdi, [rbp + 0x1020]
call sym.vim.exe_vim_FullName
mov rdx, rdi
mov r9d, 1
mov rcx, r14
mov r8d, 0x1000
mov ebx, eax
call sym.vim.exe_vim_FullName
mov edx, eax
cmp ebx, 1
jne 0x1004d8aa0
cmp eax, 1
jne 0x1004d8aa0
mov rdx, rdi
mov rcx, r15
call sub.msys_2.0.dll_strcmp
test eax, eax
setne al
movzx eax, al
jmp 0x1004d8a1c
or rsi, r12
mov eax, 1
jne 0x1004d8a1c
or ebx, edx
jne 0x1004d8a1c
mov rdx, r14
mov rcx, r13
call sub.msys_2.0.dll_strcmp
test eax, eax
setne al
movzx eax, al
jmp 0x1004d8a1c

Function at 0x1004d8ad0
Capabilities:
Get file attributes

Disassembly:
push rbp
push r12
push rsi
push rbx
sub rsp, 0x128
lea rbp, [rsp + 0x80]
mov rbx, rcx
mov rcx, rdx
lea rdx, [rbp + 0x20]
call sub.msys_2.0.dll_stat
cmp eax, 0xffffffff
je 0x1004d8b08
lea rcx, [rbp - 0x60]
call sub.msys_2.0.dll_sysinfo
mov r12d, eax
test eax, eax
je 0x1004d8b28
mov ecx, dword [rbx + 0x18]
call sym.vim.exe_mch_process_running
mov r12d, eax
mov eax, r12d
add rsp, 0x128
pop rbx
pop rsi
pop r12
pop rbp
ret
xor ecx, ecx
mov rsi, qword [rbp + 0x60]
call sub.msys_2.0.dll_time
mov rdx, rax
mov rax, qword [sym.vim.exe_override_sysinfo_uptime]
mov rax, qword [rax]
test rax, rax
cmovs rax, qword [rbp - 0x60]
sub rdx, rax
cmp rsi, rdx
jge 0x1004d8b08
jmp 0x1004d8b13
Function at 0x1004d9290
Capabilities:
Get file attributes

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0xe8
lea rbp, [rsp + 0x80]
mov rbx, rdx
mov rdx, qword [rdx + 0x88]
mov r12, rcx
test rdx, rdx
je 0x1004d93d0
mov dword [rsp + 0x20], 1
lea r13, [rcx + 0x6c]
mov r9d, 0x37a
xor ecx, ecx
mov r8, r13
call sym.vim.exe_home_replace
cmp byte [r12 + 0x6c], 0x7e
je 0x1004d93e0
lea r13, [rbp - 0x20]
mov rcx, qword [rbx + 0x88]
mov rdx, r13
call sub.msys_2.0.dll_stat
test eax, eax
jns 0x1004d9388
mov qword [r12 + 0x10], 0
mov qword [rbx + 0x130], 0
mov qword [rbx + 0x138], 0
mov qword [rbx + 0x140], 0
mov qword [rbx + 0x148], 0
mov qword [rbx + 0x150], 0
mov dword [rbx + 0x158], 0
mov rax, qword [sym.vim.exe_curbuf]
mov rcx, r12
mov rax, qword [rax]
mov rdx, qword [rax + 0x1b78]
mov r8, qword [rax + 0x1c00]
call fcn.1004d9200
nop
add rsp, 0xe8
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov eax, dword [rbp + 0x20]
mov rdx, r13
mov rcx, rbx
mov dword [r12 + 0x10], eax
mov eax, dword [rbp - 0x18]
mov dword [r12 + 0x14], eax
mov r8, qword [rbx + 0x88]
call sym.vim.exe_buf_store_time
mov rax, qword [rbx + 0x130]
mov qword [rbx + 0x140], rax
mov rax, qword [rbx + 0x138]
mov qword [rbx + 0x148], rax
jmp 0x1004d934e
mov byte [rcx + 0x6c], 0
jmp 0x1004d934e
mov rcx, r13
lea r14, [rbp - 0x50]
call sub.msys_2.0.dll_strlen
mov edx, 0x28
mov rcx, r14
mov rdi, rax
call sym.vim.exe_get_user_name
test eax, eax
je 0x1004d9470
mov rcx, r14
call sub.msys_2.0.dll_strlen
mov rsi, rax
add rax, rdi
cmp rax, 0x379
ja 0x1004d9470
lea r15, [r12 + 0x6d]
lea rcx, [r13 + rsi + 1]
mov r8, rdi
mov rdx, r15
call sub.msys_2.0.dll_memmove
cmp esi, 8
jae 0x1004d9490
test sil, 4
jne 0x1004d94dd
test esi, esi
je 0x1004d92e9
movzx eax, byte [r14]
mov byte [r12 + 0x6d], al
test sil, 2
je 0x1004d92e9
mov esi, esi
movzx eax, word [r14 + rsi - 2]
mov word [r15 + rsi - 2], ax
jmp 0x1004d92e9
mov rdx, qword [rbx + 0x88]
mov r8d, 0x379
mov rcx, r13
call sym.vim.exe_vim_strncpy
jmp 0x1004d92e9
mov rax, qword [r14]
lea rcx, [r12 + 0x75]
and rcx, 0xfffffffffffffff8
mov qword [r12 + 0x6d], rax
mov eax, esi
mov rdx, qword [r14 + rax - 8]
mov qword [r15 + rax - 8], rdx
sub r15, rcx
add esi, r15d
sub r14, r15
and esi, 0xfffffff8
cmp esi, 8
jb 0x1004d92e9
and esi, 0xfffffff8
xor eax, eax
mov edx, eax
add eax, 8
mov r8, qword [r14 + rdx]
mov qword [rcx + rdx], r8
cmp eax, esi
jb 0x1004d94c7
jmp 0x1004d92e9
mov eax, dword [r14]
mov esi, esi
mov dword [r12 + 0x6d], eax
mov eax, dword [r14 + rsi - 4]
mov dword [r15 + rsi - 4], eax
jmp 0x1004d92e9
Function at 0x1004e3020
Capabilities:
Read file on windows

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0x28
lea rbp, [rsp + 0x80]
mov r12, rcx
mov r15, rdx
mov ecx, 0x6f
xor edx, edx
mov r14d, r8d
mov rbx, r9
call sym.vim.exe_vim_tempname
mov r13, rax
test rax, rax
je 0x1004e3198
mov rcx, r12
mov r8, rax
mov rdx, r15
call sym.vim.exe_make_filter_cmd
mov r12, rax
test rax, rax
je 0x1004e3130
mov r15, qword [sym.vim.exe_no_check_timestamps]
mov edx, r14d
mov rcx, rax
or edx, 0xa
add dword [r15], 1
call sym.vim.exe_call_shell
mov rcx, r12
sub dword [r15], 1
call sym.vim.exe_vim_free
lea rdx, [0x1006ac158]
mov rcx, r13
call sub.msys_2.0.dll_fopen
mov r14, rax
test rax, rax
je 0x100663ce0
mov r8d, 2
xor edx, edx
mov rcx, rax
call sub.msys_2.0.dll_fseek
mov rcx, r14
call sub.msys_2.0.dll_ftell
xor r8d, r8d
xor edx, edx
mov rcx, r14
mov r15, rax
call sub.msys_2.0.dll_fseek
lea ecx, [r15 + 1]
movsxd rcx, ecx
call sym.vim.exe_alloc
mov r12, rax
test rax, rax
je 0x1004e3180
movsxd rdi, r15d
mov r9, r14
mov edx, 1
mov rcx, rax
mov r8, rdi
call sub.msys_2.0.dll_fread
mov rcx, r14
mov rsi, rax
call fcn.10065e4f0
mov rcx, r13
call sub.msys_2.0.dll_unlink
cmp r15d, esi
jne 0x100663d00
test rbx, rbx
je 0x1004e3150
mov dword [rbx], r15d
mov rcx, r13
call sym.vim.exe_vim_free
mov rax, r12
add rsp, 0x28
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
test r15d, r15d
jle 0x1004e3179
lea edx, [r15 - 1]
mov rax, r12
lea rdx, [r12 + rdx + 1]
nop dword [rax]
cmp byte [rax], 0
jne 0x1004e3170
mov byte [rax], 1
add rax, 1
cmp rdx, rax
jne 0x1004e3168
mov byte [r12 + rdi], 0
jmp 0x1004e3130
mov rcx, r14
call fcn.10065e4f0
mov rcx, r13
call sub.msys_2.0.dll_unlink
jmp 0x1004e3130
mov rcx, qword [sym.vim.exe_e_notmp]
xor r12d, r12d
call sub.msys_intl_8.dll_libintl_gettext
mov rcx, rax
call sym.vim.exe_emsg
jmp 0x1004e3138
mov rcx, qword [sym.vim.exe_e_notopen]
xor r12d, r12d
call sub.msys_intl_8.dll_libintl_gettext
mov rdx, r13
mov rcx, rax
call sym.vim.exe_semsg
nop
jmp 0x1004e3130
mov rcx, qword [sym.vim.exe_e_notread]
call sub.msys_intl_8.dll_libintl_gettext
mov rdx, r13
mov rcx, rax
call sym.vim.exe_semsg
mov rcx, r12
xor r12d, r12d
call sym.vim.exe_vim_free
nop
jmp 0x1004e3130
Function at 0x1004e3240
Capabilities:
Query environment variable

Disassembly:
push rbp
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0x28
lea rbp, [rsp + 0x80]
mov r8d, 0x14
mov edx, 8
lea rcx, [0x10070add0]
mov dword [0x10070ad20], 1
call sym.vim.exe_ga_init2
call sub.msys_2.0.dll_setpwent
jmp 0x1004e3288
mov rcx, qword [rax]
call fcn.1004e31c0
call sub.msys_2.0.dll_getpwent
test rax, rax
jne 0x1004e3280
call sub.msys_2.0.dll_endpwent
lea rcx, str.USER
call sub.msys_2.0.dll_getenv
mov r12, rax
test rax, rax
je 0x1004e32ec
cmp byte [rax], 0
je 0x1004e32ec
mov r13d, dword [0x10070add0]
test r13d, r13d
jle 0x1004e32f9
mov rsi, qword [0x10070ade0]
lea edi, [r13 + 1]
mov ebx, 1
jmp 0x1004e32db
mov eax, ebx
add rbx, 1
cmp rbx, rdi
je 0x1004e3300
mov rcx, qword [rsi + rbx*8 - 8]
mov rdx, r12
call sub.msys_2.0.dll_strcmp
test eax, eax
jne 0x1004e32d0
add rsp, 0x28
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop rbp
ret
xor eax, eax
nop dword [rax + rax]
cmp r13d, eax
jne 0x1004e32ec
mov rcx, r12
call sub.msys_2.0.dll_getpwnam
test rax, rax
je 0x1004e32ec
mov rcx, qword [rax]
add rsp, 0x28
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop rbp
jmp fcn.1004e31c0
Function at 0x1004e5570
Capabilities:
Query environment variable

Disassembly:
push rbp
push r12
push rdi
push rsi
push rbx
mov rbp, rsp
sub rsp, 0x20
mov rbx, qword [sym.vim.exe_homedir]
mov rcx, qword [rbx]
test rcx, rcx
je 0x1004e5598
call sym.vim.exe_vim_free
mov qword [rbx], 0
lea rcx, [0x1006ac251]
call sub.msys_2.0.dll_getenv
mov r12, rax
test rax, rax
je 0x1004e55d0
mov rsi, qword [sym.vim.exe_NameBuff]
mov edx, 0x1000
mov rcx, qword [rsi]
call sym.vim.exe_mch_dirname
cmp eax, 1
je 0x1004e55e0
mov rcx, r12
call sym.vim.exe_vim_strsave
mov qword [rbx], rax
add rsp, 0x20
pop rbx
pop rsi
pop rdi
pop r12
pop rbp
ret
mov rcx, qword [rsi]
call sym.vim.exe_mch_chdir
test eax, eax
jne 0x1004e55c5
mov rcx, r12
call sym.vim.exe_mch_chdir
test eax, eax
je 0x1004e5620
mov rcx, qword [rsi]
call sym.vim.exe_mch_chdir
test eax, eax
je 0x1004e55c5
mov rcx, qword [sym.vim.exe_e_prev_dir]
call sub.msys_intl_8.dll_libintl_gettext
mov rcx, rax
call sym.vim.exe_emsg
jmp 0x1004e55c5
mov rdi, qword [sym.vim.exe_IObuff]
mov edx, 0x401
mov rcx, qword [rdi]
call sym.vim.exe_mch_dirname
cmp eax, 1
jne 0x1004e55f8
mov r12, qword [rdi]
jmp 0x1004e55f8
Function at 0x1004e6090
Capabilities:
Query environment variable

Disassembly:
push rbp
push r12
push rbx
mov rbp, rsp
sub rsp, 0x20
mov r12, rcx
call sym.vim.exe_vim_setenv
lea rdx, [0x1006ac251]
mov rcx, r12
call sub.msys_2.0.dll_strcasecmp
test eax, eax
je 0x1004e6110
mov rbx, qword [sym.vim.exe_didset_vim]
mov edx, dword [rbx]
test edx, edx
je 0x1004e60e8
lea rdx, [0x1006ac26b]
mov rcx, r12
call sub.msys_2.0.dll_strcasecmp
test eax, eax
jne 0x1004e60e8
mov dword [rbx], 0
add rsp, 0x20
pop rbx
pop r12
pop rbp
ret
mov rbx, qword [sym.vim.exe_didset_vimruntime]
mov eax, dword [rbx]
test eax, eax
je 0x1004e60dc
lea rdx, [0x1006ac256]
mov rcx, r12
call sub.msys_2.0.dll_strcasecmp
test eax, eax
jne 0x1004e60dc
mov dword [rbx], 0
jmp 0x1004e60dc
add rsp, 0x20
pop rbx
pop r12
pop rbp
jmp sym.vim.exe_init_homedir

Function at 0x1004e6280
Capabilities:
Terminate process

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x20
mov edx, 1
mov ecx, 1
call sub.msys_2.0.dll_signal
mov rax, qword [sym.vim.exe_Rows]
xor edx, edx
mov rcx, qword [rax]
sub ecx, 1
call sym.vim.exe_windgoto
xor ecx, ecx
call sym.vim.exe_settmode
call sym.vim.exe_stoptermcap
call sym.vim.exe_out_flush
mov rax, qword [sym.vim.exe_really_exiting]
mov dword [rax], 1
mov rax, qword [sym.vim.exe_IObuff]
mov rcx, qword [rax]
call sym.vim.exe_out_str
call sym.vim.exe_screen_start
call sym.vim.exe_out_flush
call sym.vim.exe_ml_close_notmod
mov rax, qword [sym.vim.exe_firstbuf]
mov rax, qword [rax]
test rax, rax
je 0x1004e6318
nop word cs:[rax + rax]
mov rdx, qword [rax + 8]
test rdx, rdx
je 0x1004e630f
cmp qword [rdx], 0
jne 0x1004e6340
mov rax, qword [rax + 0x68]
test rax, rax
jne 0x1004e6300
xor ecx, ecx
call sym.vim.exe_ml_close_all
lea rcx, str.Vim:_Finished._r_n
call sym.vim.exe_out_str
mov ecx, 1
add rsp, 0x20
pop rbp
jmp sym.vim.exe_getout
lea rcx, str.Vim:_preserving_files..._r_n
call sym.vim.exe_out_str
call sym.vim.exe_screen_start
call sym.vim.exe_out_flush
xor edx, edx
xor ecx, ecx
call sym.vim.exe_ml_sync_all
jmp 0x1004e6318

Function at 0x1004e6400
Capabilities:
Read file on windows

Disassembly:
push rbp
push r13
push r12
push rsi
push rbx
mov rbp, rsp
sub rsp, 0x20
mov r12, rcx
mov r13, rdx
mov ebx, r8d
mov rsi, r9
call sym.vim.exe_check_restricted
test eax, eax
jne 0x1004e6450
call sym.vim.exe_check_secure
test eax, eax
jne 0x1004e6450
mov r9, rsi
mov r8d, ebx
mov rdx, r13
mov rcx, r12
add rsp, 0x20
pop rbx
pop rsi
pop r12
pop r13
pop rbp
jmp fcn.1004e3020
xor eax, eax
add rsp, 0x20
pop rbx
pop rsi
pop r12
pop r13
pop rbp
ret

Function at 0x1004e6470
Capabilities:
Write file on windows

Disassembly:
mov r8d, 1
jmp fcn.1004e3330