Function at 0x100919f0
Capabilities:
Get file system object information

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100fcbbc
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x320
mov eax, dword [0x1013c014]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x330], edi
mov ecx, dword [ebx + 8]
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x32c], ecx
push ecx
mov ecx, edi
mov dword [edi + 0x24], eax
call fcn.10079ed0
mov dword [ebp - 4], 0
call fcn.100215d0
mov ecx, eax
test ecx, ecx
je 0x10091fc7
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
lea esi, [eax + 0x10]
mov dword [ebp - 0x2e4], esi
mov edx, 0xdf0
mov dword [ebp - 4], 1
lea ecx, [ebp - 0x2ec]
call fcn.100aedf0
mov byte [ebp - 4], 2
lea ecx, [esi - 0x10]
mov edx, dword [eax]
mov dword [ebp - 0x2f0], ecx
lea eax, [edx - 0x10]
cmp eax, ecx
je 0x10091b14
lea eax, [ecx + 0xc]
mov dword [ebp - 0x2e8], eax
mov eax, dword [eax]
shr eax, 0x1f
test al, al
jne 0x10091aff
mov eax, dword [edx - 0x10]
cmp eax, dword [ecx]
jne 0x10091aff
lea ecx, [edx - 0x10]
call fcn.10021e50
mov dword [ebp - 0x2f4], eax
mov byte [ebp - 4], 3
or ecx, 0xffffffff
mov edx, dword [ebp - 0x2e8]
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x10091af4
mov esi, dword [ebp - 0x2f0]
push esi
mov ecx, dword [esi]
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x2f4]
lea esi, [eax + 0x10]
mov dword [ebp - 0x2e4], esi
jmp 0x10091b14
push dword [edx - 0xc]
lea ecx, [ebp - 0x2e4]
push edx
call fcn.10021eb0
mov esi, dword [ebp - 0x2e4]
mov edx, dword [ebp - 0x2ec]
add edx, 0xfffffff0
mov byte [ebp - 4], 4
or eax, 0xffffffff
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x10091b36
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0
mov byte [ebp - 4], 1
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push 0
push 0
push 0x31
push dword [edi + 4]
mov dword [ebp - 0x2e8], eax
call dword [sym.imp.USER32.dll_SendMessageW]
push eax
push dword [ebp - 0x2e8]
call dword [sym.imp.GDI32.dll_SelectObject]
lea ecx, [ebp - 0x2fc]
mov dword [ebp - 0x2ec], eax
push ecx
push dword [esi - 0xc]
lea eax, [esi - 0x10]
push esi
push dword [ebp - 0x2e8]
mov dword [ebp - 0x2f4], eax
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
test eax, eax
je 0x10091ba2
mov eax, dword [ebp - 0x2fc]
add eax, 0x14
mov dword [ebp - 0x2fc], eax
cmp eax, 0x32
jge 0x10091bac
mov dword [ebp - 0x2fc], 0x32
push dword [ebp - 0x2ec]
push dword [ebp - 0x2e8]
call dword [sym.imp.GDI32.dll_SelectObject]
push dword [ebp - 0x2e8]
call dword [sym.imp.GDI32.dll_DeleteDC]
mov eax, dword [ebp - 0x2fc]
xorps xmm0, xmm0
mov dword [ebp - 0x320], eax
lea eax, [ebp - 0x328]
push eax
push 0
push 0x1061
push dword [edi + 4]
mov dword [ebp - 0x328], 6
mov dword [ebp - 0x324], 0
mov dword [ebp - 0x31c], esi
movups xmmword [ebp - 0x318], xmm0
mov dword [ebp - 0x300], 0
movq qword [ebp - 0x308], xmm0
call dword [sym.imp.USER32.dll_SendMessageW]
mov edx, 0xdf1
lea ecx, [ebp - 0x2f0]
call fcn.100aedf0
mov byte [ebp - 4], 5
mov edx, dword [eax]
lea eax, [esi - 0x10]
lea ecx, [edx - 0x10]
cmp ecx, eax
je 0x10091ca5
mov esi, dword [ebp - 0x2f4]
mov eax, dword [esi + 0xc]
shr eax, 0x1f
test al, al
jne 0x10091c90
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x10091c90
call fcn.10021e50
mov dword [ebp - 0x2ec], eax
mov byte [ebp - 4], 6
lea edx, [esi + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x10091c85
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x2ec]
lea esi, [eax + 0x10]
mov dword [ebp - 0x2e4], esi
jmp 0x10091ca5
push dword [edx - 0xc]
lea ecx, [ebp - 0x2e4]
push edx
call fcn.10021eb0
mov esi, dword [ebp - 0x2e4]
mov edx, dword [ebp - 0x2f0]
add edx, 0xfffffff0
mov byte [ebp - 4], 7
or eax, 0xffffffff
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x10091cc7
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 1
lea eax, [ebp - 0x328]
push eax
push 1
push 0x1061
push dword [edi + 4]
xorps xmm0, xmm0
mov dword [ebp - 0x328], 6
mov dword [ebp - 0x324], 0
mov dword [ebp - 0x320], 0x12c
mov dword [ebp - 0x31c], esi
movups xmmword [ebp - 0x318], xmm0
mov dword [ebp - 0x300], 0
movq qword [ebp - 0x308], xmm0
call dword [sym.imp.USER32.dll_SendMessageW]
mov edx, 0xdf2
lea ecx, [ebp - 0x2e8]
call fcn.100aedf0
mov byte [ebp - 4], 8
lea ecx, [esi - 0x10]
mov edx, dword [eax]
mov dword [ebp - 0x2f4], ecx
lea eax, [edx - 0x10]
cmp eax, ecx
je 0x10091db9
lea eax, [ecx + 0xc]
mov dword [ebp - 0x2ec], eax
mov eax, dword [eax]
shr eax, 0x1f
test al, al
jne 0x10091da4
mov eax, dword [edx - 0x10]
cmp eax, dword [ecx]
jne 0x10091da4
lea ecx, [edx - 0x10]
call fcn.10021e50
mov dword [ebp - 0x2f0], eax
mov byte [ebp - 4], 9
or ecx, 0xffffffff
mov edx, dword [ebp - 0x2ec]
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x10091d99
mov esi, dword [ebp - 0x2f4]
push esi
mov ecx, dword [esi]
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x2f0]
lea esi, [eax + 0x10]
mov dword [ebp - 0x2e4], esi
jmp 0x10091db9
push dword [edx - 0xc]
lea ecx, [ebp - 0x2e4]
push edx
call fcn.10021eb0
mov esi, dword [ebp - 0x2e4]
mov edx, dword [ebp - 0x2e8]
add edx, 0xfffffff0
mov byte [ebp - 4], 0xa
or eax, 0xffffffff
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x10091ddb
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp - 0x328]
mov dword [ebp - 0x328], 6
push eax
push 2
push 0x1061
push dword [edi + 4]
xorps xmm0, xmm0
mov dword [ebp - 0x324], 0
mov dword [ebp - 0x320], 0xc8
mov dword [ebp - 0x31c], esi
movups xmmword [ebp - 0x318], xmm0
mov dword [ebp - 0x300], 0
movq qword [ebp - 0x308], xmm0
call dword [sym.imp.USER32.dll_SendMessageW]
push 0x10021
push 0
push 0x1036
push dword [edi + 4]
call dword [sym.imp.USER32.dll_SendMessageW]
push 0x31
call dword [sym.imp.USER32.dll_GetSystemMetrics]
push 0x10
push 1
push 0x2021
push eax
push eax
call dword [sym.imp.COMCTL32.dll_ImageList_Create]
push eax
push 1
push 0x1003
push dword [edi + 4]
mov dword [edi + 0x2c], eax
call dword [sym.imp.USER32.dll_SendMessageW]
push 0x111
push 0x2b4
lea eax, [ebp - 0x2e0]
push eax
push 0x80
push str.file
call dword [sym.imp.SHELL32.dll_SHGetFileInfoW]
test eax, eax
je 0x10091eb6
push dword [ebp - 0x2e0]
push 0xffffffffffffffff
push dword [edi + 0x2c]
call dword [sym.imp.COMCTL32.dll_ImageList_ReplaceIcon]
push dword [ebp - 0x2e0]
call dword [sym.imp.USER32.dll_DestroyIcon]
call dword [sym.imp.UxTheme.dll_IsAppThemed]
test eax, eax
setne cl
mov byte [edi + 0x39], cl
test eax, eax
je 0x10091ed8
push 0
push str.Explorer
push dword [edi + 4]
call dword [sym.imp.UxTheme.dll_SetWindowTheme]
mov edi, dword [0x1013c950]
mov ecx, dword [0x1013c958]
mov edx, dword [0x1013c94c]
sub ecx, edi
mov eax, dword [0x1013c954]
push 0
push dword [0x1014a874]
sub eax, edx
push 0
push dword [ebp - 0x32c]
push ecx
push eax
push edi
push edx
push 0x40200003
push 0
push str.ComboBox
push 0
call dword [sym.imp.USER32.dll_CreateWindowExW]
mov edi, dword [ebp - 0x330]
push 0
push 0
push 0x31
mov dword [edi + 0x28], eax
push dword [edi + 4]
call dword [sym.imp.USER32.dll_SendMessageW]
push 1
push eax
push 0x30
push dword [edi + 0x28]
call dword [sym.imp.USER32.dll_SendMessageW]
lea eax, [ebp - 0x24]
push eax
push dword [edi + 0x28]
call dword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [ebp - 0x18]
sub eax, dword [ebp - 0x20]
push 1
push 1
push 0
push eax
push 2
call dword [sym.imp.COMCTL32.dll_ImageList_Create]
push eax
push 2
push 0x1003
push dword [edi + 4]
call dword [sym.imp.USER32.dll_SendMessageW]
push dword [edi + 0x28]
call dword [sym.imp.USER32.dll_DestroyWindow]
test eax, eax
je 0x10091f88
mov dword [edi + 0x28], 0
add esi, 0xfffffff0
mov dword [ebp - 4], 0xb
or eax, 0xffffffff
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x10091fa7
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.100d4906
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 8
push 0x80004005
call fcn.10013970
int3