Function at 0x4010ff
Capabilities:
Check for time delay via gettickcount
Check mutex on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x40c58a
mov eax, dword fs:[0]
push eax
sub esp, 0x200
push ebx
push esi
push edi
mov eax, dword [0x411e38]
xor eax, esp
push eax
lea eax, [esp + 0x210]
mov dword fs:[0], eax
mov dword [esp + 0x1c], ecx
call dword [sym.imp.mfc100u.dll_CWinApp::InitInstance]
mov edi, dword [sym.imp.KERNEL32.dll_OpenMutexW]
push str.76E7803F_836E_4CA3_954D_58FA1A525D13
push 0
push 0x20000
call edi
test eax, eax
je 0x40115f
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x40131c
mov esi, str.64C7A20A_44A6_4F4C_B64C_95B82525511C
push esi
push 0
mov ebx, 0x120000
push ebx
call edi
mov dword [esp + 0x14], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp dword [esp + 0x14], 0
mov dword [esp + 0x18], eax
je 0x4011ed
push 0x7d0
push dword [esp + 0x18]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x401334
push 0x44c
call dword [sym.imp.KERNEL32.dll_Sleep]
push dword [esp + 0x14]
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
push dword [esp + 0x14]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push esi
push 0
push ebx
call edi
mov dword [esp + 0x14], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [esp + 0x18]
cmp eax, 0x2710
ja 0x4011dc
cmp dword [esp + 0x14], 0
jne 0x401184
cmp dword [esp + 0x14], 0
je 0x4011ed
push dword [esp + 0x14]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [esp + 0x18]
cmp eax, 0x2710
ja 0x40131c
push esi
xor edi, edi
push edi
push edi
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
lea ecx, [esp + 0x20]
mov dword [esp + 0x14], eax
call dword [sym.imp.mfc100u.dll_CCommandLineInfo::CCommandLineInfo]
lea ecx, [esp + 0x50]
mov dword [esp + 0x20], vtable.CCmdLineInfo.0
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov word [esp + 0x4c], 0x100
mov byte [esp + 0x4e], 0
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0x20]
push eax
mov dword [esp + 0x21c], edi
call dword [sym.imp.mfc100u.dll_CWinApp::ParseCommandLine]
lea esi, [esp + 0x54]
call fcn.00401b92
mov byte [esp + 0x218], 1
mov al, byte [esp + 0x4c]
mov byte [esp + 0x1c0], al
mov al, byte [esp + 0x4d]
mov byte [esp + 0x201], al
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x24]
call fcn.00401000
mov eax, dword [eax]
cmp dword [eax - 0xc], edi
lea ecx, [esp + 0x18]
setne bl
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_cla]
test bl, bl
je 0x4012d1
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x24]
call fcn.00401000
mov byte [esp + 0x218], 2
push dword [eax]
lea ecx, [esp + 0x208]
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_1]
lea ecx, [esp + 0x18]
mov byte [esp + 0x218], 1
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_cla]
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0x54]
mov dword [ecx + 0x20], eax
mov ecx, eax
call dword [sym.imp.mfc100u.dll_CDialog::DoModal]
push dword [esp + 0x14]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea eax, [esp + 0x54]
push eax
mov byte [esp + 0x21c], 0
call fcn.00401d1b
or dword [esp + 0x218], 0xffffffff
lea ecx, [esp + 0x50]
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_cla]
lea ecx, [esp + 0x20]
call dword [0x40d5b0]
xor eax, eax
mov ecx, dword [esp + 0x210]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp eax, 0xffffffff
jne 0x4011b0
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x4011c4