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

Disassembly:
sub esp, 0x2d0
push ebx
push ebp
push esi
push edi
push dword [0x7c8c14]
call fcn.005b07a8
xor esi, esi
mov dword [esp + 0x18], eax
cmp dword [0x7c6518], esi
jne 0x58f81c
push esi
call dword [sym.imp.ole32.dll_CoInitialize]
push 1
call fcn.00594885
push str.My_Documents
push 0x7c6520
mov dword [0x7c6d44], eax
call sub.MSVCRT.dll_wcscpy
push str.My_Computer
push 0x7c6b38
call sub.MSVCRT.dll_wcscpy
mov ebp, dword [sym.imp.SHELL32.dll_SHGetSpecialFolderLocation]
lea eax, [esp + 0x20]
add esp, 0x10
push eax
push 5
push esi
call ebp
mov edi, dword [sym.imp.SHELL32.dll_SHGetFileInfoW]
mov ebx, dword [sym.imp.ole32.dll_CoTaskMemFree]
test eax, eax
jne 0x58f6ab
push 0x7c6728
push dword [esp + 0x14]
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListW]
mov dword [0x7c6d48], eax
test eax, eax
je 0x58f6a3
push 0x4009
push 0x2b4
lea eax, [esp + 0x34]
push eax
push esi
push dword [esp + 0x20]
call edi
test eax, eax
jne 0x58f629
push 0x4001
push 0x2b4
lea eax, [esp + 0x34]
push eax
push esi
push str.::450d8fba_ad25_11d0_98a8_0800361b1103
call edi
test eax, eax
jne 0x58f629
push 0x4001
push 0x2b4
lea eax, [esp + 0x34]
push eax
push esi
push 0x7c6728
call edi
test eax, eax
je 0x58f634
mov eax, dword [esp + 0x30]
mov dword [0x7c651c], eax
jmp 0x58f63a
mov dword [0x7c6d48], esi
push 0x208
push 0x2b4
lea eax, [esp + 0x34]
push eax
push esi
push dword [esp + 0x20]
call edi
test eax, eax
jne 0x58f68a
push 0x200
push 0x2b4
lea eax, [esp + 0x34]
push eax
push esi
push str.::450d8fba_ad25_11d0_98a8_0800361b1103
call edi
test eax, eax
jne 0x58f68a
push 0x200
push 0x2b4
lea eax, [esp + 0x34]
push eax
push esi
push 0x7c6728
call edi
test eax, eax
je 0x58f69d
lea eax, [esp + 0x38]
push eax
push 0x7c6520
call sub.MSVCRT.dll_wcscpy
pop ecx
pop ecx
jmp 0x58f6a3
mov dword [0x7c6d48], esi
push dword [esp + 0x10]
call ebx
jmp 0x58f6b1
mov dword [0x7c6d48], esi
push 0x7c6728
call sub.MSVCRT.dll_wcslen
pop ecx
cmp word [eax*2 + 0x7c6726], 0x5c
je 0x58f6d8
push 0x705e38
push 0x7c6728
call sub.MSVCRT.dll_wcscat
pop ecx
pop ecx
push 0x7c6728
mov esi, 0x7c6930
push esi
call sub.MSVCRT.dll_wcscpy
cmp word [0x7c6930], 0
pop ecx
pop ecx
je 0x58f711
xor ebp, ebp
movzx eax, word [esi]
push eax
call sub.MSVCRT.dll_tolower
mov word [esi], ax
lea esi, [esi + 2]
pop ecx
cmp word [esi], bp
jne 0x58f6f6
mov ebp, dword [sym.imp.SHELL32.dll_SHGetSpecialFolderLocation]
lea eax, [esp + 0x14]
xor esi, esi
push eax
push 0x11
push esi
call ebp
test eax, eax
lea eax, [esp + 0x2c]
jne 0x58f774
push 0x4009
mov ebp, 0x2b4
push ebp
push eax
push esi
push dword [esp + 0x24]
call edi
test eax, eax
je 0x58f745
mov eax, dword [esp + 0x30]
mov dword [0x7c6d40], eax
push 0x208
push ebp
lea eax, [esp + 0x34]
push eax
push esi
push dword [esp + 0x24]
call edi
test eax, eax
je 0x58f76c
lea eax, [esp + 0x38]
push eax
push 0x7c6b38
call sub.MSVCRT.dll_wcscpy
pop ecx
pop ecx
push dword [esp + 0x14]
call ebx
jmp 0x58f7ba
push 0x4001
mov ebx, 0x2b4
mov ebp, str.::20D04FE0_3AEA_1069_A2D8_08002B30309D
push ebx
push eax
push esi
push ebp
call edi
test eax, eax
je 0x58f796
mov eax, dword [esp + 0x30]
mov dword [0x7c6d40], eax
push 0x200
push ebx
lea eax, [esp + 0x34]
push eax
push esi
push ebp
call edi
test eax, eax
je 0x58f7ba
lea eax, [esp + 0x38]
push eax
push 0x7c6b38
call sub.MSVCRT.dll_wcscpy
pop ecx
pop ecx
mov esi, 0xa4
xor eax, eax
push esi
push eax
push 0x7c6d50
call sub.MSVCRT.dll_memset
add esp, 0xc
mov dword [0x7c6d50], 0x19
mov dword [0x7c6d54], esi
mov dword [0x7c6d58], 0x58ec4e
mov dword [0x7c6d5c], 0x58ee0f
mov dword [0x7c6d6c], 0x58ee94
mov dword [0x7c6d68], 0x58ee27
mov dword [0x7c6d80], 0x58ee4e
mov dword [0x7c6518], 1
mov edi, dword [esp + 0x2fc]
lea eax, [esp + 0x2f4]
push eax
and edi, 0x100
lea eax, [esp + 0x2f4]
push eax
mov esi, edi
lea eax, [esp + 0x2f4]
neg esi
push eax
sbb esi, esi
lea eax, [esp + 0x2f4]
and esi, 0xfffeffff
push eax
add esi, 0x50010003
call fcn.0059bf49
xor eax, eax
push eax
push dword [0x7c187c]
mov eax, dword [esp + 0x20]
push 0xffffffffffffffff
push dword [eax]
push 0x15e
push dword [esp + 0x304]
push dword [esp + 0x304]
push dword [esp + 0x304]
push esi
xor esi, esi
push esi
push str.ComboBoxEx32
push esi
call dword [sym.imp.USER32.dll_CreateWindowExW]
mov ebx, eax
test ebx, ebx
je 0x58f9c8
mov ebp, dword [sym.imp.USER32.dll_SendMessageW]
test edi, edi
je 0x58f91f
push esi
push esi
push 0x407
push ebx
call ebp
mov edi, eax
mov eax, dword [0x7c6d4c]
test eax, eax
jne 0x58f8ef
push str.shlwapi.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
test eax, eax
je 0x58f8e6
push str.SHAutoComplete
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x7c6d4c], eax
jmp 0x58f8eb
mov eax, dword [0x7c6d4c]
test eax, eax
je 0x58f8f4
push 1
push edi
call eax
mov esi, dword [sym.imp.USER32.dll_SetWindowLongW]
push 0x58eb88
push 0xfffffffffffffffc
push edi
call esi
push 0xfffffffffffffff0
push edi
mov dword [0x7c6df4], eax
call dword [sym.imp.USER32.dll_GetWindowLongW]
or eax, 0x10000
push eax
push 0xfffffffffffffff0
push edi
call esi
xor esi, esi
push dword [0x7c6d44]
push esi
push 0x402
push ebx
call ebp
push dword [esp + 0x2e4]
push dword [0x7c8afc]
call fcn.005b0986
mov esi, eax
mov eax, dword [esp + 0x2fc]
push 0x208
push 8
mov dword [esi + 0x10], eax
push dword [0x7c1878]
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
push 0x7c6d50
push ebx
push esi
push dword [esp + 0x2f0]
mov dword [esi + 0x14], eax
call fcn.00591993
or dword [0x7bc330], 0xffffffff
mov edi, 0x153
push 0xf
push 0xffffffffffffffff
push edi
push dword [esi]
mov ebx, eax
call ebp
lea eax, [esp + 0x1c]
push eax
push dword [esi]
call dword [sym.imp.USER32.dll_GetWindowRect]
mov ecx, dword [esp + 0x28]
sub ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x2f4]
sub ecx, 0xf
sub eax, ecx
mov dword [0x7bc330], ecx
push eax
push 0xffffffffffffffff
push edi
push dword [esi]
call ebp
push dword [esp + 0x2f8]
push esi
call fcn.0058ee94
pop edi
pop esi
pop ebp
mov eax, ebx
pop ebx
add esp, 0x2d0
ret 0x1c