Function at 0x14000a150
Capabilities:
Get common file path
Query environment variable

Disassembly:
push rbx
push rbp
push rdi
push r14
sub rsp, 0x838
mov rax, qword [0x140019330]
xor rax, rsp
mov qword [rsp + 0x820], rax
mov rbp, rdx
mov r14, rcx
lea rdx, [rsp + 0x420]
mov ecx, 0x400
call qword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
test eax, eax
jne 0x14000a1df
call qword [sym.imp.MSVCR120.dll__errno]
mov ecx, dword [rax]
call qword [sym.imp.MSVCR120.dll_strerror]
lea rcx, str.could_not_identify_current_directory:__s
mov rdi, rax
call qword [sym.imp.libintl.dll_libintl_gettext]
mov rbx, rax
call qword [sym.imp.MSVCR120.dll___iob_func]
mov r8, rdi
lea rcx, [rax + 0x60]
mov rdx, rbx
call fcn.14000c790
call qword [sym.imp.MSVCR120.dll___iob_func]
mov ecx, 0xa
lea rdx, [rax + 0x60]
call qword [sym.imp.MSVCR120.dll_fputc]
or eax, 0xffffffff
jmp 0x14000a447
mov rcx, r14
call fcn.14000b580
test rax, rax
je 0x14000a284
movzx eax, byte [r14]
cmp al, 0x2f
je 0x14000a232
cmp al, 0x5c
je 0x14000a232
movzx ecx, al
call qword [sym.imp.MSVCR120.dll_isalpha]
test eax, eax
je 0x14000a21d
cmp byte [r14 + 1], 0x3a
jne 0x14000a21d
movzx eax, byte [r14 + 2]
cmp al, 0x2f
je 0x14000a232
cmp al, 0x5c
je 0x14000a232
lea rdx, [rsp + 0x420]
mov r8, r14
mov rcx, rbp
call fcn.14000b630
jmp 0x14000a24b
mov r8d, 0x400
mov rdx, r14
mov rcx, rbp
call qword [sym.imp.MSVCR120.dll_strncpy]
mov byte [rbp + 0x3ff], 0
mov rcx, rbp
call fcn.14000b6f0
mov rcx, rbp
call fcn.14000aac0
test eax, eax
jne 0x14000a266
xor eax, eax
jmp 0x14000a447
lea rcx, str.invalid_binary___s_
call qword [sym.imp.libintl.dll_libintl_gettext]
mov rbx, rax
call qword [sym.imp.MSVCR120.dll___iob_func]
mov r8, rbp
jmp 0x14000a1b6
lea rdx, [rsp + 0x420]
mov r8, r14
mov rcx, rbp
call fcn.14000b630
mov rcx, rbp
call fcn.14000aac0
test eax, eax
je 0x14000a25f
lea rcx, str.PATH
mov qword [rsp + 0x870], rsi
mov qword [rsp + 0x830], r15
call qword [sym.imp.MSVCR120.dll_getenv]
mov r15, rax
test rax, rax
je 0x14000a3fa
cmp byte [rax], 0
je 0x14000a3fa
xor esi, esi
mov ebx, esi
nop dword [rax]
test rsi, rsi
mov rsi, r15
je 0x14000a2ec
lea rsi, [rbx + 1]
mov rcx, rsi
call fcn.14000b600
mov rbx, rax
test rax, rax
jne 0x14000a30c
or rbx, 0xffffffffffffffff
inc rbx
cmp byte [rsi + rbx], 0
jne 0x14000a300
add rbx, rsi
mov rax, rbx
sub rax, rsi
lea rdi, [rax + 1]
cmp rdi, 0x400
jge 0x14000a326
test rdi, rdi
je 0x14000a341
jmp 0x14000a32b
mov edi, 0x400
lea rcx, [rsp + 0x20]
mov r8, rdi
mov rdx, rsi
call qword [sym.imp.MSVCR120.dll_strncpy]
mov byte [rsp + rdi + 0x1f], 0
movzx eax, byte [rsp + 0x20]
cmp al, 0x2f
je 0x14000a389
cmp al, 0x5c
je 0x14000a389
movzx ecx, al
call qword [sym.imp.MSVCR120.dll_isalpha]
test eax, eax
je 0x14000a36f
cmp byte [rsp + 0x21], 0x3a
jne 0x14000a36f
movzx eax, byte [rsp + 0x22]
cmp al, 0x2f
je 0x14000a389
cmp al, 0x5c
je 0x14000a389
lea r8, [rsp + 0x20]
lea rdx, [rsp + 0x420]
mov rcx, rbp
call fcn.14000b630
mov rdx, rbp
jmp 0x14000a38e
lea rdx, [rsp + 0x20]
mov r8, r14
mov rcx, rbp
call fcn.14000b630
mov rcx, rbp
call fcn.14000b6f0
mov rcx, rbp
call fcn.14000aac0
cmp eax, 0xfffffffe
je 0x14000a3b7
test eax, eax
jne 0x14000a3f1
jmp 0x14000a437
lea rcx, str.could_not_read_binary___s_
call qword [sym.imp.libintl.dll_libintl_gettext]
mov rdi, rax
call qword [sym.imp.MSVCR120.dll___iob_func]
mov r8, rbp
lea rcx, [rax + 0x60]
mov rdx, rdi
call fcn.14000c790
call qword [sym.imp.MSVCR120.dll___iob_func]
mov ecx, 0xa
lea rdx, [rax + 0x60]
call qword [sym.imp.MSVCR120.dll_fputc]
cmp byte [rbx], 0
jne 0x14000a2e0
lea rcx, str.could_not_find_a___s__to_execute
call qword [sym.imp.libintl.dll_libintl_gettext]
mov rbx, rax
call qword [sym.imp.MSVCR120.dll___iob_func]
mov r8, r14
lea rcx, [rax + 0x60]
mov rdx, rbx
call fcn.14000c790
call qword [sym.imp.MSVCR120.dll___iob_func]
mov ecx, 0xa
lea rdx, [rax + 0x60]
call qword [sym.imp.MSVCR120.dll_fputc]
or eax, 0xffffffff
mov rsi, qword [rsp + 0x870]
mov r15, qword [rsp + 0x830]
mov rcx, qword [rsp + 0x820]
xor rcx, rsp
call fcn.14000f6c0
add rsp, 0x838
pop r14
pop rdi
pop rbp
pop rbx
ret