Function at 0x651b64
Capabilities:
Get file system object information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xe3c
push esi
push edi
push ecx
lea edi, [ebp - 0xe3c]
mov ecx, 0x38f
mov eax, 0xcccccccc
rep stosd dword es:[edi], eax
pop ecx
mov eax, dword [0x782e08]
xor eax, ebp
mov dword [ebp - 4], eax
mov dword [ebp - 8], ecx
push 0x273
push str.f:dd_vctools_vc7libs_ship_atlmfc_srcmfc_afxshelllistctrl.cpp
mov eax, dword [ebp - 8]
push eax
call fcn.00457b70
mov ecx, dword [ebp + 8]
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp + 0xc]
mov dword [ebp - 0x10], edx
cmp dword [ebp - 0xc], 0
je 0x651a3d
mov dword [ebp - 0xe24], 1
jmp 0x651a47
mov dword [ebp - 0xe24], 0
mov eax, dword [ebp - 0xe24]
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
jne 0x651a6a
push 0x277
push str.f:dd_vctools_vc7libs_ship_atlmfc_srcmfc_afxshelllistctrl.cpp
call fcn.00442350
test eax, eax
je 0x651a6a
int3
cmp dword [ebp - 0x14], 0
jne 0x651a75
call fcn.00437a10
xor edx, edx
jne 0x651a2b
cmp dword [ebp - 0x10], 0
je 0x651a8b
mov dword [ebp - 0xe28], 1
jmp 0x651a95
mov dword [ebp - 0xe28], 0
mov eax, dword [ebp - 0xe28]
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0
jne 0x651ab8
push 0x278
push str.f:dd_vctools_vc7libs_ship_atlmfc_srcmfc_afxshelllistctrl.cpp
call fcn.00442350
test eax, eax
je 0x651ab8
int3
cmp dword [ebp - 0x18], 0
jne 0x651ac3
call fcn.00437a10
xor edx, edx
jne 0x651a79
lea ecx, [ebp - 0xbe0]
call fcn.0045f9f0
lea ecx, [ebp - 0xe14]
call fcn.0045f9f0
mov dword [ebp - 0xe1c], 0
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0xe2c], eax
cmp dword [ebp - 0xe2c], 3
ja case.default.0x651b03
mov ecx, dword [ebp - 0xe2c]
jmp dword [ecx*4 + 0x651e5c]
mov esi, esp
mov edx, dword [ebp - 0x10]
mov eax, dword [edx + 8]
push eax
mov ecx, dword [ebp - 0xc]
mov edx, dword [ecx + 8]
push edx
push 0
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax]
mov edx, dword [ebp - 0xc]
mov eax, dword [edx]
mov ecx, dword [ecx]
push eax
mov edx, dword [ecx + 0x1c]
call edx
cmp esi, esp
call fcn.006c7eb0
mov dword [ebp - 0xe20], eax
cmp dword [ebp - 0xe20], 0
jge 0x651b4b
xor eax, eax
jmp 0x651db5
mov eax, dword [ebp - 0xe20]
and eax, 0xffff
movsx ecx, ax
mov dword [ebp - 0xe1c], ecx
jmp case.default.0x651b03
mov esi, esp
push 0x408
push 0x2b4
lea edx, [ebp - 0x2d0]
push edx
push 0
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax + 4]
push ecx
call dword [sym.imp.SHELL32.dll_SHGetFileInfoW]
cmp esi, esp
call fcn.006c7eb0
test eax, eax
je 0x651be1
mov esi, esp
push 0x408
push 0x2b4
lea edx, [ebp - 0x58c]
push edx
push 0
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 4]
push ecx
call dword [sym.imp.SHELL32.dll_SHGetFileInfoW]
cmp esi, esp
call fcn.006c7eb0
test eax, eax
je 0x651be1
mov esi, esp
lea edx, [ebp - 0x378]
push edx
lea eax, [ebp - 0xbc]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
cmp esi, esp
call fcn.006c7eb0
mov dword [ebp - 0xe1c], eax
jmp case.default.0x651b03
mov esi, esp
lea ecx, [ebp - 0x79c]
push ecx
mov edx, dword [ebp - 0xc]
mov eax, dword [edx + 4]
push eax
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListW]
cmp esi, esp
call fcn.006c7eb0
test eax, eax
je 0x651da5
push 0
lea ecx, [ebp - 0xbe0]
push ecx
lea edx, [ebp - 0x79c]
push edx
call fcn.00573390
test eax, eax
je 0x651da5
mov esi, esp
lea eax, [ebp - 0x9ac]
push eax
mov ecx, dword [ebp - 0x10]
mov edx, dword [ecx + 4]
push edx
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListW]
cmp esi, esp
call fcn.006c7eb0
test eax, eax
je 0x651d99
push 0
lea eax, [ebp - 0xe14]
push eax
lea ecx, [ebp - 0x9ac]
push ecx
call fcn.00573390
test eax, eax
je 0x651d99
cmp dword [ebp + 0x10], 1
jne 0x651d1d
mov edx, dword [ebp - 0xbc0]
and edx, 0x10
je 0x651c8e
mov dword [ebp - 0xe1c], 0xffffffff
jmp 0x651d1b
mov eax, dword [ebp - 0xdf4]
and eax, 0x10
je 0x651ca5
mov dword [ebp - 0xe1c], 1
jmp 0x651d1b
mov ecx, dword [ebp - 0xbc4]
cmp ecx, dword [ebp - 0xdf8]
ja 0x651ccf
jb 0x651cc3
mov edx, dword [ebp - 0xbc8]
cmp edx, dword [ebp - 0xdfc]
jae 0x651ccf
mov dword [ebp - 0xe30], 0xffffffff
jmp 0x651d0f
mov eax, dword [ebp - 0xbc4]
cmp eax, dword [ebp - 0xdf8]
jb 0x651cf9
ja 0x651ced
mov ecx, dword [ebp - 0xbc8]
cmp ecx, dword [ebp - 0xdfc]
jbe 0x651cf9
mov dword [ebp - 0xe34], 1
jmp 0x651d03
mov dword [ebp - 0xe34], 0
mov edx, dword [ebp - 0xe34]
mov dword [ebp - 0xe30], edx
mov eax, dword [ebp - 0xe30]
mov dword [ebp - 0xe1c], eax
jmp 0x651d97
mov ecx, dword [ebp - 0xe08]
push ecx
mov edx, dword [ebp - 0xe0c]
push edx
lea ecx, [ebp - 0xbd8]
call fcn.006506d0
movzx eax, al
test eax, eax
je 0x651d49
mov dword [ebp - 0xe38], 0xffffffff
jmp 0x651d8b
mov ecx, dword [ebp - 0xe08]
push ecx
mov edx, dword [ebp - 0xe0c]
push edx
lea ecx, [ebp - 0xbd8]
call fcn.00650730
movzx eax, al
test eax, eax
je 0x651d75
mov dword [ebp - 0xe3c], 1
jmp 0x651d7f
mov dword [ebp - 0xe3c], 0
mov ecx, dword [ebp - 0xe3c]
mov dword [ebp - 0xe38], ecx
mov edx, dword [ebp - 0xe38]
mov dword [ebp - 0xe1c], edx
jmp 0x651da3
mov dword [ebp - 0xe1c], 1
jmp case.default.0x651b03
mov dword [ebp - 0xe1c], 0xffffffff
mov eax, dword [ebp - 0xe1c]
push edx
mov ecx, ebp
push eax
lea edx, [0x651de8]
call fcn.006c7e50
pop eax
pop edx
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.006c31f0
add esp, 0xe3c
cmp ebp, esp
call fcn.006c7eb0
mov esp, ebp
pop ebp
ret 0xc