Function at 0x10004c10
Capabilities:
Get file system object information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3a8
mov eax, dword [0x100262c4]
mov dword [ebp - 4], eax
mov dword [ebp - 0x3a0], ecx
call fcn.10001140
mov dword [ebp - 0x288], eax
mov ecx, 0x100279e0
call fcn.10004980
mov dword [ebp - 0x170], eax
push 0x104
lea eax, [ebp - 0x278]
push eax
mov ecx, dword [ebp - 0x170]
push ecx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
mov dword [ebp - 0x280], eax
cmp dword [ebp - 0x280], 0
jne 0x10004c74
call fcn.10003020
jmp 0x10004f01
cmp dword [ebp - 0x280], 0x104
jne 0x10004c8a
mov eax, 0x8007007a
jmp 0x10004f01
cmp dword [ebp - 0x170], 0
je 0x10004ca3
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
cmp dword [ebp - 0x170], eax
jne 0x10004d13
mov byte [ebp - 0x398], 0x22
lea edx, [ebp - 0x278]
push edx
lea eax, [ebp - 0x397]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea ecx, [ebp - 0x398]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov dword [ebp - 0x39c], eax
mov edx, dword [ebp - 0x39c]
mov byte [ebp + edx - 0x398], 0x22
mov eax, dword [ebp - 0x39c]
mov byte [ebp + eax - 0x397], 0
lea ecx, [ebp - 0x398]
push ecx
push str.Module
mov edx, dword [ebp - 0x3a0]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x3a0]
push ecx
call dword [eax + 0x14]
mov dword [ebp - 0x284], eax
jmp 0x10004d37
lea edx, [ebp - 0x278]
push edx
push str.Module
mov eax, dword [ebp - 0x3a0]
mov ecx, dword [eax]
mov edx, dword [ebp - 0x3a0]
push edx
call dword [ecx + 0x14]
mov dword [ebp - 0x284], eax
cmp dword [ebp - 0x284], 0
jge 0x10004d4b
mov eax, dword [ebp - 0x284]
jmp 0x10004f01
lea eax, [ebp - 0x278]
push eax
push str.Module_Raw
mov ecx, dword [ebp - 0x3a0]
mov edx, dword [ecx]
mov eax, dword [ebp - 0x3a0]
push eax
call dword [edx + 0x14]
mov dword [ebp - 0x284], eax
cmp dword [ebp - 0x284], 0
jge 0x10004d83
mov eax, dword [ebp - 0x284]
jmp 0x10004f01
lea ecx, [ebp - 0x28c]
push ecx
push 0x10026e90
call dword [sym.imp.ole32.dll_StringFromCLSID]
mov dword [ebp - 0x284], eax
cmp dword [ebp - 0x284], 0
jge 0x10004daf
mov eax, dword [ebp - 0x284]
jmp 0x10004f01
mov edx, dword [ebp - 0x28c]
mov dword [ebp - 0x27c], edx
cmp dword [ebp - 0x27c], 0
jne 0x10004dd0
mov dword [ebp - 0x3a4], 0
jmp 0x10004e25
mov eax, dword [ebp - 0x27c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea ecx, [eax + eax + 2]
mov dword [ebp - 0x16c], ecx
mov eax, dword [ebp - 0x16c]
add eax, 3
and eax, 0xfffffffc
call fcn.10016110
mov dword [ebp - 0x3a8], esp
mov edx, dword [ebp - 0x288]
push edx
mov eax, dword [ebp - 0x16c]
push eax
mov ecx, dword [ebp - 0x27c]
push ecx
mov edx, dword [ebp - 0x3a8]
push edx
call fcn.100011f0
mov dword [ebp - 0x3a4], eax
mov eax, dword [ebp - 0x3a4]
push eax
push str.MODULEGUID
mov ecx, dword [ebp - 0x3a0]
mov edx, dword [ecx]
mov eax, dword [ebp - 0x3a0]
push eax
call dword [edx + 0x14]
mov dword [ebp - 0x284], eax
mov ecx, dword [ebp - 0x28c]
push ecx
call dword [sym.imp.ole32.dll_CoTaskMemFree]
cmp dword [ebp - 0x284], 0
jge 0x10004e6a
mov eax, dword [ebp - 0x284]
jmp 0x10004f01
push 0x2000
push 0x160
lea edx, [ebp - 0x168]
push edx
push 0
lea eax, [ebp - 0x278]
push eax
call dword [sym.imp.SHELL32.dll_SHGetFileInfoA]
test eax, eax
jne 0x10004eb2
push str.InprocServer32
push str.MODULETYPE
mov ecx, dword [ebp - 0x3a0]
mov edx, dword [ecx]
mov eax, dword [ebp - 0x3a0]
push eax
call dword [edx + 0x14]
mov dword [ebp - 0x284], eax
jmp 0x10004ed4
push str.LocalServer32
push str.MODULETYPE
mov ecx, dword [ebp - 0x3a0]
mov edx, dword [ecx]
mov eax, dword [ebp - 0x3a0]
push eax
call dword [edx + 0x14]
mov dword [ebp - 0x284], eax
cmp dword [ebp - 0x284], 0
jl 0x10004efb
mov ecx, dword [ebp - 0x3a0]
push ecx
mov edx, dword [0x10026ea0]
mov eax, dword [edx]
mov ecx, dword [0x10026ea0]
call dword [eax + 0x14]
mov dword [ebp - 0x284], eax
mov eax, dword [ebp - 0x284]
lea esp, [ebp - 0x3a8]
mov ecx, dword [ebp - 4]
call fcn.10015c30
mov esp, ebp
pop ebp
ret