joyce8/EMBER2024-capa huggingface dataset:
Function at 0x10042a7d0
Capabilities:
Query environment variable

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0xd8
lea rbp, [rsp + 0x80]
mov rax, qword [sym.vim.exe_p_dex]
mov rax, qword [rax]
mov r15, qword [rcx]
mov r13, qword [rcx + 0x18]
mov rsi, qword [rcx + 0x30]
cmp byte [rax], 0
jne 0x10042aa68
mov r14d, dword [rcx + 0x50]
test r14d, r14d
jne 0x10042a988
mov rcx, r15
call sub.msys_2.0.dll_strlen
mov rcx, r13
mov rdi, rax
call sub.msys_2.0.dll_strlen
mov rcx, rsi
mov rbx, rax
call sub.msys_2.0.dll_strlen
lea rbx, [rdi + rbx + 0x1b]
mov r12, rax
mov rax, qword [sym.vim.exe_p_srr]
add rbx, r12
mov rcx, qword [rax]
call sub.msys_2.0.dll_strlen
add rbx, rax
mov rcx, rbx
call sym.vim.exe_alloc
mov r12, rax
test rax, rax
je 0x10042a96e
lea rcx, str.DIFF_OPTIONS
call sub.msys_2.0.dll_getenv
test rax, rax
je 0x10042a889
lea rdx, [0x100690eb4]
lea rcx, str.DIFF_OPTIONS
call sym.vim.exe_vim_setenv
mov edx, dword [0x10066d634]
lea r11, [0x100690eb0]
lea r10, [0x100690eb4]
test dl, 4
je 0x10042aa88
lea rax, [0x100690eb4]
test dl, 2
lea r9, [0x100690eb5]
mov edi, dword [0x10066d630]
cmove r9, rax
lea r8, [0x100690eb9]
test dl, 0x20
mov qword [rsp + 0x48], r11
cmove r8, rax
lea rcx, [0x100690ebd]
test dl, 0x10
mov qword [rsp + 0x20], r10
cmove rcx, rax
and edx, 8
mov qword [rsp + 0x40], r9
mov r14d, 1
lea rdx, [0x100690ec1]
mov qword [rsp + 0x38], r8
lea r9, [0x100690ec5]
cmove rdx, rax
mov qword [rsp + 0x30], rcx
test edi, edi
lea r8, str.diff__s_s_s_s_s_s_s_s__s
mov qword [rsp + 0x58], r13
cmove r9, rax
mov rcx, r12
mov qword [rsp + 0x28], rdx
mov rdx, rbx
mov qword [rsp + 0x50], r15
call sym.vim.exe_vim_snprintf
mov r9, rsi
mov edx, ebx
mov rcx, r12
mov rax, qword [sym.vim.exe_p_srr]
mov r8, qword [rax]
call sym.vim.exe_append_redir
call sym.vim.exe_block_autocmds
mov edx, 0x19
mov rcx, r12
call sym.vim.exe_call_shell
call sym.vim.exe_unblock_autocmds
mov rcx, r12
call sym.vim.exe_vim_free
mov eax, r14d
add rsp, 0xd8
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov r8, qword [0x100707e80]
mov eax, dword [0x10066d634]
mov qword [rbp - 0x18], 0
mov qword [rbp - 0x10], 0
mov rdx, r8
mov qword [rbp + 0x20], 0
or rdx, 4
test al, 8
mov qword [rbp + 0x28], 0
cmove rdx, r8
mov qword [rbp + 0x30], 0
mov qword [rbp + 0x38], 0
mov qword [rbp + 0x40], 0
mov qword [rbp + 0x48], 0
mov qword [rbp + 8], 0
mov qword [rbp - 0x20], rdx
test al, 0x10
je 0x10042a9f7
or qword [rbp - 0x20], 2
test al, 0x20
je 0x10042aa00
or qword [rbp - 0x20], 8
test al, 2
je 0x10042aa0c
or qword [rbp - 0x20], 0x80
mov qword [rsp + 0x20], rbp
lea rax, [rcx + 0x30]
lea rdx, [rcx + 0x20]
add rcx, 8
mov qword [rbp], rax
lea r9, [rbp + 0x20]
lea r8, [rbp - 0x20]
mov r14d, 1
lea rax, [0x10042adc0]
mov qword [rbp + 0x10], rax
call sym.vim.exe_xdl_diff
test eax, eax
jns 0x10042a96e
lea rcx, str.E960:_Problem_creating_the_internal_diff
xor r14d, r14d
call sub.msys_intl_8.dll_libintl_gettext
mov rcx, rax
call sym.vim.exe_emsg
jmp 0x10042a96e
mov r8, rsi
mov rdx, r13
mov rcx, r15
mov r14d, 1
call sym.vim.exe_eval_diff
jmp 0x10042a96e
mov r11, r10
jmp 0x10042a8a6
Function at 0x100445520
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0x58
lea rbp, [rsp + 0x80]
movaps xmmword [rbp - 0x50], xmm6
movaps xmmword [rbp - 0x40], xmm7
mov r15d, dword [rcx]
mov rbx, qword [r9]
mov dword [rbp - 0x54], 0
mov r13, rcx
mov r14d, edx
mov rsi, r8
mov r12, r9
cmp r15d, 6
je 0x1004456e0
movzx eax, byte [rbx - 1]
cmp al, 9
je 0x100445570
cmp al, 0x20
jne 0x100445580
nop
movzx eax, byte [rbx - 2]
sub rbx, 1
cmp al, 0x20
je 0x100445570
cmp al, 9
je 0x100445570
call sym.vim.exe_in_vim9script
test eax, eax
je 0x100445593
cmp byte [rbx - 1], 0x21
je 0x100445739
lea rdx, [rbp - 0x54]
mov rcx, r13
call sym.vim.exe_tv_get_number_chk
mov rdi, rax
mov eax, dword [rbp - 0x54]
test eax, eax
jne 0x100445650
mov ecx, dword [r13]
pxor xmm6, xmm6
cmp rbx, rsi
jbe 0x100445758
movq xmm7, qword [0x100691ee0]
jmp 0x1004455dd
cmp al, 0x2d
je 0x100445680
cmp rsi, rbx
je 0x100445618
mov rdx, rbx
movzx eax, byte [rbx - 1]
sub rbx, 1
cmp al, 0x21
jne 0x1004455d0
test r14d, r14d
jne 0x100445750
cmp ecx, 6
je 0x1004456a8
test rdi, rdi
mov r15d, 3
sete dil
movzx edi, dil
cmp rsi, rbx
jne 0x1004455dd
nop dword [rax]
cmp ecx, 6
mov rcx, r13
je 0x100445718
call sym.vim.exe_clear_tv
call sym.vim.exe_in_vim9script
mov qword [r13 + 8], rdi
test eax, eax
mov eax, 5
cmove r15d, eax
mov eax, 1
mov dword [r13], r15d
jmp 0x10044565d
mov rcx, r13
mov rsi, rbx
call sym.vim.exe_clear_tv
xor eax, eax
movaps xmm6, xmmword [rbp - 0x50]
movaps xmm7, xmmword [rbp - 0x40]
mov qword [r12], rsi
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
cmp ecx, 6
je 0x100445698
neg rdi
mov r15d, 5
jmp 0x1004455d8
xorpd xmm6, xmm7
jmp 0x1004455d8
call sym.vim.exe_in_vim9script
test eax, eax
je 0x1004456f8
xor edi, edi
mov eax, 0
mov ecx, 3
mov dword [r13], 3
ucomisd xmm6, qword [0x100691ed0]
setnp dil
cmovne rdi, rax
jmp 0x1004455d8
movsd xmm6, qword [rcx + 8]
xor edi, edi
mov ecx, 6
jmp 0x1004455b5
pxor xmm0, xmm0
mov ecx, dword [r13]
ucomisd xmm6, xmm0
jp 0x100445730
jne 0x100445730
movsd xmm6, qword [0x100691ed8]
jmp 0x1004455d8
call sym.vim.exe_clear_tv
movsd qword [r13 + 8], xmm6
mov eax, 1
jmp 0x10044565d
pxor xmm6, xmm6
jmp 0x1004455d8
mov rcx, r13
call sym.vim.exe_tv2bool
movsxd rdi, eax
jmp 0x1004455a2
mov rsi, rdx
jmp 0x100445618
mov rsi, rbx
jmp 0x100445618
Function at 0x1004597b0
Capabilities:
Query environment variable

Disassembly:
push rbp
push r14
push r13
push r12
push rdi
push rsi
push rbx
mov rbp, rsp
sub rsp, 0x30
mov r12, rcx
mov rbx, rdx
call sym.vim.exe_in_vim9script
test eax, eax
je 0x1004597de
xor edx, edx
mov rcx, r12
call sym.vim.exe_check_for_nonempty_string_arg
test eax, eax
je 0x100459844
mov rcx, r12
call sym.vim.exe_tv_get_string
mov qword [rbp - 8], rax
mov rcx, rax
movzx eax, byte [rax]
cmp al, 0x24
je 0x100459890
cmp al, 0x26
je 0x100459858
cmp al, 0x2b
je 0x100459858
cmp al, 0x2a
je 0x1004598d0
cmp al, 0x3f
je 0x100459918
cmp al, 0x3a
je 0x100459978
cmp al, 0x23
jne 0x100459908
cmp byte [rcx + 1], 0x23
je 0x1004599a0
add rcx, 1
call sym.vim.exe_au_exists
movsxd r12, eax
nop word cs:[rax + rax]
mov qword [rbx + 8], r12
add rsp, 0x30
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop rbp
ret
xor edx, edx
lea rcx, [rbp - 8]
mov r8d, 1
xor r12d, r12d
call sym.vim.exe_eval_option
mov rcx, qword [rbp - 8]
mov esi, eax
call sym.vim.exe_skipwhite
cmp byte [rax], 0
jne 0x100459840
xor r12d, r12d
cmp esi, 1
sete r12b
mov qword [rbx + 8], r12
jmp 0x100459844
add rcx, 1
mov r12d, 1
call sub.msys_2.0.dll_getenv
test rax, rax
jne 0x100459840
mov rcx, qword [rbp - 8]
xor r12d, r12d
call sym.vim.exe_expand_env_save
mov qword [rbp - 8], rax
mov rcx, rax
test rax, rax
je 0x1004598c6
xor r12d, r12d
cmp byte [rax], 0x24
setne r12b
call sym.vim.exe_vim_free
jmp 0x100459840
mov rsi, qword [sym.vim.exe_current_sctx]
mov edi, dword [rsi + 0x10]
cmp edi, 0xf423f
jne 0x1004598e9
mov dword [rsi + 0x10], 4
add rcx, 1
xor edx, edx
call sym.vim.exe_function_exists
mov dword [rsi + 0x10], edi
movsxd r12, eax
mov qword [rbx + 8], r12
jmp 0x100459844
call sym.vim.exe_var_exists
movsxd r12, eax
jmp 0x100459840
lea r12, [rcx + 1]
lea rdx, str.mkdir
xor r13d, r13d
mov r14d, 0x216
lea rsi, [0x100694e00]
jmp 0x100459958
je 0x1004599b8
lea r13d, [rdi + 1]
cmp r14d, r13d
jl 0x100459990
mov eax, r14d
sub eax, r13d
shr eax, 1
add eax, r13d
cdqe
lea rax, [rax + rax*4]
mov rdx, qword [rsi + rax*8]
mov edi, r14d
mov rcx, r12
sub edi, r13d
shr edi, 1
add edi, r13d
call sub.msys_2.0.dll_strcmp
test eax, eax
jns 0x100459938
lea r14d, [rdi - 1]
jmp 0x10045993e
add rcx, 1
call sym.vim.exe_cmd_exists
movsxd r12, eax
jmp 0x100459840
xor r12d, r12d
jmp 0x100459840
add rcx, 2
call sym.vim.exe_autocmd_supported
movsxd r12, eax
jmp 0x100459840
movsxd rax, edi
not rax
shr rax, 0x3f
mov r12, rax
jmp 0x100459840
Function at 0x100465ac0
Capabilities:
Get file attributes

Disassembly:
push rbp
push r12
push rdi
push rsi
push rbx
sub rsp, 0x490
lea rbp, [rsp + 0x80]
mov r12d, dword [rdx + 0x1c50]
mov rsi, rcx
mov rbx, rdx
test r12d, r12d
je 0x100465b68
mov rax, qword [sym.vim.exe_cmdmod]
mov rdx, qword [sym.vim.exe_p_confirm]
mov eax, dword [rax]
and eax, 0x80
or eax, dword [rdx]
je 0x100465bc8
mov rdi, qword [rbx + 0x98]
test rdi, rdi
je 0x100465bb8
lea rcx, str.readonly_option_is_set_for___s_._nDo_you_wish_to_write_anyway_
call sub.msys_intl_8.dll_libintl_gettext
lea rbx, [rbp + 0x20]
mov r8, rdi
mov r12d, 1
mov rdx, rax
mov rcx, rbx
call sym.vim.exe_dialog_msg
mov r9d, 2
mov r8, rbx
xor edx, edx
mov ecx, 4
call sym.vim.exe_vim_dialog_yesno
cmp eax, 2
jne 0x100465be2
mov dword [rsi], 1
xor r12d, r12d
jmp 0x100465be2
mov rcx, qword [rbx + 0x88]
lea rdx, [rbp - 0x60]
call sub.msys_2.0.dll_stat
test eax, eax
js 0x100465be2
mov rcx, qword [rbx + 0x88]
mov edx, 0x1ff
call sym.vim.exe_check_file_readonly
test eax, eax
je 0x100465be2
mov rax, qword [sym.vim.exe_cmdmod]
mov rdx, qword [sym.vim.exe_p_confirm]
mov r12d, dword [rbx + 0x1c50]
mov eax, dword [rax]
and eax, 0x80
or eax, dword [rdx]
jne 0x100465bf8
nop dword [rax]
test r12d, r12d
je 0x1006612bb
nop dword [rax]
mov rcx, qword [sym.vim.exe_e_readonly_option_is_set_add_bang_to_override]
mov r12d, 1
call sub.msys_intl_8.dll_libintl_gettext
mov rcx, rax
call sym.vim.exe_emsg
mov eax, r12d
add rsp, 0x490
pop rbx
pop rsi
pop rdi
pop r12
pop rbp
ret
mov rdi, qword [rbx + 0x98]
test rdi, rdi
je 0x100465bb8
test r12d, r12d
jne 0x100465b18
lea rcx, str.File_permissions_of___s__are_read_only._nIt_may_still_be_possible_to_write_it._nDo_you_wish_to_try_
jmp 0x100465b1f
mov r12, qword [rbx + 0x98]
lea rcx, str.E505:___s__is_read_only__add___to_override_
call sub.msys_intl_8.dll_libintl_gettext
mov rcx, rax
mov rdx, r12
mov r12d, 1
call sym.vim.exe_semsg
nop
jmp 0x100465be2

Function at 0x1004778e0
Capabilities:
Create directory

Disassembly:
push rbp
push r12
sub rsp, 0x28
lea rbp, [rsp + 0x80]
mov r12, rcx
call sub.msys_2.0.dll_mkdir
test eax, eax
jne 0x100661742
mov eax, 1
add rsp, 0x28
pop r12
pop rbp
ret
lea rcx, str.E739:_Cannot_create_directory:__s
call sub.msys_intl_8.dll_libintl_gettext
mov rdx, r12
mov rcx, rax
call sym.vim.exe_semsg
xor eax, eax
jmp 0x100477904
Function at 0x100488590
Capabilities:
Encode data using base64

Disassembly:
mov r9d, 1
jmp fcn.100484df0

Function at 0x1004885a0
Capabilities:
Encode data using base64

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x30
mov rax, qword [sym.vim.exe_exec_from_reg]
mov eax, dword [rax]
test eax, eax
jne 0x1004885d0
mov r9d, 1
mov edx, 1
add rsp, 0x30
pop rbp
jmp fcn.100484df0
mov dword [rbp - 8], r8d
mov dword [rbp - 4], ecx
call sym.vim.exe_vpeekc
mov ecx, dword [rbp - 4]
mov r8d, dword [rbp - 8]
cmp eax, 0x3a
jne 0x1004885b5
call sym.vim.exe_vgetc
mov r8d, dword [rbp - 8]
mov ecx, dword [rbp - 4]
jmp 0x1004885b5
Function at 0x10048aa10
Capabilities:
Delete directory

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0x58
lea rbp, [rsp + 0x80]
call sym.vim.exe_vim_strsave
mov r12, rax
test rax, rax
je 0x10048ab13
lea r15, [rbp - 0x50]
xor r9d, r9d
xor r8d, r8d
mov rdx, rax
mov dword [rsp + 0x28], 0
mov rcx, r15
mov r14d, 0xffffffff
mov qword [rsp + 0x20], 0
call sym.vim.exe_readdir_core
cmp eax, 1
je 0x10048aa90
mov rcx, r12
call sub.msys_2.0.dll_rmdir
mov rcx, r12
call sym.vim.exe_vim_free
mov eax, r14d
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov eax, dword [rbp - 0x50]
xor r14d, r14d
test eax, eax
jle 0x10048aaf4
mov rsi, qword [sym.vim.exe_NameBuff]
xor ebx, ebx
lea rdi, [0x1006a3565]
mov rax, qword [rbp - 0x40]
mov r9, r12
mov r8, rdi
mov edx, 0x1000
mov rax, qword [rax + rbx*8]
mov qword [rsp + 0x20], rax
mov rcx, qword [rsi]
call sym.vim.exe_vim_snprintf
mov r13, qword [rsi]
mov rcx, r13
call sym.vim.exe_mch_isrealdir
mov rcx, r13
test eax, eax
je 0x10048ab08
call fcn.10048aa10
test eax, eax
je 0x10048aaeb
mov r14d, 0xffffffff
add rbx, 1
cmp dword [rbp - 0x50], ebx
jg 0x10048aaaa
mov rcx, r15
call sym.vim.exe_ga_clear_strings
jmp 0x10048aa6a
call sub.msys_2.0.dll_unlink
test eax, eax
je 0x10048aaeb
jmp 0x10048aae5
mov r14d, 0xffffffff
jmp 0x10048aa7a

Function at 0x10048ab20
Capabilities:
Delete directory

Disassembly:
push rbp
push r12
sub rsp, 0x28
lea rbp, [rsp + 0x80]
mov r12, rcx
call sym.vim.exe_mch_isrealdir
mov rcx, r12
test eax, eax
je 0x10048ab50
add rsp, 0x28
pop r12
pop rbp
jmp fcn.10048aa10
call sub.msys_2.0.dll_unlink
test eax, eax
setne al
movzx eax, al
neg eax
add rsp, 0x28
pop r12
pop rbp
ret
Function at 0x100491580
Capabilities:
Delete directory

Disassembly:
push rbp
push r13
push r12
push rsi
push rbx
mov rbp, rsp
sub rsp, 0x70
mov qword [rdx + 8], 0xffffffffffffffff
mov rsi, rcx
mov rbx, rdx
call sym.vim.exe_check_restricted
test eax, eax
je 0x1004915b8
add rsp, 0x70
pop rbx
pop rsi
pop r12
pop r13
pop rbp
ret
call sym.vim.exe_check_secure
test eax, eax
jne 0x1004915a5
call sym.vim.exe_in_vim9script
test eax, eax
jne 0x100491600
mov rcx, rsi
call sym.vim.exe_tv_get_string
mov r12, rax
test rax, rax
je 0x100491628
cmp byte [rax], 0
je 0x100491628
mov eax, dword [rsi + 0x10]
test eax, eax
jne 0x100491650
mov rcx, r12
call sub.msys_2.0.dll_unlink
test eax, eax
setne al
movzx eax, al
neg rax
mov qword [rbx + 8], rax
jmp 0x1004915a5
xor edx, edx
mov rcx, rsi
call sym.vim.exe_check_for_string_arg
test eax, eax
je 0x1004915a5
mov edx, 1
mov rcx, rsi
call sym.vim.exe_check_for_opt_string_arg
test eax, eax
jne 0x1004915ca
jmp 0x1004915a5
mov rcx, qword [sym.vim.exe_e_invarg]
call sub.msys_intl_8.dll_libintl_gettext
mov rcx, rax
add rsp, 0x70
pop rbx
pop rsi
pop r12
pop r13
pop rbp
jmp sym.vim.exe_emsg
lea rdx, [rbp - 0x50]
lea rcx, [rsi + 0x10]
call sym.vim.exe_tv_get_string_buf
cmp byte [rax], 0
mov r13, rax
je 0x1004915e6
cmp byte [rax], 0x64
je 0x1004916a0
cmp byte [r13], 0x72
jne 0x100661e3d
cmp byte [r13 + 1], 0x66
jne 0x100661e3d
cmp byte [r13 + 2], 0
jne 0x100661e3d
mov rcx, r12
call sym.vim.exe_delete_recursive
cdqe
mov qword [rbx + 8], rax
jmp 0x1004915a5
cmp byte [rax + 1], 0
jne 0x10049166a
mov rcx, r12
call sub.msys_2.0.dll_rmdir
test eax, eax
setne al
movzx eax, al
neg rax
mov qword [rbx + 8], rax
jmp 0x1004915a5
mov rcx, qword [sym.vim.exe_e_invalid_expression_str]
call sub.msys_intl_8.dll_libintl_gettext
mov rdx, r13
mov rcx, rax
call sym.vim.exe_semsg
nop
jmp 0x1004915a5

Function at 0x100491a60
Capabilities:
Get file attributes

Disassembly:
push rbp
push r12
push rsi
push rbx
sub rsp, 0xb8
lea rbp, [rsp + 0x80]
movabs rax, 0x2d2d2d2d2d2d2d2d
mov qword [rbp - 0x5a], rax
mov eax, 0x2d
mov r12, rcx
mov rbx, rdx
mov word [rbp - 0x52], ax
call sym.vim.exe_in_vim9script
test eax, eax
je 0x100491aa8
xor edx, edx
mov rcx, r12
call sym.vim.exe_check_for_string_arg
test eax, eax
je 0x100491ad0
mov rcx, r12
call sym.vim.exe_tv_get_string
mov dword [rbx], 7
lea rdx, [rbp - 0x50]
mov rcx, rax
call sub.msys_2.0.dll_stat
mov r8d, eax
xor eax, eax
test r8d, r8d
jns 0x100491ae0
mov qword [rbx + 8], rax
add rsp, 0xb8
pop rbx
pop rsi
pop r12
pop rbp
ret
lea r12, [rbp - 0x5a]
mov r11d, dword [rbp - 0x40]
mov dword [rbp - 0x5e], 0x787772
mov r10d, 8
mov r8, r12
mov r9d, 1
mov esi, 0xaaaaaaab
jmp 0x100491b31
mov edx, eax
add r8, 1
imul rdx, rsi
shr rdx, 0x21
lea ecx, [rdx + rdx*2]
mov edx, eax
add eax, 1
sub edx, ecx
movsxd rdx, edx
movzx edx, byte [rbp + rdx - 0x5e]
mov byte [r8 - 1], dl
cmp eax, 9
je 0x100491b50
mov ecx, r10d
mov edx, r9d
sub ecx, eax
shl edx, cl
test edx, r11d
jne 0x100491b08
add eax, 1
mov byte [r8], 0x2d
add r8, 1
cmp eax, 9
jne 0x100491b31
mov rcx, r12
call sym.vim.exe_vim_strsave
jmp 0x100491acc
Function at 0x100491b60
Capabilities:
Get file attributes

Disassembly:
push rbp
push r12
push rbx
mov rbp, rsp
sub rsp, 0xa0
mov r12, rcx
mov rbx, rdx
call sym.vim.exe_in_vim9script
test eax, eax
je 0x100491b8b
xor edx, edx
mov rcx, r12
call sym.vim.exe_check_for_string_arg
test eax, eax
je 0x100491bae
mov rcx, r12
call sym.vim.exe_tv_get_string
lea rdx, [rbp - 0x80]
mov rcx, rax
mov r12, rax
call sub.msys_2.0.dll_stat
test eax, eax
jns 0x100491bc0
mov qword [rbx + 8], 0xffffffffffffffff
add rsp, 0xa0
pop rbx
pop r12
pop rbp
ret
mov rcx, r12
call sym.vim.exe_mch_isdir
test eax, eax
je 0x100491be0
mov qword [rbx + 8], 0
add rsp, 0xa0
pop rbx
pop r12
pop rbp
ret
mov rax, qword [rbp - 0x58]
mov qword [rbx + 8], rax
add rsp, 0xa0
pop rbx
pop r12
pop rbp
ret

Function at 0x100491c00
Capabilities:
Get file attributes

Disassembly:
push rbp
push r12
push rbx
mov rbp, rsp
sub rsp, 0xa0
mov r12, rcx
mov rbx, rdx
call sym.vim.exe_in_vim9script
test eax, eax
je 0x100491c2b
xor edx, edx
mov rcx, r12
call sym.vim.exe_check_for_string_arg
test eax, eax
je 0x100491c51
mov rcx, r12
call sym.vim.exe_tv_get_string
lea rdx, [rbp - 0x80]
mov rcx, rax
call sub.msys_2.0.dll_stat
test eax, eax
mov rax, 0xffffffffffffffff
cmovns rax, qword [rbp - 0x40]
mov qword [rbx + 8], rax
add rsp, 0xa0
pop rbx
pop r12
pop rbp
ret

Function at 0x100491ce0
Capabilities:
Get file attributes

Disassembly:
push rbp
push r12
push rbx
mov rbp, rsp
sub rsp, 0xa0
mov r12, rcx
mov rbx, rdx
call sym.vim.exe_in_vim9script
test eax, eax
je 0x100491d0b
xor edx, edx
mov rcx, r12
call sym.vim.exe_check_for_string_arg
test eax, eax
je 0x100491d33
mov rcx, r12
call sym.vim.exe_tv_get_string
mov dword [rbx], 7
lea rdx, [rbp - 0x80]
mov rcx, rax
call sub.msys_2.0.dll_lstat
mov r8d, eax
xor eax, eax
test r8d, r8d
jns 0x100491d40
mov qword [rbx + 8], rax
add rsp, 0xa0
pop rbx
pop r12
pop rbp
ret
mov eax, dword [rbp - 0x70]
lea rcx, [0x1006a3b17]
and eax, 0xf000
cmp eax, 0x8000
je 0x100491db8
lea rcx, [0x1006a3b1c]
cmp eax, 0x4000
je 0x100491db8
lea rcx, [0x1006a3b20]
cmp eax, 0xa000
je 0x100491db8
lea rcx, str.bdev
cmp eax, 0x6000
je 0x100491db8
lea rcx, str.cdev
cmp eax, 0x2000
je 0x100491db8
lea rcx, str.fifo
cmp eax, 0x1000
je 0x100491db8
cmp eax, 0xc000
lea rcx, [0x1006a3b10]
lea rax, [0x1006a3b2f]
cmovne rcx, rax
nop dword [rax + rax]
call sym.vim.exe_vim_strsave
jmp 0x100491d2f

Function at 0x1004926a0
Capabilities:
Read file on windows

Disassembly:
push rbp
push r13
push r12
mov rbp, rsp
sub rsp, 0x20
mov r12, rcx
mov r13, rdx
call sym.vim.exe_in_vim9script
test eax, eax
je 0x1004926c9
xor edx, edx
mov rcx, r12
call sym.vim.exe_check_for_string_arg
test eax, eax
je 0x1004926e8
mov r8d, 1
mov rdx, r13
mov rcx, r12
add rsp, 0x20
pop r12
pop r13
pop rbp
jmp fcn.100490ce0
add rsp, 0x20
pop r12
pop r13
pop rbp
ret
Function at 0x100492700
Capabilities:
Read file on windows

Disassembly:
push rbp
push r13
push r12
mov rbp, rsp
sub rsp, 0x20
mov r12, rcx
mov r13, rdx
call sym.vim.exe_in_vim9script
test eax, eax
je 0x100492763
xor edx, edx
mov rcx, r12
call sym.vim.exe_check_for_nonempty_string_arg
test eax, eax
jne 0x100492738
add rsp, 0x20
pop r12
pop r13
pop rbp
ret
mov edx, 1
mov rcx, r12
call sym.vim.exe_check_for_opt_string_arg
test eax, eax
je 0x100492729
mov eax, dword [r12 + 0x10]
test eax, eax
je 0x100492763
mov edx, 2
mov rcx, r12
call sym.vim.exe_check_for_opt_number_arg
test eax, eax
je 0x100492729
xor r8d, r8d
mov rdx, r13
mov rcx, r12
add rsp, 0x20
pop r12
pop r13
pop rbp
jmp fcn.100490ce0

Function at 0x100492ae0
Capabilities:
Get file attributes

Disassembly:
push rbp
mov eax, 0x3120
push r14
push r13
push r12
push rdi
push rsi
push rbx
call fcn.10065e270
sub rsp, rax
lea rbp, [rsp + 0x80]
mov r12, rdx
mov esi, r8d
lea r13, [rbp + 0xa0]
test r9d, r9d
je 0x100492c68
mov r8d, 0x1000
mov rdx, r13
call sym.vim.exe_expand_env
lea rdx, [rbp - 0x60]
mov rcx, r13
call sub.msys_2.0.dll_stat
lea rdx, [rbp + 0x20]
mov rcx, r12
mov ebx, eax
call sub.msys_2.0.dll_stat
test ebx, ebx
setne cl
test eax, eax
setne dl
mov edi, ecx
and dil, dl
je 0x100492c38
test esi, esi
je 0x100492c18
mov rbx, qword [sym.vim.exe_p_fic]
cmp qword [rbx], 0
jne 0x100492cd0
mov rdx, r12
mov rcx, r13
call sub.msys_2.0.dll_strcmp
test eax, eax
je 0x100492c09
mov rcx, r13
mov byte [rbp + 0x10a0], 0
mov esi, 1
lea r14, [rbp + 0x10a0]
call sym.vim.exe_path_with_url
test eax, eax
je 0x100492c80
mov r8d, 0xfff
mov rdx, r13
mov rcx, r14
call sym.vim.exe_vim_strncpy
mov byte [rbp + 0x20a0], 0
test r12, r12
je 0x100492c18
mov rcx, r12
lea r13, [rbp + 0x20a0]
call sym.vim.exe_path_with_url
test eax, eax
je 0x100492ca8
mov r8d, 0xfff
mov rdx, r12
mov rcx, r13
call sym.vim.exe_vim_strncpy
cmp esi, 1
jne 0x100492c18
test dil, dil
je 0x100492c18
cmp qword [rbx], 0
jne 0x100492cf0
mov rdx, r13
mov rcx, r14
call sub.msys_2.0.dll_strcmp
test eax, eax
jne 0x100492c18
mov r8d, 7
jmp 0x100492c1e
mov r8d, 4
mov eax, r8d
add rsp, 0x3120
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop rbp
ret
or ebx, eax
mov r8d, 6
jne 0x100492c1e
mov eax, dword [rbp + 0x20]
mov r8d, 2
cmp dword [rbp - 0x60], eax
jne 0x100492c1e
xor r8d, r8d
mov rax, qword [rbp + 0x28]
cmp qword [rbp - 0x58], rax
setne r8b
add r8d, 1
jmp 0x100492c1e
mov rdx, rcx
mov r8d, 0xfff
mov rcx, r13
call sym.vim.exe_vim_strncpy
jmp 0x100492b23
xor r9d, r9d
mov r8d, 0x1000
mov rdx, r14
mov rcx, r13
call sym.vim.exe_mch_FullName
mov esi, eax
test eax, eax
jne 0x100492bb2
jmp 0x100492ba1
xor r9d, r9d
mov r8d, 0x1000
mov rdx, r13
mov rcx, r12
call sym.vim.exe_mch_FullName
test eax, eax
je 0x100492d06
cmp eax, 1
sete dil
jmp 0x100492be6
mov r8d, 0x7fffffff
mov rdx, r12
mov rcx, r13
call sym.vim.exe_mb_strnicmp
jmp 0x100492b76
mov r8d, 0x7fffffff
mov rdx, r13
mov rcx, r14
call sym.vim.exe_mb_strnicmp
jmp 0x100492c05
xor edi, edi
jmp 0x100492bd5
Function at 0x1004948e0
Capabilities:
Get file attributes

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0xa0
lea rdx, [rbp - 0x80]
call sub.msys_2.0.dll_stat
test eax, eax
sete al
movzx eax, al
add rsp, 0xa0
pop rbp
ret

Function at 0x100494a60
Capabilities:
Get file attributes

Disassembly:
push rbp
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0xa8
lea rbp, [rsp + 0x80]
mov rdi, rcx
mov r12, rdx
mov ebx, r8d
test r8b, 4
jne 0x100494a9f
test bh, 0x10
je 0x100494b40
lea rdx, [rbp - 0x60]
mov rcx, r12
call sub.msys_2.0.dll_lstat
test eax, eax
js 0x100494b04
mov rcx, r12
call sym.vim.exe_mch_isdir
mov esi, eax
test eax, eax
je 0x100494b18
test bl, 1
je 0x100494b04
mov edx, 1
mov rcx, rdi
call sym.vim.exe_ga_grow
test eax, eax
je 0x100494b04
mov rcx, r12
call sub.msys_2.0.dll_strlen
movsxd rdx, esi
lea rcx, [rdx + rax + 1]
call sym.vim.exe_alloc
mov r13, rax
test rax, rax
je 0x100494b04
mov rdx, r12
mov rcx, rax
call sub.msys_2.0.dll_strcpy
test esi, esi
je 0x100494af4
and ebx, 8
jne 0x100494b68
movsxd rax, dword [rdi]
mov rdx, qword [rdi + 0x10]
lea ecx, [rax + 1]
mov dword [rdi], ecx
mov qword [rdx + rax*8], r13
add rsp, 0xa8
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop rbp
ret
test bl, 2
je 0x100494b04
test bl, 0x40
je 0x100494ab2
xor r8d, r8d
test bh, 0x20
mov rcx, r12
sete r8b
xor edx, edx
call sym.vim.exe_mch_can_exe
test eax, eax
jne 0x100494ab2
jmp 0x100494b04
mov rcx, rdx
call sym.vim.exe_mch_getperm
test rax, rax
js 0x100494b04
mov rcx, r12
call sym.vim.exe_mch_isdir
mov esi, eax
test eax, eax
jne 0x100494aad
jmp 0x100494b18
mov rcx, r13
call sym.vim.exe_add_pathsep
jmp 0x100494af4
Function at 0x1004958a0
Capabilities:
Read file on windows

Disassembly:
push rbp
mov rbp, rsp
mov r10d, dword [0x1007088a0]
mov eax, dword [rbp + 0x30]
test r10d, r10d
jne 0x1004958c0
mov dword [rbp + 0x30], eax
pop rbp
jmp fcn.1004952c0
pop rbp
jmp sym.vim.exe_mch_expand_wildcards