Function at 0x408ed0
Capabilities:
Query environment variable

Disassembly:
mov qword [rsp + 8], rcx
push rbx
sub rsp, 0xd0
mov qword [rsp + 0x40], 0xfffffffffffffffe
mov rbx, rcx
mov dword [rsp + 0xf0], 0
mov edx, 0x23
lea rcx, [rsp + 0x20]
call fcn.0042d310
nop
cmp qword [rsp + 0x30], 0
jne 0x408f91
xor edx, edx
lea rcx, [rsp + 0x20]
call qword [sym.imp.msvcp60.dll_public:_char____ptr64___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator___unsigned_long_long_unsigned___int64_____ptr64]
mov rdx, rax
xor r8d, r8d
lea rcx, str.appdata
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
test eax, eax
jne 0x408f83
xor edx, edx
lea rcx, [rsp + 0x20]
call qword [sym.imp.msvcp60.dll_public:_char____ptr64___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator___unsigned_long_long_unsigned___int64_____ptr64]
mov rdx, rax
mov r8d, dword [rsp + 0x30]
lea rcx, str.userprofile
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
test eax, eax
jne 0x408f83
xor edx, edx
mov rcx, rbx
call fcn.00420680
nop
mov dword [rsp + 0xf0], 1
lea rcx, [rsp + 0x20]
call qword [sym.imp.msvcp60.dll_public:_void___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void____ptr64]
mov rax, rbx
jmp 0x409052
movsxd rdx, eax
lea rcx, [rsp + 0x20]
call qword [sym.imp.msvcp60.dll_public:_void___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::resize_unsigned_long_long_unsigned___int64_____ptr64]
xor eax, eax
mov byte [rsp + 0xe8], al
lea r8, [rsp + 0xe8]
lea rdx, [0x00561da8]
lea rcx, [rsp + 0xa8]
call qword [sym.imp.msvcp60.dll_public:_void___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const____ptr64__class_std::allocator_char__const____ptr64____ptr64]
nop
mov r8b, 0x5c
mov rdx, rax
lea rcx, [rsp + 0x68]
call sub.msvcp60.dll_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____cdecl_std::operator_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const____ptr64__char_
nop
lea r8, [0x00561d98]
mov rdx, rax
lea rcx, [rsp + 0x88]
call sub.msvcp60.dll_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____cdecl_std::operator_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const____ptr64__char_const____ptr64_
nop
mov r8b, 0x5c
mov rdx, rax
lea rcx, [rsp + 0x48]
call sub.msvcp60.dll_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____cdecl_std::operator_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const____ptr64__char_
nop
mov r8, rax
lea rdx, [rsp + 0x20]
mov rcx, rbx
call fcn.0041f160
nop
mov dword [rsp + 0xf0], 1
lea rcx, [rsp + 0x48]
call qword [sym.imp.msvcp60.dll_public:_void___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void____ptr64]
nop
lea rcx, [rsp + 0x88]
call qword [sym.imp.msvcp60.dll_public:_void___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void____ptr64]
nop
lea rcx, [rsp + 0x68]
call qword [sym.imp.msvcp60.dll_public:_void___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void____ptr64]
nop
lea rcx, [rsp + 0xa8]
call qword [sym.imp.msvcp60.dll_public:_void___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void____ptr64]
nop
lea rcx, [rsp + 0x20]
call qword [sym.imp.msvcp60.dll_public:_void___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void____ptr64]
mov rax, rbx
add rsp, 0xd0
pop rbx
ret