Function at 0x410140
Capabilities:
Check if file exists
Check mutex on windows

Disassembly:
sub esp, 0x20
and dword [esp + 0x14], 0
and dword [esp + 0x18], 0
push ebx
push ebp
push edi
push 2
pop ebp
mov dword [esp + 0x1c], 1
mov dword [esp + 0x28], ebp
call fcn.00413e2f
cmp eax, ebp
jae 0x41017e
push ebp
call fcn.0041a976
pop ecx
test eax, eax
je 0x41017e
push eax
mov byte [eax + 1], 0x62
call fcn.0040c4f8
pop ecx
call fcn.00413e2f
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ebx, dword [sym.imp.KERNEL32.dll_CreateEventA]
cmp eax, ebp
jae 0x4101a4
push 0
push 1
push 1
push 0
call ebx
test eax, eax
je 0x4101a4
push eax
call edi
call fcn.00413e2f
cmp eax, ebp
jae 0x4101c3
push str.812812
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
test eax, eax
je 0x4101c3
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov ebp, dword [sym.imp.USER32.dll_DialogBoxParamA]
xor ecx, ecx
mov byte [esp + 0xf], cl
push esi
cmp byte [esp + 0x13], cl
je 0x4101ff
mov esi, 0x1a1
push ecx
push ecx
push ecx
push ecx
push ecx
call ebp
push 0x1a1
call dword [sym.imp.KERNEL32.dll_Sleep]
xor eax, eax
push eax
push eax
push eax
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
push 0
pop ecx
dec esi
jne 0x4101db
call fcn.00413e2f
mov esi, dword [sym.imp.KERNEL32.dll_CreateMutexA]
cmp eax, 3
jae 0x410218
push str.Local725
push ecx
push ecx
call esi
call fcn.00413e2f
cmp eax, 2
jae 0x410231
xor eax, eax
push eax
push eax
push eax
push eax
call ebx
test eax, eax
je 0x410231
push eax
call edi
xor ecx, ecx
mov byte [esp + 0x13], cl
cmp byte [esp + 0x13], cl
je 0x410253
push ecx
push ecx
call dword [sym.imp.USER32.dll_IsDialogMessageA]
xor eax, eax
push eax
push eax
push eax
push eax
call dword [sym.imp.USER32.dll_SetDlgItemInt]
xor ecx, ecx
call fcn.00413e2f
cmp eax, 2
jae 0x41026a
push ecx
push ecx
push ecx
push ecx
call ebx
test eax, eax
je 0x41026a
push eax
call edi
call fcn.00413e2f
cmp eax, 3
jae 0x41027f
push str.Local271
xor eax, eax
push eax
push eax
call esi
lea eax, [esp + 0x24]
push eax
push dword [esp + 0x38]
xor esi, esi
push esi
call dword [sym.imp.ADVAPI32.dll_LookupPrivilegeValueA]
lea eax, [esp + 0x14]
push eax
push 0x20
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.ADVAPI32.dll_OpenProcessToken]
push esi
push esi
push 0x10
lea eax, [esp + 0x2c]
push eax
push esi
push dword [esp + 0x28]
call dword [sym.imp.ADVAPI32.dll_AdjustTokenPrivileges]
call dword [sym.imp.KERNEL32.dll_GetLastError]
push dword [esp + 0x14]
neg eax
sbb al, al
inc al
mov dword [esp + 0x20], eax
call edi
call fcn.00413e2f
cmp eax, 2
jae 0x4102e8
lea eax, [esp + 0x18]
push eax
mov dword [esp + 0x1c], esi
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
call fcn.00413e2f
mov edi, dword [sym.imp.KERNEL32.dll_SetEvent]
cmp eax, 2
jae 0x410309
push str.Local10709
push esi
push esi
push esi
call ebx
test eax, eax
je 0x410309
push eax
call edi
call fcn.00413e2f
cmp eax, 2
jae 0x41032a
push 2
call fcn.0041a976
pop ecx
test eax, eax
je 0x41032a
push eax
mov byte [eax + 1], 0xe8
call fcn.0040c4f8
pop ecx
xor ecx, ecx
mov byte [esp + 0x13], cl
cmp byte [esp + 0x13], cl
je 0x41035f
mov esi, 0x272
push ecx
push ecx
push ecx
push ecx
push ecx
call ebp
push 0x272
call dword [sym.imp.KERNEL32.dll_Sleep]
xor eax, eax
push eax
push eax
push eax
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
push 0
pop ecx
dec esi
jne 0x41033b
call fcn.00413e2f
cmp eax, 2
jae 0x41037a
push str.Local10714
push ecx
push ecx
push ecx
call ebx
test eax, eax
je 0x41037a
push eax
call edi
xor ecx, ecx
mov byte [esp + 0x13], cl
cmp byte [esp + 0x13], cl
je 0x4103af
mov esi, 0x28b
push ecx
push ecx
push ecx
push ecx
push ecx
call ebp
push 0x28b
call dword [sym.imp.KERNEL32.dll_Sleep]
xor eax, eax
push eax
push eax
push eax
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
push 0
pop ecx
dec esi
jne 0x41038b
mov byte [esp + 0x13], cl
cmp byte [esp + 0x13], 0
je 0x4103e3
mov esi, 0x146
push ecx
push ecx
push ecx
push ecx
push ecx
call ebp
push 0x146
call dword [sym.imp.KERNEL32.dll_Sleep]
xor eax, eax
push eax
push eax
push eax
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
push 0
pop ecx
dec esi
jne 0x4103bf
call fcn.00413e2f
pop esi
cmp eax, 2
jae 0x410401
push str.Local10717
push 1
push 1
push ecx
call ebx
test eax, eax
je 0x410401
push eax
call edi
xor ebx, ebx
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], bl
je 0x41041f
push ebx
push ebx
call dword [sym.imp.USER32.dll_IsDialogMessageA]
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.USER32.dll_SetDlgItemInt]
mov al, byte [esp + 0x18]
pop edi
pop ebp
pop ebx
add esp, 0x20
ret