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

Disassembly:
sub esp, 0x2cc
push ebx
push ebp
push esi
push edi
push dword [0x7ea840]
call fcn.0058c83f
xor edi, edi
mov ebp, eax
cmp dword [0x7e6e94], edi
jne 0x5646ea
push edi
call dword [sym.imp.ole32.dll_CoInitialize]
push 1
call fcn.005710c6
push str.My_Documents
push 0x7e6668
mov dword [0x7e6e90], eax
call fcn.0067fc08
push str.My_Computer
push 0x7e6c80
call fcn.0067fc08
add esp, 0x10
lea eax, [esp + 0x10]
push eax
push 5
push edi
call sub.SHELL32.dll_SHGetSpecialFolderLocation
mov esi, dword [sym.imp.SHELL32.dll_SHGetFileInfoW]
mov ebx, dword [sym.imp.ole32.dll_CoTaskMemFree]
test eax, eax
jne 0x564565
push 0x7e6870
push dword [esp + 0x14]
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListW]
mov dword [0x7e6e98], eax
test eax, eax
je 0x56455d
push 0x4009
push 0x2b4
lea eax, [esp + 0x30]
push eax
push edi
push dword [esp + 0x20]
call esi
test eax, eax
jne 0x5644eb
push 0x4001
push 0x2b4
lea eax, [esp + 0x30]
push eax
push edi
push str.::450d8fba_ad25_11d0_98a8_0800361b1103
call esi
test eax, eax
jne 0x5644eb
push 0x4001
push 0x2b4
lea eax, [esp + 0x30]
push eax
push edi
push 0x7e6870
call esi
test eax, eax
jne 0x5644eb
mov dword [0x7e6e98], edi
jmp 0x5644f4
mov eax, dword [esp + 0x2c]
mov dword [0x7e6e88], eax
push 0x208
push 0x2b4
lea eax, [esp + 0x30]
push eax
push edi
push dword [esp + 0x20]
call esi
test eax, eax
jne 0x56454c
push 0x200
push 0x2b4
lea eax, [esp + 0x30]
push eax
push edi
push str.::450d8fba_ad25_11d0_98a8_0800361b1103
call esi
test eax, eax
jne 0x56454c
push 0x200
push 0x2b4
lea eax, [esp + 0x30]
push eax
push edi
push 0x7e6870
call esi
test eax, eax
jne 0x56454c
mov dword [0x7e6e98], edi
jmp 0x56455d
lea eax, [esp + 0x34]
push eax
push 0x7e6668
call fcn.0067fc08
pop ecx
pop ecx
push dword [esp + 0x10]
call ebx
jmp 0x56456b
mov dword [0x7e6e98], edi
push 0x7e6870
call fcn.005236eb
pop ecx
cmp word [eax*2 + 0x7e686e], 0x5c
je 0x564592
push 0x69a0b0
push 0x7e6870
call fcn.0067fc2a
pop ecx
pop ecx
push 0x7e6870
mov edi, 0x7e6a78
push edi
call fcn.0067fc08
mov ax, word [0x7e6a78]
pop ecx
pop ecx
test ax, ax
je 0x5645cc
movzx ecx, ax
movzx eax, cx
push eax
call fcn.006890c7
mov word [edi], ax
lea edi, [edi + 2]
movzx eax, word [edi]
pop ecx
mov ecx, eax
test ax, ax
jne 0x5645b2
lea eax, [esp + 0x14]
xor edi, edi
push eax
push 0x11
push edi
call sub.SHELL32.dll_SHGetSpecialFolderLocation
test eax, eax
lea eax, [esp + 0x28]
jne 0x56463b
push 0x4009
push 0x2b4
push eax
push edi
push dword [esp + 0x24]
call esi
mov ecx, dword [0x7e6e8c]
test eax, eax
push 0x208
cmovne ecx, dword [esp + 0x30]
lea eax, [esp + 0x2c]
push 0x2b4
push eax
push edi
push dword [esp + 0x24]
mov dword [0x7e6e8c], ecx
call esi
test eax, eax
je 0x564633
lea eax, [esp + 0x34]
push eax
push 0x7e6c80
call fcn.0067fc08
pop ecx
pop ecx
push dword [esp + 0x14]
call ebx
jmp 0x56468a
push 0x4001
mov ebx, 0x2b4
push ebx
push eax
push edi
mov edi, str.::20D04FE0_3AEA_1069_A2D8_08002B30309D
push edi
call esi
mov ecx, dword [0x7e6e8c]
test eax, eax
push 0x200
cmovne ecx, dword [esp + 0x30]
lea eax, [esp + 0x2c]
push ebx
push eax
push 0
push edi
mov dword [0x7e6e8c], ecx
call esi
test eax, eax
je 0x564688
lea eax, [esp + 0x34]
push eax
push 0x7e6c80
call fcn.0067fc08
pop ecx
pop ecx
xor edi, edi
mov esi, 0xa8
push esi
push edi
push 0x7e6ea0
call fcn.0052bb00
add esp, 0xc
mov dword [0x7e6ea0], 0x19
mov dword [0x7e6ea4], esi
mov dword [0x7e6ea8], 0x563acf
mov dword [0x7e6eac], 0x563c99
mov dword [0x7e6ebc], 0x563d1e
mov dword [0x7e6eb8], 0x563cb1
mov dword [0x7e6ed0], 0x563cd8
mov dword [0x7e6e94], 1
mov esi, dword [esp + 0x2f8]
lea eax, [esp + 0x2f0]
push eax
lea eax, [esp + 0x2f0]
push eax
lea eax, [esp + 0x2f0]
push eax
lea eax, [esp + 0x2f0]
push eax
call fcn.00577381
push edi
push dword [0x7e42f4]
mov ecx, 0x50010003
and esi, 0x100
push 0xffffffffffffffff
push dword [ebp]
mov eax, 0x50000002
push 0x15e
push dword [esp + 0x300]
cmove eax, ecx
push dword [esp + 0x300]
push dword [esp + 0x300]
push eax
push edi
push 0x6b48a8
push edi
call dword [sym.imp.USER32.dll_CreateWindowExW]
mov ebx, eax
test ebx, ebx
je 0x56488a
mov ebp, dword [sym.imp.USER32.dll_SendMessageW]
test esi, esi
je 0x5647e1
push edi
push edi
push 0x407
push ebx
call ebp
mov edi, eax
mov eax, dword [0x7e6e9c]
test eax, eax
jne 0x5647b1
push str.shlwapi.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
test eax, eax
je 0x5647a8
push str.SHAutoComplete
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x7e6e9c], eax
jmp 0x5647ad
mov eax, dword [0x7e6e9c]
test eax, eax
je 0x5647b6
push 1
push edi
call eax
mov esi, dword [sym.imp.USER32.dll_SetWindowLongW]
push 0x563a07
push 0xfffffffffffffffc
push edi
call esi
push 0xfffffffffffffff0
push edi
mov dword [0x7e6f48], eax
call dword [sym.imp.USER32.dll_GetWindowLongW]
or eax, 0x10000
push eax
push 0xfffffffffffffff0
push edi
call esi
xor edi, edi
push dword [0x7e6e90]
push edi
push 0x402
push ebx
call ebp
push dword [esp + 0x2e0]
push dword [0x7ea844]
call fcn.0058c8cf
mov esi, eax
mov eax, dword [esp + 0x2f8]
push 0x208
push 8
mov dword [esi + 0x10], eax
push dword [0x7e42f8]
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
push 0x7e6ea0
push ebx
push esi
push dword [esp + 0x2ec]
mov dword [esi + 0x14], eax
call fcn.0056cf49
or dword [0x7deaec], 0xffffffff
mov edi, 0x153
push 0xf
push 0xffffffffffffffff
push edi
push dword [esi]
mov ebx, eax
call ebp
lea eax, [esp + 0x18]
push eax
push dword [esi]
call dword [sym.imp.USER32.dll_GetWindowRect]
mov ecx, dword [esp + 0x24]
sub ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x2f0]
add ecx, 0xfffffff1
sub eax, ecx
mov dword [0x7deaec], ecx
push eax
push 0xffffffffffffffff
push edi
push dword [esi]
call ebp
push dword [esp + 0x2f4]
push esi
call fcn.00563d1e
pop edi
pop esi
pop ebp
mov eax, ebx
pop ebx
add esp, 0x2cc
ret 0x1c