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

Disassembly:
push r12
push rsi
push rbx
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 0x1004ace4f
xorps xmm0, xmmword [0x1006c1990]
movss xmm1, dword [0x1006c19a0]
mulss xmm0, xmm1
mulss xmm0, xmm1
cmp esi, 3
jne 0x1004ace68
mulss xmm0, xmm1
cvtss2sd xmm0, xmm0
addsd xmm0, qword [0x1006c19a8]
mov dword [rsp + 0x20], eax
xor edx, edx
lea r12, [0x100722920]
lea r9, [0x1006c0f03]
mov r8d, 0x101
mov rcx, r12
cvttsd2si ebx, xmm0
call sub.msys_2.0.dll___sprintf_chk
mov rcx, r12
call fcn.1004acce0
test ebx, ebx
jne 0x1004acee2
mov eax, 0x20
mov rcx, r12
mov word [0x100722920], ax
add rsp, 0x30
pop rbx
pop rsi
pop r12
jmp fcn.1004acce0
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 0x1004acec8
mov dword [rsp + 0x28], ebx
mov rcx, r12
lea r9, str.._0d
xor edx, edx
mov dword [rsp + 0x20], esi
mov r8d, 0x101
call sub.msys_2.0.dll___sprintf_chk
mov rcx, r12
call fcn.1004acce0
jmp 0x1004acea6
Function at 0x1004ad3d0
Capabilities:
Read file on windows

Disassembly:
push r14
push r13
push r12
push rbx
sub rsp, 0x238
lea rdx, [0x1006c0f15]
lea r14, [rcx + 0x40]
mov rbx, rcx
mov rcx, r14
call sub.msys_2.0.dll_fopen
mov r12, rax
test rax, rax
je 0x100676a74
movsxd rdx, dword [rbx + 0x1044]
lea rax, str.procset
lea r13, [0x100722920]
lea r9, str.BeginResource
lea r8, str._____s:__s
mov rcx, r13
mov rax, qword [rax + rdx*8]
mov edx, 0x101
mov qword [rsp + 0x20], rax
call sym.vim.exe_vim_snprintf
mov rcx, r13
call fcn.1004acce0
lea r9, [rbx + 0x1048]
mov edx, 0x101
mov rcx, r13
lea r8, str.__s_n
lea rbx, [rsp + 0x30]
call sym.vim.exe_vim_snprintf
mov rcx, r13
call fcn.1004acce0
mov qword [rsp + 0x20], r14
mov edx, 0x101
mov rcx, r13
lea r9, str.BeginDocument
lea r8, str._____s:__s_n
call sym.vim.exe_vim_snprintf
mov rcx, r13
call fcn.1004acce0
jmp 0x1004ad4b0
mov edx, eax
mov rcx, rbx
call fcn.1004acbf0
mov eax, dword [0x100722ac0]
test eax, eax
jne 0x1004ad540
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 0x100676a4e
test rax, rax
jne 0x1004ad498
mov rcx, r12
call fcn.100672bf0
lea r9, str.EndDocument
mov edx, 0x101
mov rcx, r13
lea r8, str._____s_n
call sym.vim.exe_vim_snprintf
mov rcx, r13
call fcn.1004acce0
lea r9, str.EndResource
mov edx, 0x101
mov rcx, r13
lea r8, str._____s_n
call sym.vim.exe_vim_snprintf
mov rcx, r13
call fcn.1004acce0
mov eax, 1
add rsp, 0x238
pop rbx
pop r12
pop r13
pop r14
ret
mov rcx, r12
call fcn.100672bf0
xor eax, eax
add rsp, 0x238
pop rbx
pop r12
pop r13
pop r14
ret
mov rcx, qword [sym.vim.exe_e_cant_read_postscript_resource_file_str]
call sub.msys_intl_8.dll_libintl_gettext
mov rdx, r14
mov rcx, rax
call sym.vim.exe_semsg
mov rcx, r12
call fcn.100672bf0
xor eax, eax
jmp 0x1004ad52a
mov rcx, qword [sym.vim.exe_e_cant_open_file_str_2]
call sub.msys_intl_8.dll_libintl_gettext
mov rdx, r14
mov rcx, rax
call sym.vim.exe_semsg
xor eax, eax
jmp 0x1004ad52a
Function at 0x1004baa10
Capabilities:
Write file on windows

Disassembly:
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x78
mov rax, qword [0x100722de8]
movsxd rcx, ecx
mov edi, edx
lea rbx, [rcx*8]
sub rbx, rcx
shl rbx, 3
mov r9, qword [rax + rbx + 0x30]
test r9, r9
je 0x1004baa69
lea rcx, [0x1006c42c0]
mov r8d, 2
mov edx, 1
call sub.msys_2.0.dll_fwrite
mov rax, qword [0x100722de8]
mov rcx, qword [rax + rbx + 0x30]
call sub.msys_2.0.dll_fflush
lea r13, [rsp + 0x30]
lea rcx, [rsp + 0x38]
call sub.msys_2.0.dll_sigemptyset
lea r12, [rsp + 0x50]
mov rdx, r13
lea rax, [0x1004baa00]
mov r8, r12
mov ecx, 0xe
mov qword [rsp + 0x30], rax
lea r13, [rsp + 0x2c]
mov dword [rsp + 0x40], 0x40000000
call sub.msys_2.0.dll_sigaction
mov ecx, 2
call sub.msys_2.0.dll_alarm
mov rax, qword [0x100722de8]
xor r8d, r8d
mov rdx, r13
mov ecx, dword [rax + rbx + 0x18]
call fcn.1006734d0
mov esi, eax
call sub.msys_2.0.dll___errno
xor ecx, ecx
mov ebp, 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 [0x100722de8]
add rax, rbx
test esi, esi
js 0x1004bab70
mov rcx, qword [rax + 0x28]
test rcx, rcx
je 0x1004bab0c
call fcn.100672bf0
mov rax, qword [0x100722de8]
add rax, rbx
mov rcx, qword [rax + 0x30]
test rcx, rcx
je 0x1004bab24
call fcn.100672bf0
mov rax, qword [0x100722de8]
add rax, rbx
test edi, edi
jne 0x1004babb0
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, 0x78
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
ret
mov ecx, dword [rax + 0x18]
cmp ecx, 1
jle 0x1004baaf4
cmp ebp, 0xa
je 0x1004babf0
mov edx, 9
call sub.msys_2.0.dll_kill
mov rax, qword [0x100722de8]
xor r8d, r8d
mov rdx, r13
mov ecx, dword [rax + rbx + 0x18]
call fcn.1006734d0
mov rax, qword [0x100722de8]
add rax, rbx
jmp 0x1004baaf4
mov rcx, qword [rax]
call sym.vim.exe_vim_free
mov rax, qword [0x100722de8]
mov rcx, qword [rax + rbx + 8]
call sym.vim.exe_vim_free
mov rax, qword [0x100722de8]
mov rcx, qword [rax + rbx + 0x10]
call sym.vim.exe_vim_free
mov rax, qword [0x100722de8]
add rax, rbx
jmp 0x1004bab2c
xor ecx, ecx
mov esi, 0x28
call sub.msys_2.0.dll_sleep
nop dword [rax]
mov rax, qword [0x100722de8]
xor edx, edx
mov ecx, dword [rax + rbx + 0x18]
call sub.msys_2.0.dll_kill
test eax, eax
jne 0x1004baba1
xor edx, edx
mov ecx, 0x32
call sym.vim.exe_mch_delay
sub esi, 1
jne 0x1004bac00
mov rax, qword [0x100722de8]
mov ecx, dword [rax + rbx + 0x18]
jmp 0x1004bab81
Function at 0x1004d3760
Capabilities:
Get file attributes

Disassembly:
push rdi
push rsi
push rbx
sub rsp, 0x20
mov rdx, qword [rcx + 0x18]
mov rbx, rcx
test rdx, rdx
je 0x1004d37d0
mov rsi, qword [sym.vim.exe_NameBuff]
cmp byte [rdx], 0x7e
mov rcx, qword [rsi]
jne 0x1004d3788
cmp byte [rdx + 1], 0x2f
je 0x1004d37e0
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, 0x20
pop rbx
pop rsi
pop rdi
jmp sym.vim.exe_buflist_new
add rsp, 0x20
pop rbx
pop rsi
pop rdi
ret
mov rdx, rcx
mov r8d, 0x1000
lea rcx, [0x1006c5c60]
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 0x1004d3793
Function at 0x1004dc520
Capabilities:
Query environment variable

Disassembly:
push rdi
push rsi
push rbx
sub rsp, 0x60
mov rsi, rcx
test rcx, rcx
je 0x1004dc534
cmp byte [rcx], 0
jne 0x1004dc590
lea rcx, str.LC_ALL
call sub.msys_2.0.dll_getenv
mov rsi, rax
test rax, rax
je 0x1004dc54d
cmp byte [rax], 0
jne 0x1004dc590
lea rcx, str.LC_CTYPE
call sub.msys_2.0.dll_getenv
mov rsi, rax
test rax, rax
je 0x1004dc566
cmp byte [rax], 0
jne 0x1004dc590
lea rcx, str.LANG
call sub.msys_2.0.dll_getenv
test rax, rax
je 0x1004dc655
cmp byte [rax], 0
jne 0x1004dc58a
xor eax, eax
add rsp, 0x60
pop rbx
pop rsi
pop rdi
ret
mov rsi, rax
nop dword [rax]
mov edx, 0x2e
mov rcx, rsi
call sym.vim.exe_vim_strchr
mov rbx, rax
test rax, rax
je 0x1004dc5cf
lea rax, [rsi + 2]
lea rsi, [rbx + 1]
cmp rax, rbx
jae 0x1004dc5cf
mov r8d, 3
lea rdx, [0x1006c5fbb]
mov rcx, rsi
call sub.msys_2.0.dll_strncasecmp
test eax, eax
je 0x1004dc683
xor ebx, ebx
jmp 0x1004dc60e
cmp al, 0x2d
je 0x1004dc61d
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 0x1004dc635
lea ecx, [rdx - 0x41]
lea edx, [rdx + 0x20]
cmp cl, 0x1a
cmovb eax, edx
mov byte [rsp + rbx + 0x20], al
add rbx, 1
cmp rbx, 0x31
je 0x1004dc630
movzx eax, byte [rsi + rbx]
movsxd rdi, ebx
test al, al
je 0x1004dc635
cmp al, 0x5f
jne 0x1004dc5d8
mov eax, 0x2d
mov byte [rsp + rbx + 0x20], al
add rbx, 1
cmp rbx, 0x31
jne 0x1004dc60e
mov edi, 0x31
movabs rax, 0x746c7561666564
mov byte [rsp + rdi + 0x20], 0
cmp qword [rsp + 0x20], rax
je 0x1004dc660
lea rcx, [rsp + 0x20]
call fcn.1004d9a40
add rsp, 0x60
pop rbx
pop rsi
pop rdi
ret
call sym.vim.exe_get_encoding_default
test rax, rax
mov rcx, rax
lea rax, [0x1006c5f0d]
cmove rcx, rax
call sym.vim.exe_vim_strsave
add rsp, 0x60
pop rbx
pop rsi
pop rdi
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 0x1004dc5cf
cmp dl, 0x2d
je 0x1004dc5cf
cmp byte [rbx - 3], 0x5f
jne 0x1004dc5cf
mov byte [rsp + 0x2e], 0
lea rsi, [rsp + 0x2a]
mov dword [rsp + 0x2a], 0x2d637565
movzx eax, byte [rbx - 2]
mov byte [rsp + 0x2e], al
movzx eax, byte [rbx - 1]
mov byte [rsp + 0x30], 0
mov byte [rsp + 0x2f], al
jmp 0x1004dc5cf

Function at 0x1004dc6e0
Capabilities:
Query environment variable

Disassembly:
sub rsp, 0x28
xor ecx, ecx
call sub.msys_2.0.dll_nl_langinfo
mov rcx, rax
test rax, rax
je 0x1004dc6f8
cmp byte [rax], 0
jne 0x1004dc715
mov ecx, 2
xor edx, edx
call sub.msys_intl_8.dll_libintl_setlocale
mov rcx, rax
test rax, rax
je 0x1004dc715
xor eax, eax
cmp byte [rcx], 0
cmove rcx, rax
add rsp, 0x28
jmp sym.vim.exe_enc_locale_env
Function at 0x1004dee80
Capabilities:
Get file attributes

Disassembly:
push r15
mov eax, 0x20a0
push r14
push r13
push r12
push rdi
push rsi
push rbx
call fcn.100672980
sub rsp, rax
lea r14, [rsp + 0x20]
mov r13, rdx
mov r12, rcx
mov rbx, r8
mov rdx, r14
call sub.msys_2.0.dll_stat
test eax, eax
jne 0x1004def00
mov rsi, qword [rsp + 0x28]
test rsi, rsi
setne dil
mov rdx, r14
mov rcx, r13
call sub.msys_2.0.dll_stat
test eax, eax
cmove rbx, qword [rsp + 0x28]
test rbx, rbx
je 0x1004def10
test dil, dil
je 0x1004def10
xor r8d, r8d
cmp rsi, rbx
setne r8b
mov eax, r8d
add rsp, 0x20a0
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
ret
xor edi, edi
xor esi, esi
jmp 0x1004deebe
mov r9d, 1
lea r15, [rsp + 0xa0]
mov rcx, r12
mov r8d, 0x1000
mov rdx, r15
lea rdi, [rsp + 0x10a0]
call sym.vim.exe_vim_FullName
mov r9d, 1
mov rdx, rdi
mov rcx, r13
mov r14d, eax
mov r8d, 0x1000
call sym.vim.exe_vim_FullName
cmp r14d, 1
jne 0x1004def78
cmp eax, 1
jne 0x1004def78
mov rdx, rdi
mov rcx, r15
call sub.msys_2.0.dll_strcmp
xor r8d, r8d
test eax, eax
setne r8b
jmp 0x1004deee5
or rbx, rsi
mov r8d, 1
jne 0x1004deee5
or eax, r14d
jne 0x1004deee5
mov rdx, r13
mov rcx, r12
call sub.msys_2.0.dll_strcmp
xor r8d, r8d
test eax, eax
setne r8b
jmp 0x1004deee5

Function at 0x1004defb0
Capabilities:
Get file attributes

Disassembly:
push r12
push rsi
push rbx
sub rsp, 0x120
mov rbx, rcx
mov rcx, rdx
lea rdx, [rsp + 0xa0]
call sub.msys_2.0.dll_stat
cmp eax, 0xffffffff
je 0x1004defe4
lea rcx, [rsp + 0x20]
call sub.msys_2.0.dll_sysinfo
mov r12d, eax
test eax, eax
je 0x1004df000
mov ecx, dword [rbx + 0x18]
call sym.vim.exe_mch_process_running
mov r12d, eax
mov eax, r12d
add rsp, 0x120
pop rbx
pop rsi
pop r12
ret
xor ecx, ecx
mov rsi, qword [rsp + 0xe0]
call sub.msys_2.0.dll_time
mov rdx, qword [sym.vim.exe_override_sysinfo_uptime]
mov rdx, qword [rdx]
test rdx, rdx
cmovs rdx, qword [rsp + 0x20]
sub rax, rdx
cmp rsi, rax
jge 0x1004defe4
jmp 0x1004defef
Function at 0x1004df750
Capabilities:
Get file attributes

Disassembly:
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xe0
mov rbx, rdx
mov rdx, qword [rdx + 0x88]
mov r12, rcx
test rdx, rdx
je 0x1004df888
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 0x1004df898
lea r13, [rsp + 0x60]
mov rcx, qword [rbx + 0x88]
mov rdx, r13
call sub.msys_2.0.dll_stat
test eax, eax
jns 0x1004df840
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 + 0x1bc8]
mov r8, qword [rax + 0x1c50]
call fcn.1004df6c0
nop
add rsp, 0xe0
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
ret
mov eax, dword [rsp + 0xa0]
mov rdx, r13
mov rcx, rbx
mov dword [r12 + 0x10], eax
mov eax, dword [rsp + 0x68]
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 0x1004df805
mov byte [rcx + 0x6c], 0
jmp 0x1004df805
mov rcx, r13
lea r14, [rsp + 0x30]
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 0x1004df928
mov rcx, r14
call sub.msys_2.0.dll_strlen
mov rsi, rax
lea rax, [rdi + rax]
cmp rax, 0x379
ja 0x1004df928
lea rbp, [r12 + 0x6d]
lea rcx, [r13 + rsi + 1]
mov r8, rdi
mov rdx, rbp
call sub.msys_2.0.dll_memmove
cmp esi, 8
jae 0x1004df948
test sil, 4
jne 0x1004df999
test esi, esi
je 0x1004df79f
movzx eax, byte [rsp + 0x30]
mov byte [r12 + 0x6d], al
test sil, 2
je 0x1004df79f
mov esi, esi
movzx eax, word [r14 + rsi - 2]
mov word [rbp + rsi - 2], ax
jmp 0x1004df79f
mov rdx, qword [rbx + 0x88]
mov r8d, 0x379
mov rcx, r13
call sym.vim.exe_vim_strncpy
jmp 0x1004df79f
mov rax, qword [rsp + 0x30]
lea r8, [r12 + 0x75]
and r8, 0xfffffffffffffff8
mov qword [r12 + 0x6d], rax
mov eax, esi
mov rdx, qword [r14 + rax - 8]
mov qword [rbp + rax - 8], rdx
sub rbp, r8
mov rax, r14
add esi, ebp
sub rax, rbp
and esi, 0xfffffff8
cmp esi, 8
jb 0x1004df79f
and esi, 0xfffffff8
xor edx, edx
mov ecx, edx
add edx, 8
mov r9, qword [rax + rcx]
mov qword [r8 + rcx], r9
cmp edx, esi
jb 0x1004df983
jmp 0x1004df79f
mov eax, dword [rsp + 0x30]
mov esi, esi
mov dword [r12 + 0x6d], eax
mov eax, dword [r14 + rsi - 4]
mov dword [rbp + rsi - 4], eax
jmp 0x1004df79f
Function at 0x1004e94c0
Capabilities:
Read file on windows

Disassembly:
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0x20
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 0x1004e9648
mov rcx, r12
mov r8, rax
mov rdx, r15
call sym.vim.exe_make_filter_cmd
mov r12, rax
test rax, rax
je 0x1004e95e2
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, [0x1006c8132]
mov rcx, r13
call sub.msys_2.0.dll_fopen
mov r14, rax
test rax, rax
je 0x100678688
xor edx, edx
mov r8d, 2
mov rcx, rax
call sub.msys_2.0.dll_fseek
cmp eax, 0xffffffff
je 0x100678660
mov rcx, r14
call sub.msys_2.0.dll_ftell
mov r15, rax
cmp eax, 0xffffffff
je 0x100678660
xor r8d, r8d
xor edx, edx
mov rcx, r14
call sub.msys_2.0.dll_fseek
cmp eax, 0xffffffff
je 0x100678660
lea ecx, [r15 + 1]
movsxd rcx, ecx
call sym.vim.exe_alloc
mov r12, rax
test rax, rax
je 0x1004e9630
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.100672bf0
mov rcx, r13
call sub.msys_2.0.dll_unlink
cmp r15d, esi
jne 0x1006786a8
test rbx, rbx
je 0x1004e9600
mov dword [rbx], r15d
mov rcx, r13
call sym.vim.exe_vim_free
mov rax, r12
add rsp, 0x20
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
ret
test r15d, r15d
jle 0x1004e9629
lea edx, [r15 - 1]
mov rax, r12
lea rdx, [r12 + rdx + 1]
nop dword [rax]
cmp byte [rax], 0
jne 0x1004e9620
mov byte [rax], 1
add rax, 1
cmp rdx, rax
jne 0x1004e9618
mov byte [r12 + rdi], 0
jmp 0x1004e95e2
mov rcx, r14
call fcn.100672bf0
mov rcx, r13
call sub.msys_2.0.dll_unlink
jmp 0x1004e95e2
mov rcx, qword [sym.vim.exe_e_cant_get_temp_file_name]
xor r12d, r12d
call sub.msys_intl_8.dll_libintl_gettext
mov rcx, rax
call sym.vim.exe_emsg
jmp 0x1004e95ea
mov rcx, qword [sym.vim.exe_e_cannot_read_from_str_2]
xor r12d, r12d
call sub.msys_intl_8.dll_libintl_gettext
mov rdx, r13
mov rcx, rax
call sym.vim.exe_semsg
mov rcx, r14
call fcn.100672bf0
nop
jmp 0x1004e95e2
mov rcx, qword [sym.vim.exe_e_cannot_read_from_str_2]
xor r12d, r12d
call sub.msys_intl_8.dll_libintl_gettext
mov rdx, r13
mov rcx, rax
call sym.vim.exe_semsg
nop
jmp 0x1004e95e2
mov rcx, qword [sym.vim.exe_e_cant_read_file_str]
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 0x1004e95e2
Function at 0x1004e96e0
Capabilities:
Query environment variable

Disassembly:
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x20
mov r8d, 0x14
mov edx, 8
lea rcx, [0x100724150]
mov dword [0x1007240a0], 1
call sym.vim.exe_ga_init2
call sub.msys_2.0.dll_setpwent
jmp 0x1004e9720
mov rcx, qword [rax]
call fcn.1004e9670
call sub.msys_2.0.dll_getpwent
test rax, rax
jne 0x1004e9718
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 0x1004e9784
cmp byte [rax], 0
je 0x1004e9784
mov ebp, dword [0x100724150]
test ebp, ebp
jle 0x1004e978f
mov rsi, qword [0x100724160]
lea edi, [rbp + 1]
mov ebx, 1
jmp 0x1004e9773
mov eax, ebx
add rbx, 1
cmp rbx, rdi
je 0x1004e9798
mov rcx, qword [rsi + rbx*8 - 8]
mov rdx, r12
call sub.msys_2.0.dll_strcmp
test eax, eax
jne 0x1004e9768
add rsp, 0x20
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
xor eax, eax
nop dword [rax]
cmp ebp, eax
jne 0x1004e9784
mov rcx, r12
call sub.msys_2.0.dll_getpwnam
test rax, rax
je 0x1004e9784
mov rcx, qword [rax]
add rsp, 0x20
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
jmp fcn.1004e9670
Function at 0x1004ebaa0
Capabilities:
Query environment variable

Disassembly:
push r12
push rdi
push rsi
push rbx
sub rsp, 0x28
mov rbx, qword [sym.vim.exe_homedir]
mov rcx, qword [rbx]
test rcx, rcx
je 0x1004ebac4
call sym.vim.exe_vim_free
mov qword [rbx], 0
lea rcx, [0x1006c8217]
call sub.msys_2.0.dll_getenv
mov r12, rax
test rax, rax
je 0x1004ebafc
mov rsi, qword [sym.vim.exe_NameBuff]
mov edx, 0x1000
mov rcx, qword [rsi]
call sym.vim.exe_mch_dirname
cmp eax, 1
je 0x1004ebb10
mov rcx, r12
call sym.vim.exe_vim_strsave
mov qword [rbx], rax
add rsp, 0x28
pop rbx
pop rsi
pop rdi
pop r12
ret
mov rcx, qword [rsi]
call sym.vim.exe_mch_chdir
test eax, eax
jne 0x1004ebaf1
mov rcx, r12
call sym.vim.exe_mch_chdir
test eax, eax
je 0x1004ebb50
mov rcx, qword [rsi]
call sym.vim.exe_mch_chdir
test eax, eax
je 0x1004ebaf1
mov rcx, qword [sym.vim.exe_e_cannot_go_back_to_previous_directory]
call sub.msys_intl_8.dll_libintl_gettext
mov rcx, rax
call sym.vim.exe_emsg
jmp 0x1004ebaf1
mov rdi, qword [sym.vim.exe_IObuff]
mov edx, 0x401
mov rcx, qword [rdi]
call sym.vim.exe_mch_dirname
cmp eax, 1
jne 0x1004ebb28
mov r12, qword [rdi]
jmp 0x1004ebb28
Function at 0x1004ebc60
Capabilities:
Query environment variable

Disassembly:
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x20
lea r13, [0x1006c8220]
mov rsi, rdx
mov rdx, r13
mov r12, rcx
call sub.msys_2.0.dll_strcmp
mov ebx, eax
test eax, eax
je 0x1004ebd08
lea rdx, [0x1006c821c]
mov rcx, r12
call sub.msys_2.0.dll_strcmp
test eax, eax
jne 0x1004ebe28
mov rbp, qword [sym.vim.exe_p_hf]
mov rcx, qword [rbp]
test rcx, rcx
je 0x1004ebcc8
mov edx, 0x24
call sym.vim.exe_vim_strchr
test rax, rax
je 0x1004ebf2a
nop dword [rax + rax]
mov rax, qword [sym.vim.exe_default_vim_dir]
mov r12, qword [rax]
cmp byte [r12], 0
je 0x1004ebe28
mov dword [rsi], 0
mov rdx, r12
lea rcx, [0x1006c821c]
call sym.vim.exe_vim_setenv
mov rax, qword [sym.vim.exe_didset_vim]
mov dword [rax], 1
jmp 0x1004ebe2b
mov rdi, qword [sym.vim.exe_default_vimruntime_dir]
mov rax, qword [rdi]
cmp byte [rax], 0
je 0x1004ebdb8
mov rbp, qword [sym.vim.exe_p_hf]
mov rcx, qword [rbp]
test rcx, rcx
je 0x1004ebe60
mov edx, 0x24
call sym.vim.exe_vim_strchr
test rax, rax
jne 0x1004ebe0c
mov r14, qword [rbp]
test r14, r14
je 0x1004ebe0c
mov rcx, r14
call sym.vim.exe_gettail
mov r12, rax
cmp qword [rbp], r14
je 0x1004ebf10
test ebx, ebx
jne 0x1004ebed0
cmp r12, r14
ja 0x1004ebeb0
mov rdx, r12
mov rcx, r14
sub rdx, r14
call sym.vim.exe_vim_strnsave
mov r12, rax
test rax, rax
je 0x1004ebe90
mov rcx, rax
call sym.vim.exe_mch_isdir
test eax, eax
je 0x1004ebf00
mov dword [rsi], 1
test ebx, ebx
jne 0x1004ebce3
jmp 0x1004ebe46
lea r14, [0x1006c821c]
mov rcx, r14
call sub.msys_2.0.dll_getenv
test rax, rax
je 0x1004ebdf8
cmp byte [rax], 0
je 0x1004ebdf8
mov rcx, rax
call fcn.1004e9270
mov r12, rax
test rax, rax
jne 0x1004ebe40
mov rcx, r14
call sub.msys_2.0.dll_getenv
mov r12, rax
test rax, rax
jne 0x1004ebe46
nop dword [rax]
mov rbp, qword [sym.vim.exe_p_hf]
mov rcx, qword [rbp]
test rcx, rcx
jne 0x1004ebd2f
mov r12, qword [rdi]
cmp byte [r12], 0
jne 0x1004ebe63
mov rbx, qword [sym.vim.exe_default_vim_dir]
mov rcx, qword [rbx]
cmp byte [rcx], 0
jne 0x1004ebe70
nop dword [rax]
xor r12d, r12d
mov rax, r12
add rsp, 0x20
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
ret
mov dword [rsi], 1
mov rdx, r12
mov rcx, r13
call sym.vim.exe_vim_setenv
mov rax, qword [sym.vim.exe_didset_vimruntime]
mov dword [rax], 1
jmp 0x1004ebe2b
mov r12, rax
mov dword [rsi], 0
jmp 0x1004ebe46
call fcn.1004e9270
mov r12, rax
test rax, rax
jne 0x1004ebe40
mov r12, qword [rbx]
mov dword [rsi], 0
test r12, r12
jne 0x1004ebe46
jmp 0x1004ebe28
mov dword [rsi], 1
test ebx, ebx
jne 0x1004ebcc8
mov rdi, qword [sym.vim.exe_default_vimruntime_dir]
jmp 0x1004ebe0c
mov rdx, r12
mov rcx, r14
call sym.vim.exe_after_pathsep
cmp eax, 1
adc r12, 0xffffffffffffffff
jmp 0x1004ebd75
mov rdx, r12
lea r8, str.runtime
mov rcx, r14
call fcn.1004e9200
lea r8, str.vim82
mov rcx, r14
mov rdx, rax
call fcn.1004e9200
mov r12, rax
jmp 0x1004ebd6c
mov rcx, r12
call sym.vim.exe_vim_free
jmp 0x1004ebe96
lea r8, [0x1006c8235]
mov rdx, rax
mov rcx, r14
call fcn.1004e9200
mov r12, rax
jmp 0x1004ebd64
mov r14, qword [rbp]
test r14, r14
jne 0x1004ebd4f
jmp 0x1004ebcc8
Function at 0x1004ebf40
Capabilities:
Query environment variable

Disassembly:
push r13
push r12
sub rsp, 0x28
mov r12, rcx
mov r13, rdx
call sub.msys_2.0.dll_getenv
test rax, rax
je 0x1004ebf5d
cmp byte [rax], 0
jne 0x1004ebf70
mov rdx, r13
mov rcx, r12
add rsp, 0x28
pop r12
pop r13
jmp fcn.1004ebc60
add rsp, 0x28
pop r12
pop r13
ret