Function at 0x4a6820
Capabilities:
Get file system object information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x298
mov eax, dword [0x540cc0]
mov dword [ebp - 8], eax
mov dword [ebp - 0x290], ecx
mov eax, dword [0x5426f0]
and eax, 1
jne 0x4a6868
mov ecx, dword [0x5426f0]
or ecx, 1
mov dword [0x5426f0], ecx
mov ecx, 0x5426ec
call dword [0x502480]
push 0x5010a0
call fcn.004f31b5
add esp, 4
mov edx, dword [ebp + 8]
mov eax, dword [edx]
and eax, 1
je 0x4a6935
mov dword [ebp - 0x288], 0
lea ecx, [ebp - 0x288]
push ecx
push 1
mov edx, dword [ebp + 0x14]
push edx
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax]
mov edx, dword [ebp + 0x10]
push edx
call dword [ecx + 0x2c]
mov eax, dword [ebp - 0x288]
mov dword [ebp - 0x294], eax
cmp dword [ebp - 0x294], 0
je 0x4a68c2
cmp dword [ebp - 0x294], 1
je 0x4a690f
cmp dword [ebp - 0x294], 2
je 0x4a68fb
jmp 0x4a6924
mov ecx, dword [ebp - 0x284]
push ecx
mov ecx, 0x5426ec
call dword [sym.imp.MFC71.DLL_ATL::CStringT::operator_2]
mov edx, dword [ebp - 0x284]
push edx
mov eax, dword [ebp - 0x290]
mov ecx, dword [eax + 0x98]
mov edx, dword [ebp - 0x290]
mov eax, dword [edx + 0x98]
mov ecx, dword [ecx]
push eax
call dword [ecx + 0x14]
jmp 0x4a6924
lea edx, [ebp - 0x284]
push edx
mov ecx, 0x5426ec
call dword [0x502590]
jmp 0x4a6924
mov eax, dword [ebp + 0x14]
add eax, dword [ebp - 0x284]
push eax
mov ecx, 0x5426ec
call dword [0x502590]
mov ecx, 0x5426ec
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::operator_char_const_]
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x10], eax
mov edx, dword [ebp + 8]
mov eax, dword [edx]
and eax, 0x22
je 0x4a6a35
mov dword [ebp - 4], 0x20010000
lea ecx, [ebp - 4]
push ecx
lea edx, [ebp + 0x14]
push edx
push 1
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax]
mov edx, dword [ebp + 0x10]
push edx
call dword [ecx + 0x24]
mov dword [ebp - 0x28c], 0x4009
mov eax, dword [ebp - 4]
and eax, 0x10000
je 0x4a6986
mov ecx, dword [ebp - 0x28c]
or ecx, 0x8000
mov dword [ebp - 0x28c], ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx]
and eax, 2
je 0x4a69d1
push 0x160
push 0
lea ecx, [ebp - 0x168]
push ecx
call sub.MSVCR71.dll_memset
add esp, 0xc
mov edx, dword [ebp - 0x28c]
push edx
push 0x160
lea eax, [ebp - 0x168]
push eax
push 0
mov ecx, dword [ebp + 0xc]
push ecx
call dword [sym.imp.SHELL32.dll_SHGetFileInfoA]
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x164]
mov dword [edx + 0x18], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
and edx, 0x20
je 0x4a6a35
mov eax, dword [ebp - 4]
and eax, 0x20000000
je 0x4a69f4
mov ecx, dword [ebp - 0x28c]
or ecx, 2
mov dword [ebp - 0x28c], ecx
push 0x160
push 0
lea edx, [ebp - 0x168]
push edx
call sub.MSVCR71.dll_memset
add esp, 0xc
mov eax, dword [ebp - 0x28c]
push eax
push 0x160
lea ecx, [ebp - 0x168]
push ecx
push 0
mov edx, dword [ebp + 0xc]
push edx
call dword [sym.imp.SHELL32.dll_SHGetFileInfoA]
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x164]
mov dword [eax + 0x1c], ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx]
and eax, 0x40
je 0x4a6ad9
mov dword [ebp - 4], 0x22000000
lea ecx, [ebp - 4]
push ecx
lea edx, [ebp + 0x14]
push edx
push 1
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax]
mov edx, dword [ebp + 0x10]
push edx
call dword [ecx + 0x24]
mov eax, dword [ebp + 8]
mov dword [eax + 0x20], 0
mov ecx, dword [ebp - 4]
and ecx, 0x20000000
je 0x4a6ad9
mov edx, dword [ebp - 0x290]
cmp dword [edx + 0x90], 0
je 0x4a6a90
mov eax, dword [ebp + 8]
mov dword [eax + 0x20], 1
jmp 0x4a6ad9
mov ecx, dword [ebp - 4]
and ecx, 0x2000000
je 0x4a6aa7
mov edx, dword [ebp + 8]
mov dword [edx + 0x20], 1
jmp 0x4a6ad9
mov dword [ebp - 4], SysStringLen
lea eax, [ebp - 4]
push eax
lea ecx, [ebp + 0x14]
push ecx
push 1
mov edx, dword [ebp + 0x10]
mov eax, dword [edx]
mov ecx, dword [ebp + 0x10]
push ecx
call dword [eax + 0x24]
mov edx, dword [ebp - 4]
and edx, 0x80000000
neg edx
sbb edx, edx
neg edx
mov eax, dword [ebp + 8]
mov dword [eax + 0x20], edx
push 0x14
push 0
lea ecx, [ebp - 0x17c]
push ecx
call sub.MSVCR71.dll_memset
add esp, 0xc
push 0x14
lea edx, [ebp - 0x17c]
push edx
push 3
mov eax, dword [ebp + 0x14]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
call dword [sym.imp.SHELL32.dll_SHGetDataFromIDListA]
test eax, eax
jl case.0x4a6b3a.3
mov edx, dword [ebp - 0x17c]
mov dword [ebp - 0x298], edx
mov eax, dword [ebp - 0x298]
sub eax, 5
mov dword [ebp - 0x298], eax
cmp dword [ebp - 0x298], 0xc
ja case.0x4a6b3a.3
mov ecx, dword [ebp - 0x298]
movzx edx, byte [ecx + 0x4a6b60]
jmp dword [edx*4 + 0x4a6b58]
xor eax, eax
jmp 0x4a6b4a
mov eax, 1
mov ecx, dword [ebp - 8]
call fcn.004f2f91
mov esp, ebp
pop ebp
ret 0x10