Function at 0x10030d2
Capabilities:
Check mutex on windows
Get file attributes

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x18
push ebx
push esi
push edi
xor edi, edi
push 0x1001d28
push edi
push edi
xor esi, esi
mov dword [ebp - 0xc], edi
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov ebx, eax
mov dword [ebp - 4], ebx
cmp ebx, edi
jne 0x1003102
push 0x64
pop esi
jmp 0x10032db
push 0xea60
push ebx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x100311d
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0x65
jmp 0x10030fc
push edi
push 0x1001d7c
call dword [sym.imp.USER32.dll_FindWindowW]
mov ebx, eax
cmp ebx, edi
je 0x10031ae
xor eax, eax
lea edi, [ebp - 0x14]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov edi, dword [ebp + 0x10]
mov dword [ebp - 0x18], 1
test edi, edi
je 0x1003154
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea eax, [eax + eax + 2]
mov dword [ebp - 0x14], eax
jmp 0x1003157
and dword [ebp - 0x14], esi
lea eax, [ebp + 0x10]
push eax
push ebx
mov dword [ebp - 0x10], edi
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
push dword [ebp + 0x10]
call dword [sym.imp.USER32.dll_AllowSetForegroundWindow]
push ebx
call dword [sym.imp.USER32.dll_SetForegroundWindow]
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea eax, [ebp + 0x18]
push eax
push 0x5dc
push 0
lea eax, [ebp - 0x18]
push eax
push 0
push 0x4a
push ebx
call dword [sym.imp.USER32.dll_SendMessageTimeoutA]
test eax, eax
jne 0x10032db
jmp 0x1003119
mov esi, 0x1001cd0
push esi
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [ebp - 8], eax
cmp eax, edi
jne 0x1003209
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7e
jne 0x10031e5
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
mov esi, eax
inc esi
neg esi
sbb esi, esi
and esi, 0xfffffffe
add esi, 0x6b
jmp 0x10032b6
cmp eax, 0x45a
jne 0x100321b
push 0x1001ea0
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov esi, eax
inc esi
neg esi
sbb esi, esi
and esi, 0xfffffffe
add esi, 0x6c
jmp 0x10032b6
push 0x1001df4
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ebx, eax
cmp ebx, edi
jne 0x1003222
push 0x66
jmp 0x10032a5
lea eax, [ebp - 0xc]
push eax
call fcn.01005d90
test eax, eax
jge 0x1003233
push 0x68
jmp 0x10032a5
push edi
call dword [sym.imp.ole32.dll_OleInitialize]
test eax, eax
jl 0x10032a8
push 0x3f
pop ecx
cmp dword [ebp + 0x18], edi
je 0x1003249
push 0x2e
pop ecx
mov eax, dword [ebp + 0x10]
cmp dword [0x1007004], edi
jne 0x1003259
mov eax, 0x1001e28
push dword [ebp + 0x14]
push eax
push ecx
call ebx
mov esi, eax
mov dword [0x1007004], edi
cmp esi, 0x714
je 0x100323e
call fcn.01002ec0
call dword [sym.imp.ole32.dll_CoFreeUnusedLibraries]
push edi
push edi
call dword [sym.imp.ole32.dll_CoFreeUnusedLibrariesEx]
call dword [sym.imp.ole32.dll_OleUninitialize]
call dword [sym.imp.ole32.dll_CoFreeAllLibraries]
cmp esi, edi
jge 0x10032a8
cmp esi, 0x8004100a
je 0x10032a8
cmp esi, 0x80040113
je 0x10032a8
push 0x67
pop esi
jmp 0x10032b6
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 4], edi
xor esi, esi
cmp dword [ebp - 4], edi
je 0x10032cd
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 8], edi
je 0x10032db
push dword [ebp - 8]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
lea eax, [ebp - 0xc]
push eax
call fcn.01005ab6
pop edi
mov eax, esi
pop esi
pop ebx
leave
ret 0x14