Function at 0x4162c8
Capabilities:
Get common file path
Read .ini file

Disassembly:
mov eax, 0x42e34d
call fcn.0041f1a0
sub esp, 0x5e0
mov eax, dword [0x440200]
and dword [ebp - 0x4dc], 0
xor eax, ebp
mov dword [ebp - 0x10], eax
mov eax, dword [ebp + 8]
push ebx
push esi
mov esi, dword [ebp + 0xc]
lea ecx, [ebp - 0x43c]
mov dword [ebp - 0x4cc], eax
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::constructor_void_]
xor ebx, ebx
lea eax, [ebp - 0x56c]
inc ebx
push eax
mov dword [ebp - 4], ebx
call fcn.0040f955
push dword [0x4401d4]
mov byte [ebp - 4], 2
push eax
lea eax, [ebp - 0x458]
push eax
call fcn.00401943
add esp, 0x10
lea ecx, [ebp - 0x56c]
mov byte [ebp - 4], 4
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
cmp dword [ebp - 0x440], 8
mov eax, dword [ebp - 0x454]
jae 0x416354
lea eax, [ebp - 0x454]
push edi
push eax
mov edi, 0x104
push edi
lea eax, [ebp - 0x420]
push eax
push 0x431b20
push dword [0x4401dc]
push dword [0x4401d8]
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea eax, [ebp - 0x218]
push eax
xor eax, eax
push eax
push eax
push 0x23
push eax
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
jge 0x4163a0
lea eax, [ebp - 0x218]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
push dword [0x440194]
lea eax, [ebp - 0x4d8]
push eax
mov ecx, esi
call fcn.00412451
lea ecx, [ebp - 0x4fc]
push ecx
mov ecx, eax
mov byte [ebp - 4], 5
call fcn.00411ac7
lea eax, [ebp - 0x4fc]
push eax
lea ecx, [ebp - 0x490]
mov byte [ebp - 4], 6
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::constructor_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const__]
lea ecx, [ebp - 0x4fc]
mov byte [ebp - 4], 9
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
mov eax, dword [ebp - 0x4d8]
test eax, eax
mov byte [ebp - 4], 8
pop edi
je 0x416402
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push dword [0x440194]
lea eax, [ebp - 0x4e0]
push eax
mov ecx, esi
call fcn.00412451
lea ecx, [ebp - 0x534]
push ecx
mov ecx, eax
mov byte [ebp - 4], 0xa
call fcn.00411a2f
lea eax, [ebp - 0x534]
push eax
lea ecx, [ebp - 0x4ac]
mov byte [ebp - 4], 0xb
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__]
lea ecx, [ebp - 0x534]
mov byte [ebp - 4], 0xe
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov eax, dword [ebp - 0x4e0]
test eax, eax
mov byte [ebp - 4], 0xd
je 0x416463
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push dword [0x44019c]
lea eax, [ebp - 0x4d4]
push eax
mov ecx, esi
call fcn.00412451
lea ecx, [ebp - 0x4ac]
push ecx
lea ecx, [ebp - 0x4d0]
push ecx
mov ecx, eax
mov byte [ebp - 4], 0xf
call fcn.004124be
lea ecx, [ebp - 0x518]
push ecx
mov ecx, eax
mov byte [ebp - 4], 0x10
call fcn.00411ac7
lea eax, [ebp - 0x518]
push eax
lea ecx, [ebp - 0x4c8]
mov byte [ebp - 4], 0x11
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::constructor_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const__]
lea ecx, [ebp - 0x518]
mov byte [ebp - 4], 0x15
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
mov eax, dword [ebp - 0x4d0]
test eax, eax
mov byte [ebp - 4], 0x14
je 0x4164dd
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x4d4]
test eax, eax
mov byte [ebp - 4], 0x13
je 0x4164f1
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push ebx
push 2
lea ecx, [ebp - 0x5ec]
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_ostringstream_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::constructor_int_]
mov esi, dword [sym.imp.MSVCP71.dll_class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t______cdecl_std::operator___wchar_t__struct_std::char_traits_wchar_t___class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t_____wchar_t_const__]
push 0x433828
lea eax, [ebp - 0x218]
push eax
lea eax, [ebp - 0x5ec]
push eax
mov byte [ebp - 4], 0x16
call esi
pop ecx
pop ecx
push eax
call esi
pop ecx
pop ecx
lea eax, [ebp - 0x474]
push eax
lea ecx, [ebp - 0x5ec]
call dword [sym.imp.MSVCP71.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t_____thiscall_std::basic_ostringstream_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::str_void_]
lea eax, [ebp - 0x420]
push eax
mov byte [ebp - 4], 0x17
call dword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
mov ecx, 0x4322f4
mov eax, 0x431b20
je 0x41655a
mov eax, ecx
push ecx
lea ecx, [ebp - 0x4c8]
push ecx
push 0x433824
lea ecx, [ebp - 0x490]
push ecx
push eax
lea eax, [ebp - 0x420]
push eax
lea eax, [ebp - 0x5ec]
push eax
call esi
pop ecx
pop ecx
push eax
call esi
pop ecx
pop ecx
push eax
call fcn.00402550
pop ecx
pop ecx
push eax
call esi
pop ecx
pop ecx
push eax
call fcn.00402550
pop ecx
pop ecx
push eax
call esi
pop ecx
pop ecx
lea eax, [ebp - 0x550]
push eax
lea ecx, [ebp - 0x5ec]
call dword [sym.imp.MSVCP71.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t_____thiscall_std::basic_ostringstream_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::str_void_]
push eax
lea ecx, [ebp - 0x43c]
mov byte [ebp - 4], 0x18
call dword [0x4313d0]
lea ecx, [ebp - 0x550]
mov byte [ebp - 4], 0x17
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
cmp dword [ebp - 0x45c], 8
mov eax, dword [ebp - 0x470]
jae 0x4165e9
lea eax, [ebp - 0x470]
push eax
call fcn.0041aa05
cmp dword [ebp - 0x424], 8
mov eax, dword [ebp - 0x438]
pop ecx
jae 0x416605
lea eax, [ebp - 0x438]
push eax
call fcn.0041aa05
pop ecx
mov ecx, dword [ebp - 0x4cc]
lea eax, [ebp - 0x43c]
push eax
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::constructor_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const__]
lea ecx, [ebp - 0x474]
mov dword [ebp - 0x4dc], ebx
mov byte [ebp - 4], 0x16
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
lea ecx, [ebp - 0x5ec]
mov byte [ebp - 4], 0x13
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_ostringstream_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::vbase_dtor_void_]
lea ecx, [ebp - 0x4c8]
mov byte [ebp - 4], 0xd
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
lea ecx, [ebp - 0x4ac]
mov byte [ebp - 4], 8
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [ebp - 0x490]
mov byte [ebp - 4], 4
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
lea ecx, [ebp - 0x458]
mov byte [ebp - 4], bl
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
lea ecx, [ebp - 0x43c]
mov byte [ebp - 4], 0
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x4cc]
mov dword fs:[0], ecx
mov ecx, dword [ebp - 0x10]
pop esi
xor ecx, ebp
pop ebx
call fcn.0041ef93
leave
ret