Function at 0x1005191e0
Capabilities:
Query environment variable

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x68
mov rdi, qword [sym.imp.msys_2.0.dll___stack_chk_guard]
mov rax, qword [rdi]
mov qword [rsp + 0x58], rax
xor eax, eax
mov esi, ecx
call sym.vim.exe_langmap_init
mov rax, qword [sym.vim.exe_p_cp]
lea rcx, str.VIM_POSIX
mov dword [rax], 1
call sub.msys_2.0.dll_getenv
test rax, rax
je 0x100519252
xor r8d, r8d
lea rdx, [0x1006cc180]
lea rcx, [0x1006cc1bc]
call fcn.100510450
xor r8d, r8d
lea rdx, [0x1006cc1c0]
lea rcx, [0x1006cc044]
call fcn.100510450
lea rcx, str.SHELL
call sub.msys_2.0.dll_getenv
test rax, rax
je 0x10051926c
cmp byte [rax], 0
jne 0x100519720
lea rcx, str.backupskip
lea r14, [rsp + 0x40]
call sym.vim.exe_findoption
mov rcx, r14
mov r8d, 0x64
mov edx, 1
mov r12d, eax
lea rbx, [0x1006cc320]
lea rdi, str.aleph
call sym.vim.exe_ga_init2
movsxd rax, r12d
lea r13, [rbx + 0x20]
lea rcx, [0x1006cbdca]
lea rax, [rax + rax*4]
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x3c], 0
cmp byte [rcx], 0
mov r8d, 7
mov ebp, 7
lea r12, str._tmp
jne 0x100519350
mov rcx, r8
call sym.vim.exe_alloc
mov rdx, r12
mov r15, rax
mov rcx, rax
call sub.msys_2.0.dll_strcpy
mov rcx, r15
call sym.vim.exe_add_pathsep
mov rcx, r15
call sub.msys_2.0.dll_strlen
mov r9d, 0x2a
mov rdx, r15
mov word [r15 + rax], r9w
mov rax, qword [rsp + 0x20]
mov rcx, qword [rsp + 0x50]
shl rax, 4
mov r8, qword [rdi + rax + 0x10]
call fcn.10050cfc0
test rax, rax
je 0x100519870
mov rcx, r15
call sym.vim.exe_vim_free
mov edx, dword [rsp + 0x3c]
test edx, edx
jne 0x100519380
add rbx, 8
cmp r13, rbx
je 0x100519391
mov rcx, qword [rbx]
jmp 0x1005192b8
lea rdx, [rsp + 0x3c]
call sym.vim.exe_vim_getenv
mov r12, rax
test rax, rax
je 0x100519334
cmp byte [rax], 0
je 0x100519334
mov rcx, rax
call sub.msys_2.0.dll_strlen
lea ebp, [rax + 3]
movsxd r8, ebp
jmp 0x1005192d7
mov rcx, r12
add rbx, 8
call sym.vim.exe_vim_free
cmp r13, rbx
jne 0x100519345
mov rdx, qword [rsp + 0x50]
test rdx, rdx
je 0x1005193b4
lea rcx, [0x1006cc1d4]
xor r8d, r8d
call fcn.100510450
mov rcx, qword [rsp + 0x50]
call sym.vim.exe_vim_free
lea rcx, str.maxmemtot
call sym.vim.exe_findoption
movsxd rbx, eax
test ebx, ebx
jns 0x100519788
mov rdx, r14
lea rcx, str.CDPATH
mov dword [rsp + 0x40], 0
call sym.vim.exe_vim_getenv
mov r12, rax
test rax, rax
je 0x1005194ca
mov rcx, rax
call sub.msys_2.0.dll_strlen
lea rcx, [rax + rax + 2]
call sym.vim.exe_alloc
mov r13, rax
test rax, rax
je 0x1005194be
mov byte [rax], 0x2c
movzx ecx, byte [r12]
test cl, cl
je 0x1005198d5
mov rbx, r12
mov r14d, 1
xor r15d, r15d
jmp 0x100519447
mov byte [rdx], 0x2c
mov r14d, eax
add r15d, 1
movsxd rbx, r15d
add rbx, r12
movzx ecx, byte [rbx]
test cl, cl
je 0x100519488
call sym.vim.exe_vim_ispathlistsep
mov r8d, eax
movsxd rax, r14d
lea rdx, [r13 + rax]
lea eax, [r14 + 1]
test r8d, r8d
jne 0x100519430
movzx ecx, byte [rbx]
cmp cl, 0x20
je 0x100519778
cmp cl, 0x2c
je 0x100519778
mov eax, r14d
lea r14d, [rax + 1]
cdqe
mov byte [r13 + rax], cl
jmp 0x100519436
movsxd r14, r14d
mov byte [r13 + r14], 0
lea rcx, str.cdpath
call sym.vim.exe_findoption
test eax, eax
js 0x1005198c8
cdqe
lea rax, [rax + rax*4]
shl rax, 4
add rax, rdi
or qword [rax + 0x10], 0x80
mov qword [rax + 0x28], r13
mov eax, dword [rsp + 0x40]
test eax, eax
jne 0x100519840
xor r8d, r8d
lea rdx, str.system_lpr_.__printdevice______:___P_._printdevice__.___._v:fname_in__._delete_v:fname_in___v:shell_error
lea rcx, str.pexpr
call fcn.100510450
xor ecx, ecx
call fcn.10050ffd0
call sym.vim.exe_get_isolated_shell_name
mov r12, rax
test rax, rax
je 0x100519520
lea rdx, str.nologin
mov rcx, rax
call sym.vim.exe_vim_fnamecmp
test eax, eax
jne 0x100519850
mov rax, qword [sym.vim.exe_restricted]
mov dword [rax], 1
mov rcx, r12
call sym.vim.exe_vim_free
test esi, esi
jne 0x1005197d0
mov r12, qword [sym.vim.exe_curbuf]
xor esi, esi
mov rcx, qword [r12]
mov dword [rcx + 0x12c0], 1
mov dword [rcx + 0x1d80], 0xffffffff
mov qword [rcx + 0x1dd0], 0xfffffffffffe1dc0
call sym.vim.exe_check_buf_options
mov rax, qword [sym.vim.exe_curwin]
mov rbx, qword [rax]
lea rcx, [rbx + 0x3c8]
call fcn.10050e5d0
lea rcx, [rbx + 0x950]
lea rbx, str.aleph
call fcn.10050e5d0
call sym.vim.exe_check_options
call fcn.100515b00
call sym.vim.exe_init_spell_chartab
jmp 0x1005195f0
test byte [rbx + 0x12], 0x10
je 0x1005196c8
mov rax, qword [rbx + 0x18]
test rax, rax
je 0x1005196c8
mov rcx, qword [rax]
call sub.msys_intl_8.dll_libintl_gettext
mov rcx, rax
test rcx, rcx
je 0x1005195e9
call sym.vim.exe_vim_strsave
mov r13, rax
test rax, rax
je 0x1005195e9
mov rax, qword [rbx + 0x18]
mov qword [rax], r13
test byte [rbx + 0x10], 0x80
jne 0x1005196e0
or qword [rbx + 0x10], 0x80
mov qword [rbx + 0x28], r13
add esi, 1
add rbx, 0x50
mov rax, qword [rbx]
cmp byte [rax], 0x74
jne 0x100519598
cmp byte [rax + 1], 0x5f
jne 0x100519598
mov rcx, qword [r12]
call sym.vim.exe_save_file_ff
lea rcx, str.MLTERM
call sub.msys_2.0.dll_getenv
test rax, rax
je 0x100519644
lea rcx, str.tbidi
xor r9d, r9d
xor r8d, r8d
mov edx, 1
call sym.vim.exe_set_option_value
mov rcx, rax
test rax, rax
je 0x100519644
call sub.msys_intl_8.dll_libintl_gettext
mov rcx, rax
call sym.vim.exe_emsg
call fcn.10050e790
call sym.vim.exe_enc_locale
mov r12, rax
test rax, rax
je 0x10051968f
mov rbx, qword [sym.vim.exe_p_enc]
lea rdx, str.gb18030
mov rcx, rax
mov rsi, qword [rbx]
mov qword [rbx], rax
call sub.msys_2.0.dll_strcmp
test eax, eax
je 0x1005196f0
call sym.vim.exe_mb_init
test rax, rax
je 0x100519740
mov rcx, qword [rbx]
call sym.vim.exe_vim_free
mov qword [rbx], rsi
call sym.vim.exe_get_mess_lang
mov rdi, qword [sym.imp.msys_2.0.dll___stack_chk_guard]
mov rcx, rax
mov rax, qword [rsp + 0x58]
sub rax, qword [rdi]
jne 0x1005198e0
add rsp, 0x68
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp sym.vim.exe_set_helplang_default
mov ecx, esi
xor edx, edx
call fcn.10050e6b0
mov rcx, rax
jmp 0x1005195ba
mov rcx, qword [rbx + 0x28]
call sym.vim.exe_vim_free
jmp 0x1005195dd
lea rcx, str.cp936
call sym.vim.exe_vim_strsave
mov rcx, r12
mov qword [rbx], rax
call sym.vim.exe_vim_free
call sym.vim.exe_mb_init
test rax, rax
jne 0x100519684
jmp 0x100519740
mov r8d, 1
mov rdx, rax
lea rcx, [0x1006cbd31]
call fcn.100510450
jmp 0x10051926c
lea rcx, [0x1006cc2ea]
call sym.vim.exe_findoption
test eax, eax
js 0x10051968f
cdqe
lea rax, [rax + rax*4]
shl rax, 4
add rdi, rax
mov rax, qword [rbx]
or qword [rdi + 0x10], 0x80
mov qword [rdi + 0x28], rax
jmp 0x10051968f
mov byte [rdx], 0x5c
movzx ecx, byte [rbx]
jmp 0x100519478
xor ecx, ecx
call sym.vim.exe_mch_total_mem
lea rcx, str.maxmem
shr rax, 1
mov r12, rax
lea rax, [rbx + rbx*4]
shl rax, 4
mov qword [rdi + rax + 0x28], r12
call sym.vim.exe_findoption
test eax, eax
js 0x1005193cb
cdqe
lea rax, [rax + rax*4]
shl rax, 4
mov qword [rdi + rax + 0x28], r12
jmp 0x1005193cb
lea rcx, [0x1006cc285]
call sym.vim.exe_findoption
test eax, eax
js 0x100519800
cdqe
lea rdx, str._VIM_vimfiles__VIMRUNTIME__VIM_vimfiles_after
lea rax, [rax + rax*4]
shl rax, 4
mov qword [rdi + rax + 0x28], rdx
mov rax, qword [sym.vim.exe_p_rtp]
mov qword [rax], rdx
lea rcx, [0x1006cc2c6]
call sym.vim.exe_findoption
test eax, eax
js 0x100519528
cdqe
lea rdx, str._VIM_vimfiles__VIMRUNTIME__VIM_vimfiles_after
lea rax, [rax + rax*4]
shl rax, 4
mov qword [rdi + rax + 0x28], rdx
mov rax, qword [sym.vim.exe_p_pp]
mov qword [rax], rdx
jmp 0x100519528
mov rcx, r12
call sym.vim.exe_vim_free
jmp 0x1005194ca
lea rdx, [0x1006cc27f]
mov rcx, r12
call sym.vim.exe_vim_fnamecmp
test eax, eax
je 0x10051950b
jmp 0x100519518
mov edx, ebp
mov rcx, r14
call sym.vim.exe_ga_grow
cmp eax, 1
jne 0x10051932c
mov r8d, dword [rsp + 0x40]
test r8d, r8d
jle 0x1005198ad
mov rdx, qword [rsp + 0x50]
mov rcx, rdx
mov qword [rsp + 0x28], rdx
call sub.msys_2.0.dll_strlen
mov rdx, qword [rsp + 0x28]
mov ecx, 0x2c
mov word [rdx + rax], cx
mov rcx, qword [rsp + 0x50]
mov rdx, r15
call fcn.100673240
add dword [rsp + 0x40], ebp
jmp 0x10051932c
mov rcx, r13
call sym.vim.exe_vim_free
jmp 0x1005194be
mov r14d, 1
jmp 0x10051948b
call sub.msys_2.0.dll___stack_chk_fail
nop
nop word cs:[rax + rax]