Function at 0x10017110
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
push 0xffffffffffffffff
push 0x1004255d
mov eax, dword fs:[0]
push eax
sub esp, 0x4e8
mov eax, dword [0x10062070]
xor eax, esp
mov dword [esp + 0x4b0], eax
push ebx
push esi
push edi
mov eax, dword [0x10062070]
xor eax, esp
push eax
lea eax, [esp + 0x4f8]
mov dword fs:[0], eax
mov esi, ecx
mov edi, dword [sym.imp.ouilibx.dll_public:_class_OUI::COVWnd____thiscall_OUI::COVContainer::GetChildWnd_wchar_t_const__]
push 0
push 0x10062260
push 0x10062244
push 0
push str.IDC_NEW_SOFTMGR_TREE
call edi
push eax
call sub.MSVCR110.dll___RTDynamicCast
add esp, 0x14
test eax, eax
jne 0x10017180
mov dword [esp + 0x44], eax
jmp 0x1001718a
mov eax, dword [eax + 0x80]
mov dword [esp + 0x44], eax
push 0
push 0x10062914
push 0x10062244
push 0
push str.IDC_SOFTMGR_SPACE_TITLE
mov ecx, esi
call edi
push eax
call sub.MSVCR110.dll___RTDynamicCast
add esp, 0x14
mov ecx, esi
push 0
push 0x10062914
push 0x10062244
push 0
push str.IDC_SOFTMGR_NUM_TITLE
mov ebx, eax
call edi
push eax
call sub.MSVCR110.dll___RTDynamicCast
add esp, 0x14
cmp dword [esp + 0x44], 0
mov dword [esp + 0x4c], eax
je 0x100175a5
test ebx, ebx
je 0x100175a5
test eax, eax
je 0x100175a5
mov esi, dword [sym.imp.ouilibx.dll_public:_void___thiscall_OUI::COString::constructor_void_]
lea ecx, [esp + 0x8c]
call esi
lea ecx, [esp + 0x84]
mov dword [esp + 0x500], 0
call esi
cmp byte [ebp + 8], 0
mov byte [esp + 0x500], 1
je 0x100174b2
lea eax, [esp + 0x88]
push str.IDS_SM_SYSINFO_FMT
push eax
call dword [sym.imp.ouilibx.dll_public:_static_class_OUI::OSTRING_TABLE____cdecl_OUI::OSTRING_TABLE::GetStringTable_void_]
mov edi, dword [sym.imp.ouilibx.dll_public:_class_OUI::COString___thiscall_OUI::OSTRING_TABLE::LoadStringW_wchar_t_const__]
mov ecx, eax
call edi
push 0x1004a424
mov byte [esp + 0x504], 2
mov esi, dword [sym.imp.ouilibx.dll_public:_int___thiscall_OUI::COString::Replace_wchar_t_const___wchar_t_const__]
push str.replace_string_1
lea ecx, [esp + 0x90]
call esi
push str.nbsp_c_color_0xff0000___font_size_18__fontbold_true___s__font___c_nbsp
push str.replace_string_2
lea ecx, [esp + 0x90]
call esi
lea eax, [esp + 0x90]
push str.IDS_SM_SOFT_NUM_FMT
push eax
call dword [sym.imp.ouilibx.dll_public:_static_class_OUI::OSTRING_TABLE____cdecl_OUI::OSTRING_TABLE::GetStringTable_void_]
mov ecx, eax
call edi
push str.nbsp_c_color_0xff0000___font_size_18__fontbold_true___d__font___c_nbsp
push str.replace_string_1
lea ecx, [esp + 0x98]
mov byte [esp + 0x508], 3
call esi
xor eax, eax
push 0x206
push eax
mov word [esp + 0xb4], ax
lea eax, [esp + 0xb6]
push eax
call sub.MSVCR110.dll_memset
add esp, 0xc
lea eax, [esp + 0xac]
push 0x104
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
lea eax, [esp + 0xac]
push eax
lea ecx, [esp + 0x98]
call fcn.1000de10
push 1
push 0
lea eax, [esp + 0x70]
push eax
lea ecx, [esp + 0xa0]
mov byte [esp + 0x50c], 4
call fcn.1000b480
push 0x1004a5bc
mov edx, eax
lea ecx, [esp + 0x54]
mov byte [esp + 0x504], 5
call fcn.1000c610
add esp, 4
lea ecx, [esp + 0x94]
push eax
call fcn.1000b3a0
lea ecx, [esp + 0x50]
call fcn.10003040
lea ecx, [esp + 0x68]
mov byte [esp + 0x500], 4
call fcn.10003040
cmp dword [esp + 0xa8], 8
lea eax, [esp + 0x94]
cmovae eax, dword [esp + 0x94]
push eax
lea ecx, [esp + 0x54]
mov dword [esp + 0x84], 0
mov dword [esp + 0x4c], 0
call fcn.1000de10
lea eax, [esp + 0x48]
mov byte [esp + 0x500], 6
push eax
lea edx, [esp + 0x84]
lea ecx, [esp + 0x54]
call fcn.100364c0
add esp, 4
lea ecx, [esp + 0x50]
mov byte [esp + 0x500], 4
call fcn.10003040
xor eax, eax
push 0x206
push eax
mov word [esp + 0x2bc], ax
lea eax, [esp + 0x2be]
push eax
call sub.MSVCR110.dll_memset
mov eax, dword [esp + 0x8c]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
add esp, 4
addsd xmm0, qword [eax*8 + 0x10052aa0]
lea eax, [esp + 0x2bc]
cvtpd2ps xmm0, xmm0
cvtps2pd xmm0, xmm0
mulsd xmm0, qword [0x10052a68]
movsd qword [esp], xmm0
push str._.1f_GB
push 0x208
push eax
call fcn.100030a0
mov edi, dword [sym.imp.ouilibx.dll_public:_wchar_t_const____thiscall_OUI::COString::operator_wchar_t_const__void_const]
add esp, 0x14
cmp dword [esp + 0xa8], 8
lea ecx, [esp + 0x2b4]
lea eax, [esp + 0x94]
cmovae eax, dword [esp + 0x94]
push ecx
push eax
lea ecx, [esp + 0x90]
call edi
mov esi, dword [sym.imp.ouilibx.dll_public:_int___cdecl_OUI::COString::Format_wchar_t_const__]
push eax
lea eax, [esp + 0x98]
push eax
call esi
mov ecx, dword [esp + 0x54]
add esp, 0x10
push 1
call dword [sym.imp.ouilibx.dll_public:_long_int___thiscall_OUI::COVTreeItem::GetChildCount_bool_]
push eax
lea ecx, [esp + 0x94]
call edi
push eax
lea eax, [esp + 0x8c]
push eax
call esi
add esp, 0xc
lea ecx, [esp + 0x94]
call fcn.10003040
mov byte [esp + 0x500], 2
mov esi, dword [sym.imp.ouilibx.dll_public:_void___thiscall_OUI::COString::destructor_void_]
lea ecx, [esp + 0x90]
call esi
mov byte [esp + 0x500], 1
lea ecx, [esp + 0x88]
jmp 0x1001750e
lea eax, [esp + 0x80]
push str.IDS_SM_SCANNING_SOFT_FMT
push eax
call dword [sym.imp.ouilibx.dll_public:_static_class_OUI::OSTRING_TABLE____cdecl_OUI::OSTRING_TABLE::GetStringTable_void_]
mov ecx, eax
call dword [sym.imp.ouilibx.dll_public:_class_OUI::COString___thiscall_OUI::OSTRING_TABLE::LoadStringW_wchar_t_const__]
push 0x1004a5f8
lea ecx, [esp + 0x84]
mov byte [esp + 0x504], 7
call dword [sym.imp.ouilibx.dll_public:_wchar_t_const____thiscall_OUI::COString::operator_wchar_t_const__void_const]
push eax
lea eax, [esp + 0x8c]
push eax
call dword [sym.imp.ouilibx.dll_public:_int___cdecl_OUI::COString::Format_wchar_t_const__]
mov byte [esp + 0x50c], 1
mov esi, dword [sym.imp.ouilibx.dll_public:_void___thiscall_OUI::COString::destructor_void_]
add esp, 0xc
lea ecx, [esp + 0x80]
call esi
mov edi, dword [sym.imp.ouilibx.dll_public:_wchar_t____thiscall_OUI::COString::GetBuffer_int_]
push 0
lea ecx, [esp + 0x90]
call edi
mov esi, dword [sym.imp.ouilibx.dll_public:_bool___thiscall_OUI::COVRichText::SetText_wchar_t_const__]
push eax
mov ecx, ebx
call esi
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x58]
push 0
lea ecx, [esp + 0x88]
call edi
mov edi, dword [esp + 0x4c]
push eax
mov ecx, edi
call esi
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x58]
cmp byte [ebp + 0xc], 0
jne 0x1001757a
mov esi, dword [ebx + 0x48]
test esi, esi
je 0x1001757a
push 1
mov ecx, esi
call dword [sym.imp.ouilibx.dll_public:_bool___thiscall_OUI::COVWnd::IsWindowVisible_bool_const]
test al, al
je 0x1001757a
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x8c]
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x58]
mov byte [esp + 0x500], 0
mov ebx, dword [sym.imp.ouilibx.dll_public:_void___thiscall_OUI::COString::destructor_void_]
lea ecx, [esp + 0x84]
call ebx
lea ecx, [esp + 0x8c]
mov dword [esp + 0x500], 0xffffffff
call ebx
mov ecx, dword [esp + 0x4f8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x4b0]
xor ecx, esp
call fcn.1003d966
mov esp, ebp
pop ebp
ret 8