Function at 0x100511f20
Capabilities:
Query environment variable

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0x78
lea rbp, [rsp + 0x80]
mov rax, qword [sym.imp.msys_2.0.dll___stack_chk_guard]
mov rsi, qword [rax]
mov qword [rbp - 0x18], rsi
xor esi, esi
mov dword [rbp - 0x44], 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 0x100511f9a
xor r8d, r8d
lea rdx, [0x1006b0298]
lea rcx, [0x1006b02d4]
call fcn.1005095d0
xor r8d, r8d
lea rdx, [0x1006b02d8]
lea rcx, [0x1006b00ae]
call fcn.1005095d0
lea rcx, str.SHELL
call sub.msys_2.0.dll_getenv
test rax, rax
je 0x100511fb4
cmp byte [rax], 0
jne 0x100512450
lea rcx, str.backupskip
lea r14, [rbp - 0x30]
call sym.vim.exe_findoption
mov rcx, r14
mov r8d, 0x64
mov edx, 1
movsxd r15, eax
lea rbx, [0x1006b0420]
lea r12, str.aleph
call sym.vim.exe_ga_init2
lea rax, [r15 + r15*4]
lea rdi, [rbx + 0x20]
mov qword [rbp - 0x50], rax
lea rcx, [0x1006afdbf]
mov dword [rbp - 0x34], 0
cmp byte [rcx], 0
mov esi, 7
mov r8d, 7
lea r13, str._tmp
jne 0x100512090
mov rcx, r8
call sym.vim.exe_alloc
mov rdx, r13
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 r10d, 0x2a
mov rdx, r15
mov word [r15 + rax], r10w
mov rax, qword [rbp - 0x50]
mov rcx, qword [rbp - 0x20]
shl rax, 4
mov r8, qword [r12 + rax + 0x10]
call fcn.1005061b0
test rax, rax
je 0x100512598
mov rcx, r15
call sym.vim.exe_vim_free
mov ecx, dword [rbp - 0x34]
test ecx, ecx
jne 0x1005120c0
add rbx, 8
cmp rdi, rbx
je 0x1005120d1
mov rcx, qword [rbx]
jmp 0x100511ffb
lea rdx, [rbp - 0x34]
call sym.vim.exe_vim_getenv
mov r13, rax
test rax, rax
je 0x100512074
cmp byte [rax], 0
je 0x100512074
mov rcx, rax
call sub.msys_2.0.dll_strlen
lea esi, [rax + 3]
movsxd r8, esi
jmp 0x100512019
mov rcx, r13
add rbx, 8
call sym.vim.exe_vim_free
cmp rdi, rbx
jne 0x100512084
mov rdx, qword [rbp - 0x20]
test rdx, rdx
je 0x1005120f2
lea rcx, [0x1006b02ec]
xor r8d, r8d
call fcn.1005095d0
mov rcx, qword [rbp - 0x20]
call sym.vim.exe_vim_free
lea rcx, str.maxmemtot
call sym.vim.exe_findoption
movsxd rbx, eax
test ebx, ebx
jns 0x1005124d0
mov rdx, r14
lea rcx, str.CDPATH
mov dword [rbp - 0x30], 0
call sym.vim.exe_vim_getenv
mov r14, rax
test rax, rax
je 0x1005121fb
mov rcx, rax
call sub.msys_2.0.dll_strlen
lea rcx, [rax + rax + 2]
call sym.vim.exe_alloc
mov r15, rax
test rax, rax
je 0x1005121f0
mov byte [rax], 0x2c
movzx ecx, byte [r14]
test cl, cl
je 0x1005121b9
mov rbx, r14
mov edi, 1
xor r13d, r13d
jmp 0x10051217e
mov byte [rax], 0x2c
mov edi, ecx
add r13d, 1
movsxd rbx, r13d
add rbx, r14
movzx ecx, byte [rbx]
test cl, cl
je 0x1005121c0
call sym.vim.exe_vim_ispathlistsep
lea ecx, [rdi + 1]
mov r9d, eax
movsxd rdx, ecx
movsxd rax, edi
add rax, r15
add rdx, r15
test r9d, r9d
jne 0x100512168
movzx r9d, byte [rbx]
cmp r9b, 0x20
je 0x1005124b0
cmp r9b, 0x2c
je 0x1005124b0
mov edi, ecx
mov byte [rax], r9b
jmp 0x10051216d
lea rdx, [rax + 1]
nop dword [rax]
mov byte [rdx], 0
lea rcx, str.cdpath
call sym.vim.exe_findoption
test eax, eax
js 0x1005125e8
cdqe
lea rax, [rax + rax*4]
shl rax, 4
add rax, r12
or qword [rax + 0x10], 0x80
mov qword [rax + 0x28], r15
mov edx, dword [rbp - 0x30]
test edx, edx
jne 0x100512588
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.1005095d0
xor ecx, ecx
call fcn.100509120
mov eax, dword [rbp - 0x44]
test eax, eax
jne 0x100512518
mov rdi, qword [sym.vim.exe_curbuf]
xor esi, esi
mov rcx, qword [rdi]
mov dword [rcx + 0x12c0], 1
mov dword [rcx + 0x1d30], 0xffffffff
mov qword [rcx + 0x1d68], 0xfffffffffffe1dc0
call sym.vim.exe_check_buf_options
mov rax, qword [sym.vim.exe_curwin]
mov rbx, qword [rax]
lea rcx, [rbx + 0x390]
call fcn.1005077a0
lea rcx, [rbx + 0x900]
lea rbx, str.aleph
call fcn.1005077a0
call sym.vim.exe_check_options
call fcn.10050ea10
call sym.vim.exe_init_spell_chartab
jmp 0x1005122e8
test byte [rbx + 0x12], 0x10
je 0x1005123c8
mov rax, qword [rbx + 0x18]
test rax, rax
je 0x1005123c8
mov rcx, qword [rax]
call sub.msys_intl_8.dll_libintl_gettext
mov rcx, rax
test rcx, rcx
je 0x1005122e1
call sym.vim.exe_vim_strsave
mov r14, rax
test rax, rax
je 0x1005122e1
mov rax, qword [rbx + 0x18]
mov qword [rax], r14
test byte [rbx + 0x10], 0x80
jne 0x100512408
or qword [rbx + 0x10], 0x80
mov qword [rbx + 0x28], r14
add esi, 1
add rbx, 0x50
mov rax, qword [rbx]
cmp byte [rax], 0x74
jne 0x100512290
cmp byte [rax + 1], 0x5f
jne 0x100512290
mov rcx, qword [rdi]
call sym.vim.exe_save_file_ff
lea rcx, str.MLTERM
call sub.msys_2.0.dll_getenv
test rax, rax
je 0x100512326
xor r9d, r9d
xor r8d, r8d
mov edx, 1
lea rcx, str.tbidi
call sym.vim.exe_set_option_value
call fcn.100507980
call sym.vim.exe_enc_locale
mov r14, rax
test rax, rax
je 0x10051237c
mov rbx, qword [sym.vim.exe_p_enc]
mov rsi, rax
mov ecx, 8
lea rdi, str.gb18030
mov r15, qword [rbx]
mov qword [rbx], rax
repe cmpsb byte [rsi], byte [rdi]
seta al
sbb al, 0
test al, al
je 0x100512420
call sym.vim.exe_mb_init
test rax, rax
je 0x100512470
mov rcx, qword [rbx]
call sym.vim.exe_vim_free
mov qword [rbx], r15
call sym.vim.exe_get_mess_lang
mov r12, rax
test rax, rax
je 0x1005123e0
mov rcx, rax
call sub.msys_2.0.dll_strlen
cmp rax, 1
jbe 0x1005123e0
mov rax, qword [sym.imp.msys_2.0.dll___stack_chk_guard]
mov rsi, qword [rbp - 0x18]
sub rsi, qword [rax]
jne 0x1005125f5
mov rcx, r12
add rsp, 0x78
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
jmp 0x1005096d0
mov ecx, esi
xor edx, edx
call fcn.100507890
mov rcx, rax
jmp 0x1005122b2
mov rax, qword [sym.imp.msys_2.0.dll___stack_chk_guard]
mov rsi, qword [rbp - 0x18]
sub rsi, qword [rax]
jne 0x1005125f5
add rsp, 0x78
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov rcx, qword [rbx + 0x28]
call sym.vim.exe_vim_free
jmp 0x1005122d5
lea rcx, str.cp936
call sym.vim.exe_vim_strsave
mov rcx, r14
mov qword [rbx], rax
call sym.vim.exe_vim_free
call sym.vim.exe_mb_init
test rax, rax
jne 0x100512371
jmp 0x100512470
mov r8d, 1
mov rdx, rax
lea rcx, [0x1006afcf9]
call fcn.1005095d0
jmp 0x100511fb4
lea rcx, [0x1006b03f2]
call sym.vim.exe_findoption
test eax, eax
js 0x10051237c
cdqe
lea rax, [rax + rax*4]
shl rax, 4
add r12, rax
mov rax, qword [rbx]
or qword [r12 + 0x10], 0x80
mov qword [r12 + 0x28], rax
jmp 0x10051237c
add edi, 2
mov byte [rax], 0x5c
mov rax, rdx
movzx r9d, byte [rbx]
movsxd rcx, edi
lea rdx, [r15 + rcx]
jmp 0x1005121b4
xor ecx, ecx
call sym.vim.exe_mch_total_mem
lea rcx, str.maxmem
shr rax, 1
mov rdi, rax
lea rax, [rbx + rbx*4]
shl rax, 4
mov qword [r12 + rax + 0x28], rdi
call sym.vim.exe_findoption
test eax, eax
js 0x100512109
cdqe
lea rax, [rax + rax*4]
shl rax, 4
mov qword [r12 + rax + 0x28], rdi
jmp 0x100512109
lea rcx, [0x1006b038f]
call sym.vim.exe_findoption
test eax, eax
js 0x100512548
cdqe
lea rdx, str._VIM_vimfiles__VIMRUNTIME__VIM_vimfiles_after
lea rax, [rax + rax*4]
shl rax, 4
mov qword [r12 + rax + 0x28], rdx
mov rax, qword [sym.vim.exe_p_rtp]
mov qword [rax], rdx
lea rcx, [0x1006b03ce]
call sym.vim.exe_findoption
test eax, eax
js 0x100512223
cdqe
lea rdx, str._VIM_vimfiles__VIMRUNTIME__VIM_vimfiles_after
lea rax, [rax + rax*4]
shl rax, 4
mov qword [r12 + rax + 0x28], rdx
mov rax, qword [sym.vim.exe_p_pp]
mov qword [rax], rdx
jmp 0x100512223
mov rcx, r14
call sym.vim.exe_vim_free
jmp 0x1005121fb
mov edx, esi
mov rcx, r14
call sym.vim.exe_ga_grow
cmp eax, 1
jne 0x10051206c
mov r9d, dword [rbp - 0x30]
mov rcx, qword [rbp - 0x20]
test r9d, r9d
jle 0x1005125d4
mov qword [rbp - 0x58], rcx
call sub.msys_2.0.dll_strlen
mov rcx, qword [rbp - 0x58]
mov r8d, 0x2c
mov word [rcx + rax], r8w
mov rcx, qword [rbp - 0x20]
mov rdx, r15
call fcn.10065eb30
add dword [rbp - 0x30], esi
jmp 0x10051206c
mov rcx, r15
call sym.vim.exe_vim_free
jmp 0x1005121f0
call sub.msys_2.0.dll___stack_chk_fail
nop
nop dword [rax + rax]