Function at 0x45da80
Capabilities:
Get file system object information

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffff174
cmp dword [0x4c988c], 0
push ebx
push esi
push edi
lea edi, [ebp - 0x30]
mov ebx, eax
je 0x45daa1
mov edx, str.ArcSort
jmp 0x45daa6
mov edx, str.FileSort
mov eax, 0x4aaeb7
xor ecx, ecx
call fcn.00461bc4
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
and eax, 0x1f
cmp eax, 2
jne 0x45dbd3
xor esi, esi
mov dword [edi + 4], esi
xor eax, eax
mov dword [edi + 8], eax
mov dword [edi], 4
push edi
push 0
push 0x1005
push dword [ebx]
call sub.USER32.DLL_SendMessageA
test eax, eax
je 0x45dbd3
mov eax, 0x4cb8cc
mov edx, dword [edi + 0x20]
call fcn.00461404
mov dword [eax + 8], esi
cmp dword [0x4c988c], 0
jne 0x45dbcd
mov byte [ebp - 0x80], 0
mov ecx, dword [0x4c988c]
lea eax, [ebp - 0x80]
add ecx, 2
lea edx, [ebp - 0xa8]
mov dword [ebp - 0xa0], ecx
mov dword [ebp - 0x90], 0x50
mov dword [ebp - 0x94], eax
push edx
push esi
push 0x102d
push dword [ebx]
call sub.USER32.DLL_SendMessageA
cmp byte [ebp - 0x80], 0
jne 0x45dbcd
lea ecx, [ebp - 0xcd8]
mov eax, 0x4cb8cc
mov edx, dword [edi + 0x20]
call fcn.0046126c
push 0x400
lea ecx, [ebp - 0xe38]
push 0x160
push ecx
lea eax, [ebp - 0xcd8]
push 0
push eax
call sub.SHELL32.DLL_SHGetFileInfoA
test eax, eax
je 0x45dbcd
cmp byte [ebp - 0xd28], 0
jne 0x45db9e
lea ecx, [ebp - 0xd28]
lea edx, [ebp - 0xcd8]
mov eax, ebx
call fcn.0045d748
mov edx, dword [0x4c988c]
lea ecx, [ebp - 0xd28]
add edx, 2
lea eax, [ebp - 0xe60]
mov dword [ebp - 0xe58], edx
mov dword [ebp - 0xe4c], ecx
push eax
push esi
push 0x102e
push dword [ebx]
call sub.USER32.DLL_SendMessageA
inc esi
jmp 0x45dac6
mov edx, 0x4ab0e5
mov eax, 0x4aaeb7
mov ecx, 1
call fcn.00461bc4
test eax, eax
je 0x45dbef
or dword [ebp - 4], 0x40
mov edx, str.FlatView
mov eax, 0x4aaeb7
xor ecx, ecx
call fcn.00461bc4
test eax, eax
je 0x45dc0b
or dword [ebp - 4], 0x80
push 0x458987
push dword [ebp - 4]
push 0x1030
push dword [ebx]
call sub.USER32.DLL_SendMessageA
cmp dword [ebx + 4], 0
je 0x45dd24
test byte [ebp - 4], 0x20
setne dl
and edx, 1
mov byte [ebp - 5], dl
and dword [ebp - 4], 0x1f
or edi, 0xffffffff
xor eax, eax
mov edx, eax
shl edx, 3
sub edx, eax
mov ecx, dword [edx*4 + 0x4aad44]
cmp ecx, dword [ebp - 4]
jne 0x45dc62
mov edx, eax
shl eax, 3
sub eax, edx
mov edi, dword [eax*4 + 0x4aad40]
jmp 0x45dc68
inc eax
cmp eax, 7
jl 0x45dc3f
push 0
push edi
push 0x108c
push dword [ebx]
call sub.USER32.DLL_SendMessageA
mov dword [ebp - 0xe8c], 0x24
xor esi, esi
lea eax, [ebp - 0xe8c]
push eax
push esi
push 0x1203
push dword [ebx + 4]
call sub.USER32.DLL_SendMessageA
test eax, eax
je 0x45dccc
test byte [ebp - 0xe77], 8
je 0x45dcc6
and dword [ebp - 0xe78], 0xffffe7ff
lea edx, [ebp - 0xe8c]
push edx
push esi
push 0x1204
push dword [ebx + 4]
call sub.USER32.DLL_SendMessageA
jmp 0x45dccc
inc esi
cmp esi, 0x10
jl 0x45dc83
push dword [ebx + 0xc]
push 0
push 0x1208
push dword [ebx + 4]
call sub.USER32.DLL_SendMessageA
lea ecx, [ebp - 0xe8c]
push ecx
push edi
push 0x1203
push dword [ebx + 4]
call sub.USER32.DLL_SendMessageA
or dword [ebp - 0xe78], 0x1800
cmp byte [ebp - 5], 0
mov eax, 1
jne 0x45dd09
dec eax
mov dword [ebp - 0xe70], eax
lea edx, [ebp - 0xe8c]
push edx
push edi
push 0x1204
push dword [ebx + 4]
call sub.USER32.DLL_SendMessageA
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret