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

Disassembly:
sub esp, 0x4c4
push ebx
mov ebx, dword [sym.imp.USER32.dll_SendMessageW]
push ebp
push esi
mov esi, eax
xor ebp, ebp
cmp dword [esi + 0x2cc], ebp
push edi
mov edi, dword [sym.imp.USER32.dll_GetDC]
je 0x461ae7
cmp dword [esi + 0x2d4], ebp
je 0x461a87
push 0x2b0
lea eax, [esp + 0x228]
push ebp
push eax
mov dword [esp + 0x22c], ebp
call sub.msvcrt.dll_memset
push 0x208
lea ecx, [esp + 0x26]
push ebp
push ecx
mov word [esp + 0x2c], bp
call sub.msvcrt.dll_memset
add esp, 0x18
push 0x104
lea edx, [esp + 0x18]
push edx
call dword [sym.imp.KERNEL32.DLL_GetWindowsDirectoryW]
push 0x4001
push 0x2b4
lea eax, [esp + 0x228]
push eax
push ebp
lea ecx, [esp + 0x24]
push ecx
call dword [sym.imp.SHELL32.dll_SHGetFileInfoW]
mov dword [esi + 0x2c0], eax
push eax
jmp 0x461ad7
push ebp
call edi
push 0x5a
push eax
mov dword [esp + 0x18], eax
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
mov ebp, eax
mov eax, dword [esp + 0x10]
push eax
push 0
call dword [sym.imp.USER32.dll_ReleaseDC]
shl ebp, 4
mov eax, 0xaaaaaaab
mul ebp
push 1
push 1
shr edx, 6
push 0x19
push edx
push edx
call dword [sym.imp.COMCTL32.dll_ImageList_Create]
push 1
push eax
mov dword [esi + 0x2c0], eax
call dword [sym.imp.COMCTL32.dll_ImageList_SetImageCount]
mov ecx, dword [esi + 0x2c0]
push ecx
mov edx, dword [esi + 0x2b8]
push 1
push 0x1003
push edx
call ebx
cmp dword [esi + 0x2d0], 0
je 0x461b51
push 0
call edi
push 0x5a
push eax
mov dword [esp + 0x18], eax
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
mov ebp, eax
mov eax, dword [esp + 0x10]
push eax
push 0
call dword [sym.imp.USER32.dll_ReleaseDC]
shl ebp, 5
mov eax, 0xaaaaaaab
mul ebp
push 1
push 1
shr edx, 6
push 0x19
push edx
push edx
call dword [sym.imp.COMCTL32.dll_ImageList_Create]
push 1
push eax
mov dword [esi + 0x2c4], eax
call dword [sym.imp.COMCTL32.dll_ImageList_SetImageCount]
mov ecx, dword [esi + 0x2c4]
mov edx, dword [esi + 0x2b8]
push ecx
push 0
push 0x1003
push edx
call ebx
push 0
call edi
mov ebp, eax
push 0x5a
push ebp
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
push ebp
push 0
mov edi, eax
call dword [sym.imp.USER32.dll_ReleaseDC]
shl edi, 4
mov eax, 0xaaaaaaab
mul edi
push 1
push 1
mov edi, edx
push 0x19
shr edi, 6
push edi
push edi
call dword [sym.imp.COMCTL32.dll_ImageList_Create]
push 0
mov dword [esi + 0x2bc], eax
call dword [sym.imp.KERNEL32.DLL_GetModuleHandleW]
push 0x1000
push edi
push edi
push 0
push 0x85
push eax
call dword [sym.imp.USER32.dll_LoadImageW]
push 0
mov ebp, eax
call dword [sym.imp.KERNEL32.DLL_GetModuleHandleW]
push 0x1000
push edi
push edi
push 0
push 0x86
push eax
call dword [sym.imp.USER32.dll_LoadImageW]
mov edi, eax
mov eax, dword [esi + 0x2bc]
push 0
push eax
call dword [sym.imp.COMCTL32.dll_ImageList_SetImageCount]
push 0xf
call dword [sym.imp.USER32.dll_GetSysColor]
mov ecx, dword [esi + 0x2bc]
push eax
push ebp
push ecx
mov dword [esp + 0x1c], eax
call dword [sym.imp.COMCTL32.dll_ImageList_AddMasked]
mov edx, dword [esp + 0x10]
mov eax, dword [esi + 0x2bc]
push edx
push edi
push eax
call dword [sym.imp.COMCTL32.dll_ImageList_AddMasked]
push ebp
mov ebp, dword [sym.imp.GDI32.dll_DeleteObject]
call ebp
push edi
call ebp
mov edi, dword [esi + 0x2bc]
mov esi, dword [esi + 0x2b8]
push 0
push 0
push 0x101f
push esi
call ebx
push edi
push 0
push 0x1208
push eax
call ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4c4
ret