Function at 0x406b97
Capabilities:
Query environment variable

Disassembly:
push rbp
push rbx
sub rsp, 0xd8
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x70], rcx
mov rcx, qword [rbp + 0x70]
call fcn.004d6760
mov rax, qword [sym.imp.KERNEL32.dll_GetEnvironmentStrings]
call rax
mov qword [rbp + 0x40], rax
cmp qword [rbp + 0x40], 0
jne 0x406c28
lea rdx, str.GetEnvironmentStrings_failed:
mov rcx, qword [0x00599ef0]
call method.std::basic_ostream_char__std::char_traits_char____std::operator____std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
mov rbx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetLastError]
call rax
mov edx, eax
mov rcx, rbx
call method.std::ostream.operator___unsigned_long_
mov rdx, qword [method.std::basic_ostream_char__std::char_traits_char____std::endl_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char____]
mov rcx, rax
call method.std::ostream.operator___std::ostream____std::ostream__
lea rdx, str.Could_not_get_environment_variables_for_argument_override.
mov rcx, qword [0x00599ef0]
call method.std::basic_ostream_char__std::char_traits_char____std::operator____std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
mov rdx, qword [method.std::basic_ostream_char__std::char_traits_char____std::endl_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char____]
mov rcx, rax
call method.std::ostream.operator___std::ostream____std::ostream__
jmp 0x406df6
mov rax, qword [rbp + 0x40]
mov qword [rbp + 0x48], rax
mov rax, qword [rbp + 0x48]
movzx eax, byte [rax]
test al, al
je 0x406d78
lea rax, [rbp + 0xf]
mov rcx, rax
call fcn.0049ed30
lea rcx, [rbp + 0xf]
mov rdx, qword [rbp + 0x48]
lea rax, [rbp - 0x60]
mov r8, rcx
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string_std.allocator_char____char_const__std::allocator_char__const_
lea rax, [rbp + 0xf]
mov rcx, rax
call sym.std::allocator_char_::allocator__
lea rax, [rbp - 0x60]
mov r8d, 0
lea rdx, [0x00501913]
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.find_char_const__unsigned_long_long__const
mov qword [rbp + 0x38], rax
lea rax, [rbp - 0x40]
mov rcx, qword [rbp + 0x38]
lea rdx, [rbp - 0x60]
mov r9, rcx
mov r8d, 0
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.substr_unsigned_long_long__unsigned_long_long__const
mov rax, qword [rbp + 0x38]
lea rcx, [rax + 1]
lea rax, [rbp - 0x20]
lea rdx, [rbp - 0x60]
mov r9, 0xffffffffffffffff
mov r8, rcx
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.substr_unsigned_long_long__unsigned_long_long__const
lea rax, [rbp - 0x40]
mov r8d, 0
lea rdx, str.VECTR_
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.find_char_const__unsigned_long_long__const
mov qword [rbp + 0x30], rax
cmp qword [rbp + 0x30], 0
jne 0x406d36
lea rax, [rbp + 0x10]
lea rdx, [rbp - 0x40]
mov r9, 0xffffffffffffffff
mov r8d, 6
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.substr_unsigned_long_long__unsigned_long_long__const
lea rax, [rbp + 0x10]
mov rdx, rax
mov rcx, qword [rbp + 0x70]
call sym.std::map_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_____std::less_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_______std::allocator_std::pair_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const__std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_________::operator___std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____
mov rcx, rax
lea rax, [rbp - 0x20]
mov rdx, rax
call fcn.004e1430
lea rax, [rbp + 0x10]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
mov rax, qword [rbp + 0x48]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_lstrlenA]
call rax
add eax, 1
cdqe
add qword [rbp + 0x48], rax
lea rax, [rbp - 0x20]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea rax, [rbp - 0x40]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea rax, [rbp - 0x60]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
jmp 0x406c30
mov rax, qword [rbp + 0x40]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsA]
call rax
jmp 0x406df6
mov rax, qword [rbp + 0x70]
add rsp, 0xd8
pop rbx
pop rbp
ret