Function at 0x498330
Capabilities:
Get common file path
Get file system object information

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x500aa8
mov eax, dword fs:[0]
push eax
sub esp, 0x90c
mov eax, dword [0x550070]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x82c], ecx
push str.sys_title
mov ecx, dword [ebp - 0x82c]
add ecx, 0x30
call dword [sym.imp.DuiLib.dll_public:_class_DuiLib::CControlUI____thiscall_DuiLib::CPaintManagerUI::FindControl_wchar_t_const__const]
mov dword [ebp - 0x83c], eax
cmp dword [ebp - 0x83c], 0
je 0x49846d
mov eax, dword [ebp - 0x82c]
mov ecx, dword [eax + 0xae0]
add ecx, 0xc
call fcn.004037d0
movzx ecx, al
test ecx, ecx
je 0x49840c
mov edx, dword [ebp - 0x82c]
mov eax, dword [edx + 0xae0]
mov ecx, dword [eax + 4]
push ecx
lea edx, [ebp - 0x8d4]
push edx
mov ecx, dword [ebp - 0x82c]
call fcn.00498280
mov dword [ebp - 0x8d0], eax
mov eax, dword [ebp - 0x8d0]
mov dword [ebp - 0x8cc], eax
mov dword [ebp - 4], 0
push 1
mov ecx, dword [ebp - 0x8cc]
call fcn.004038a0
push eax
mov ecx, dword [ebp - 0x83c]
call dword [sym.imp.DuiLib.dll_public:_void___thiscall_DuiLib::CControlUI::SetString_wchar_t_const___bool_]
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x8d4]
call fcn.004036f0
jmp 0x49846d
mov ecx, dword [ebp - 0x82c]
mov edx, dword [ecx + 0xae0]
movzx eax, byte [edx + 8]
test eax, eax
je 0x498445
push 1
mov ecx, dword [ebp - 0x82c]
mov ecx, dword [ecx + 0xae0]
add ecx, 0xc
call fcn.004038a0
push eax
mov ecx, dword [ebp - 0x83c]
call dword [sym.imp.DuiLib.dll_public:_void___thiscall_DuiLib::CControlUI::SetString_wchar_t_const___bool_]
jmp 0x49846d
mov edx, dword [ebp - 0x82c]
mov ecx, dword [edx + 0xae0]
add ecx, 0xc
call fcn.004038a0
push eax
mov eax, dword [ebp - 0x83c]
mov edx, dword [eax]
mov ecx, dword [ebp - 0x83c]
mov eax, dword [edx + 0x2c]
call eax
mov ecx, dword [ebp - 0x82c]
mov edx, dword [ecx + 0xae0]
cmp dword [edx + 4], 1
je 0x498488
mov byte [ebp - 0x82d], 1
jmp 0x49848f
mov byte [ebp - 0x82d], 0
movzx eax, byte [ebp - 0x82d]
push eax
mov ecx, dword [ebp - 0x82c]
mov ecx, dword [ecx + 0xb54]
call dword [sym.imp.DuiLib.dll_public:_void___thiscall_DuiLib::CEditUI::SetReadOnly_bool_]
mov edx, dword [ebp - 0x82c]
mov eax, dword [edx + 0xae0]
cmp dword [eax + 4], 1
jne 0x4984ef
mov ecx, dword [ebp - 0x82c]
mov ecx, dword [ecx + 0xae0]
add ecx, 0x14
call fcn.004038a0
push eax
mov edx, dword [ebp - 0x82c]
mov eax, dword [edx + 0xb54]
mov ecx, dword [ebp - 0x82c]
mov edx, dword [eax]
mov ecx, dword [ecx + 0xb54]
mov eax, dword [edx + 0x2c]
call eax
lea ecx, [ebp - 0x860]
push ecx
push 0x11
mov edx, dword [ebp - 0x82c]
mov eax, dword [edx + 4]
push eax
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderLocation]
mov dword [ebp - 0x8d8], eax
cmp dword [ebp - 0x8d8], 0
jl 0x498566
push 0x2b4
push 0
lea ecx, [ebp - 0x828]
push ecx
call fcn.004d43c0
add esp, 0xc
push 0x4009
push 0x2b4
lea edx, [ebp - 0x828]
push edx
push 0
mov eax, dword [ebp - 0x860]
push eax
call dword [sym.imp.SHELL32.dll_SHGetFileInfoW]
mov ecx, dword [ebp - 0x82c]
mov dword [ecx + 0xaf8], eax
mov edx, dword [ebp - 0x860]
push edx
call dword [sym.imp.ole32.dll_CoTaskMemFree]
mov ecx, dword [ebp - 0x82c]
call fcn.00498e70
mov eax, dword [ebp - 0x82c]
mov ecx, dword [eax + 0xaf8]
push ecx
mov edx, dword [ebp - 0x82c]
mov ecx, dword [edx + 0xb64]
add ecx, 0xe0c
call dword [sym.imp.DuiLib.dll_public:_void___thiscall_DuiLib::ITreeInfo::SetImageList_struct__IMAGELIST__]
mov dword [ebp - 0x22c], 0xe
mov dword [ebp - 0x228], 0x27
mov dword [ebp - 0x224], 5
mov dword [ebp - 0x220], 0xd
mov dword [ebp - 0x21c], 0
mov dword [ebp - 0x8fc], str.374DE290_123F_4565_9164_39C4925E467B
mov dword [ebp - 0x8f8], str.31C0DD25_9439_4F12_BF41_7FF4EDA38722
mov dword [ebp - 0x834], 0
lea eax, [ebp - 0x858]
push eax
push 0x11
mov ecx, dword [ebp - 0x82c]
mov edx, dword [ecx + 4]
push edx
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderLocation]
mov dword [ebp - 0x848], eax
cmp dword [ebp - 0x848], 0
jl 0x498b51
push 0x2b4
push 0
lea eax, [ebp - 0x574]
push eax
call fcn.004d43c0
add esp, 0xc
push 0x4208
push 0x2b4
lea ecx, [ebp - 0x574]
push ecx
push 0
mov edx, dword [ebp - 0x858]
push edx
call dword [sym.imp.SHELL32.dll_SHGetFileInfoW]
mov dword [ebp - 0x848], eax
cmp dword [ebp - 0x848], 0
jl 0x498b3a
push 0x40
call fcn.004d1f00
add esp, 4
mov dword [ebp - 0x8dc], eax
mov dword [ebp - 4], 1
mov ecx, dword [ebp - 0x8dc]
call fcn.004945f0
mov dword [ebp - 0x864], eax
jmp 0x49868f
mov eax, dword [ebp - 0x864]
mov dword [ebp - 0x8e0], eax
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x8e0]
mov dword [ebp - 0x84c], ecx
lea edx, [ebp - 0x568]
push edx
mov ecx, dword [ebp - 0x84c]
add ecx, 4
call fcn.00406270
mov eax, dword [ebp - 0x84c]
mov ecx, dword [ebp - 0x570]
mov dword [eax + 0x18], ecx
mov dword [ebp - 0x8ac], 0
xor edx, edx
mov dword [ebp - 0x8a8], edx
mov dword [ebp - 0x8a4], edx
mov dword [ebp - 0x8a0], edx
mov dword [ebp - 0x89c], edx
mov dword [ebp - 0x898], edx
mov dword [ebp - 0x894], edx
mov dword [ebp - 0x890], edx
mov dword [ebp - 0x88c], edx
mov dword [ebp - 0x888], edx
mov eax, dword [ebp - 0x8ac]
or eax, 0x6f
mov dword [ebp - 0x8ac], eax
mov ecx, dword [ebp - 0x8a4]
or ecx, 0x60
mov dword [ebp - 0x8a4], ecx
mov edx, dword [ebp - 0x8a0]
or edx, 0x60
mov dword [ebp - 0x8a0], edx
lea eax, [ebp - 0x568]
mov dword [ebp - 0x89c], eax
mov ecx, dword [ebp - 0x570]
mov dword [ebp - 0x894], ecx
mov edx, dword [ebp - 0x570]
mov dword [ebp - 0x890], edx
mov eax, dword [ebp - 0x84c]
mov dword [ebp - 0x888], eax
mov dword [ebp - 0x88c], 0
push 0
push 0
lea ecx, [ebp - 0x8ac]
push ecx
mov edx, dword [ebp - 0x82c]
mov ecx, dword [edx + 0xb64]
call dword [sym.imp.DuiLib.dll_public:_struct_DuiLib::DTV_ITEM_INFO____thiscall_DuiLib::CTreeViewExUI::InsertItem_struct_DuiLib::DTV_ITEM___struct_DuiLib::DTV_ITEM_INFO___struct_DuiLib::DTV_ITEM_INFO__]
mov dword [ebp - 0x834], eax
cmp dword [ebp - 0x834], 0
je 0x498b3a
mov dword [ebp - 0x840], 0
jmp 0x4987c6
mov eax, dword [ebp - 0x840]
add eax, 1
mov dword [ebp - 0x840], eax
cmp dword [ebp - 0x840], 5
jae 0x49888b
push 0
mov ecx, dword [ebp - 0x840]
mov edx, dword [ebp + ecx*4 - 0x22c]
push edx
lea eax, [ebp - 0x218]
push eax
mov ecx, dword [ebp - 0x82c]
mov edx, dword [ecx + 4]
push edx
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
je 0x498886
push 0x40
call fcn.004d1f00
add esp, 4
mov dword [ebp - 0x8e4], eax
mov dword [ebp - 4], 2
mov ecx, dword [ebp - 0x8e4]
call fcn.004945f0
mov dword [ebp - 0x868], eax
jmp 0x498836
mov eax, dword [ebp - 0x868]
mov dword [ebp - 0x8b0], eax
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x8b0]
mov dword [ebp - 0x86c], ecx
mov edx, dword [ebp - 0x86c]
push edx
lea eax, [ebp - 0x218]
push eax
call fcn.0049d840
add esp, 8
push 0
mov ecx, dword [ebp - 0x834]
push ecx
mov edx, dword [ebp - 0x86c]
push edx
mov ecx, dword [ebp - 0x82c]
call fcn.0049b820
jmp 0x4987b7
call fcn.004b7d70
movzx eax, al
test eax, eax
je 0x498a80
push str.Shell32.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov dword [ebp - 0x850], eax
cmp dword [ebp - 0x850], 0
je 0x498a80
push str.SHGetKnownFolderPath
mov ecx, dword [ebp - 0x850]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x870], eax
mov dword [ebp - 0x844], 0
jmp 0x4988ec
mov edx, dword [ebp - 0x844]
add edx, 1
mov dword [ebp - 0x844], edx
cmp dword [ebp - 0x844], 2
jae 0x498a73
cmp dword [ebp - 0x870], 0
je 0x498a73
mov eax, 1
imul ecx, eax, 7
lea edx, [ebp + ecx - 0x234]
push edx
mov eax, 1
imul ecx, eax, 6
lea edx, [ebp + ecx - 0x234]
push edx
mov eax, 1
imul ecx, eax, 5
lea edx, [ebp + ecx - 0x234]
push edx
mov eax, 1
shl eax, 2
lea ecx, [ebp + eax - 0x234]
push ecx
mov edx, 1
imul eax, edx, 3
lea ecx, [ebp + eax - 0x234]
push ecx
mov edx, 1
shl edx, 1
lea eax, [ebp + edx - 0x234]
push eax
mov ecx, 1
shl ecx, 0
lea edx, [ebp + ecx - 0x234]
push edx
mov eax, 1
imul ecx, eax, 0
lea edx, [ebp + ecx - 0x234]
push edx
lea eax, [ebp - 0x236]
push eax
lea ecx, [ebp - 0x238]
push ecx
lea edx, [ebp - 0x23c]
push edx
push str._08x__04hx__04hx__02hhx_02hhx__02hhx_02hhx_02hhx_02hhx_02hhx_02hhx
mov eax, dword [ebp - 0x844]
mov ecx, dword [ebp + eax*4 - 0x8fc]
push ecx
call fcn.004b7d30
add esp, 0x34
xor edx, edx
jne 0x498906
lea eax, [ebp - 0x884]
push eax
push 0
push 0
lea ecx, [ebp - 0x23c]
push ecx
call dword [ebp - 0x870]
test eax, eax
jne 0x498a6e
push 0x40
call fcn.004d1f00
add esp, 4
mov dword [ebp - 0x8b4], eax
mov dword [ebp - 4], 3
mov ecx, dword [ebp - 0x8b4]
call fcn.004945f0
mov dword [ebp - 0x874], eax
jmp 0x498a11
mov edx, dword [ebp - 0x874]
mov dword [ebp - 0x8b8], edx
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x8b8]
mov dword [ebp - 0x878], eax
mov ecx, dword [ebp - 0x878]
push ecx
mov edx, dword [ebp - 0x884]
push edx
call fcn.0049d840
add esp, 8
push 0
mov eax, dword [ebp - 0x834]
push eax
mov ecx, dword [ebp - 0x878]
push ecx
mov ecx, dword [ebp - 0x82c]
call fcn.0049b820
mov edx, dword [ebp - 0x884]
push edx
call dword [sym.imp.ole32.dll_CoTaskMemFree]
jmp 0x4988dd
mov eax, dword [ebp - 0x850]
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
push 0
push 0
push 0
mov ecx, dword [ebp - 0x834]
push ecx
mov edx, dword [ebp - 0x82c]
mov ecx, dword [edx + 0xb64]
call dword [sym.imp.DuiLib.dll_public:_int___thiscall_DuiLib::CTreeViewExUI::SortChildren_struct_DuiLib::DTV_ITEM_INFO___int__int____stdcall___struct_DuiLib::DTV_ITEM_INFO___struct_DuiLib::DTV_ITEM_INFO___long_int___long_int_]
lea ecx, [ebp - 0x8f4]
call fcn.004279e0
mov dword [ebp - 4], 4
lea eax, [ebp - 0x8f4]
push eax
call fcn.0049ccb0
add esp, 4
lea ecx, [ebp - 0x854]
push ecx
lea ecx, [ebp - 0x8f4]
call fcn.00450740
jmp 0x498adf
lea ecx, [ebp - 0x854]
call fcn.004a1ab0
lea edx, [ebp - 0x900]
push edx
lea ecx, [ebp - 0x8f4]
call fcn.004506e0
push eax
lea ecx, [ebp - 0x854]
call fcn.004504b0
movzx eax, al
test eax, eax
je 0x498b28
push 0
mov ecx, dword [ebp - 0x834]
push ecx
lea ecx, [ebp - 0x854]
call fcn.004512d0
mov edx, dword [eax]
push edx
mov ecx, dword [ebp - 0x82c]
call fcn.0049b820
jmp 0x498ad4
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x8f4]
call fcn.00450b90
mov eax, dword [ebp - 0x858]
push eax
call dword [sym.imp.ole32.dll_CoTaskMemFree]
mov dword [ebp - 0x858], 0
mov dword [ebp - 0x85c], 0
lea ecx, [ebp - 0x838]
push ecx
mov edx, dword [ebp - 0x82c]
mov ecx, dword [edx + 0xae0]
add ecx, 0x1c
call fcn.00450740
jmp 0x498b83
lea ecx, [ebp - 0x838]
call fcn.004512b0
lea eax, [ebp - 0x904]
push eax
mov ecx, dword [ebp - 0x82c]
mov ecx, dword [ecx + 0xae0]
add ecx, 0x1c
call fcn.004506e0
push eax
lea ecx, [ebp - 0x838]
call fcn.004504b0
movzx edx, al
test edx, edx
je 0x498cf8
push 0xffffffffffffffff
mov eax, dword [ebp - 0x82c]
mov ecx, dword [eax + 0xb5c]
push ecx
mov ecx, dword [ebp - 0x82c]
call fcn.0049ba80
mov dword [ebp - 0x85c], eax
cmp dword [ebp - 0x85c], 0
jne 0x498be0
jmp 0x498b78
lea ecx, [ebp - 0x838]
call fcn.00450520
add eax, 0xc
mov ecx, eax
call fcn.004038a0
push eax
lea ecx, [ebp - 0x838]
call fcn.00450520
mov dl, byte [eax]
movzx eax, dl
push eax
lea ecx, [ebp - 0x838]
call fcn.00450520
add eax, 4
mov ecx, eax
call fcn.004038a0
push eax
mov ecx, dword [ebp - 0x85c]
push ecx
mov ecx, dword [ebp - 0x82c]
call fcn.0049bc20
lea ecx, [ebp - 0x838]
call fcn.00450520
add eax, 8
mov ecx, eax
call fcn.004038a0
push eax
lea ecx, [ebp - 0x2c0]
call fcn.00403920
mov dword [ebp - 0x8bc], eax
mov edx, dword [ebp - 0x8bc]
mov dword [ebp - 0x8c0], edx
mov dword [ebp - 4], 5
mov ecx, dword [ebp - 0x8c0]
call fcn.004038a0
push eax
lea ecx, [ebp - 0x880]
call fcn.00403710
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x2c0]
call fcn.00404960
push 0x100
push 1
call fcn.00493bd0
add esp, 8
push eax
lea ecx, [ebp - 0x880]
call fcn.004038a0
push eax
lea ecx, [ebp - 0x918]
call fcn.004a25f0
mov byte [ebp - 4], 8
lea eax, [ebp - 0x918]
push eax
mov ecx, dword [ebp - 0x82c]
add ecx, 0xb1c
call fcn.004a1820
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x918]
call fcn.004a25a0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x880]
call fcn.004036f0
jmp 0x498b78
mov ecx, dword [ebp - 0x82c]
mov ecx, dword [ecx + 0xae0]
add ecx, 0x1c
call fcn.004506b0
test eax, eax
jbe 0x498d3f
push 0
push 0
push 0
mov edx, dword [ebp - 0x82c]
mov eax, dword [edx + 0xb5c]
mov ecx, dword [ebp - 0x82c]
mov ecx, dword [ecx + 0xb5c]
add ecx, 0x848
mov edx, dword [eax + 0x848]
mov eax, dword [edx + 8]
call eax
mov ecx, dword [ebp - 0x82c]
mov ecx, dword [ecx + 0xb60]
call dword [sym.imp.DuiLib.dll_public:_class_DuiLib::CListHeaderUI____thiscall_DuiLib::CVListUI::GetHeader_void_const]
mov dword [ebp - 0x87c], eax
cmp dword [ebp - 0x87c], 0
je 0x498d6e
push 0
mov ecx, dword [ebp - 0x87c]
call dword [sym.imp.DuiLib.dll_public:_int___thiscall_DuiLib::CListHeaderUI::SetSortColumn_int_]
mov edx, dword [ebp - 0x82c]
mov ecx, dword [edx + 0xae0]
add ecx, 0x10
call fcn.004037d0
movzx eax, al
test eax, eax
je 0x498e31
mov ecx, dword [ebp - 0x82c]
call fcn.00498300
movzx ecx, al
test ecx, ecx
je 0x498df6
lea edx, [ebp - 0x8e8]
push edx
call fcn.0049c620
add esp, 4
mov dword [ebp - 0x8c4], eax
mov eax, dword [ebp - 0x8c4]
mov dword [ebp - 0x8c8], eax
mov dword [ebp - 4], 9
mov ecx, dword [ebp - 0x8c8]
push ecx
mov edx, dword [ebp - 0x82c]
mov ecx, dword [edx + 0xae0]
add ecx, 0x10
call fcn.00410ec0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x8e8]
call fcn.004036f0
jmp 0x498e31
push 0x104
mov eax, dword [ebp - 0x82c]
mov ecx, dword [eax + 0xae0]
add ecx, 0x10
call fcn.00405e80
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
push 0xffffffffffffffff
mov ecx, dword [ebp - 0x82c]
mov ecx, dword [ecx + 0xae0]
add ecx, 0x10
call fcn.004054f0
mov edx, dword [ebp - 0x82c]
mov ecx, dword [edx + 0xae0]
add ecx, 0x10
call fcn.004038a0
push eax
mov ecx, dword [ebp - 0x82c]
call fcn.00499ed0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004d181f
mov esp, ebp
pop ebp
ret