Function at 0x40aa31
Capabilities:
Get common file path

Disassembly:
sub esp, 0x800
push ebx
push ebp
mov ebx, ecx
xor ebp, ebp
push esi
cmp dword [ebx + 0x28], ebp
jne 0x40ab58
lea eax, [esp + 0xc]
push edi
push eax
push 0x400
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
mov edi, dword [sym.imp.MSVCRT.dll_wcslen]
lea eax, [esp + 0x10]
push eax
lea esi, [ebx + 0x20]
call edi
pop ecx
push eax
lea eax, [esp + 0x14]
push eax
mov ecx, esi
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int______thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::assign_unsigned_short_int_const___unsigned_int_]
mov eax, dword [esi + 4]
cmp eax, ebp
jne 0x40aa83
mov eax, dword [sym.imp.MSVCP60.dll_unsigned_short_int_const__private:_static_unsigned_short_int_const____cdecl_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Nullstr_void_::_2::_C]
push ebp
push eax
call dword [sym.imp.MSVCRT.dll__waccess]
pop ecx
test eax, eax
pop ecx
je 0x40aaad
mov ebp, 0x421bb4
push ebp
call edi
pop ecx
push eax
push ebp
mov ecx, esi
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int______thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::assign_unsigned_short_int_const___unsigned_int_]
push esi
call fcn.00406e49
pop ecx
xor ebp, ebp
cmp dword [ebx + 0x28], ebp
je 0x40aacc
mov eax, dword [esi + 4]
cmp eax, ebp
jne 0x40aabe
mov eax, dword [sym.imp.MSVCP60.dll_unsigned_short_int_const__private:_static_unsigned_short_int_const____cdecl_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Nullstr_void_::_2::_C]
push ebp
push eax
call dword [sym.imp.MSVCRT.dll__waccess]
pop ecx
test eax, eax
pop ecx
je 0x40aaea
push str.TEMP
call dword [sym.imp.MSVCRT.dll__wgetenv]
mov ebp, eax
push ebp
call edi
pop ecx
pop ecx
push eax
push ebp
mov ecx, esi
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int______thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::assign_unsigned_short_int_const___unsigned_int_]
xor ebp, ebp
cmp dword [ebx + 0x28], ebp
je 0x40ab09
mov eax, dword [esi + 4]
cmp eax, ebp
jne 0x40aafb
mov eax, dword [sym.imp.MSVCP60.dll_unsigned_short_int_const__private:_static_unsigned_short_int_const____cdecl_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Nullstr_void_::_2::_C]
push ebp
push eax
call dword [sym.imp.MSVCRT.dll__waccess]
pop ecx
test eax, eax
pop ecx
je 0x40ab27
push 0x420f04
call dword [sym.imp.MSVCRT.dll__wgetenv]
mov ebp, eax
push ebp
call edi
pop ecx
pop ecx
push eax
push ebp
mov ecx, esi
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int______thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::assign_unsigned_short_int_const___unsigned_int_]
xor ebp, ebp
cmp dword [ebx + 0x28], ebp
pop edi
je 0x40ab47
mov eax, dword [esi + 4]
cmp eax, ebp
jne 0x40ab39
mov eax, dword [sym.imp.MSVCP60.dll_unsigned_short_int_const__private:_static_unsigned_short_int_const____cdecl_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Nullstr_void_::_2::_C]
push ebp
push eax
call dword [sym.imp.MSVCRT.dll__waccess]
pop ecx
test eax, eax
pop ecx
je 0x40ab58
mov eax, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::npos]
mov ecx, esi
push dword [eax]
push ebp
push ebx
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int______thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::assign_class_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int___const___unsigned_int__unsigned_int_]
pop esi
lea eax, [ebx + 0x20]
pop ebp
pop ebx
add esp, 0x800
ret