Function at 0x40a280
Capabilities:
Check mutex on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x704
mov eax, dword [0x4f2500]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0x10]
push ebx
push esi
xor ebx, ebx
push ebx
mov dword [ebp - 0x700], eax
mov dword [ebp - 0x704], ecx
call dword [sym.imp.ole32.dll_CoInitialize]
cmp dword [0x4f7510], ebx
jne 0x40a2dd
push 0x24d0
call fcn.0042336c
add esp, 4
cmp eax, ebx
je 0x40a2d7
mov esi, eax
call fcn.00415ef0
mov dword [0x4f7510], eax
jmp 0x40a2dd
mov dword [0x4f7510], ebx
push str.GamePlusPlusInterUninstallMutex
push 1
push ebx
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x40a6e8
cmp dword [0x4f7510], ebx
jne 0x40a329
push 0x24d0
call fcn.0042336c
add esp, 4
cmp eax, ebx
je 0x40a323
mov esi, eax
call fcn.00415ef0
mov dword [0x4f7510], eax
jmp 0x40a329
mov dword [0x4f7510], ebx
push edi
lea esi, [ebp - 0x20]
call fcn.00415e20
cmp dword [ebp - 0x10], ebx
je 0x40a37b
cmp dword [ebp - 0xc], 0x10
mov edi, dword [ebp - 0x20]
jae 0x40a342
mov edi, esi
cmp dword [0x4f7510], ebx
jne 0x40a376
push 0x24d0
call fcn.0042336c
add esp, 4
cmp eax, ebx
je 0x40a370
mov esi, eax
call fcn.00415ef0
mov dword [0x4f7510], eax
call fcn.00415db0
xor edi, edi
jmp 0x40a382
mov dword [0x4f7510], ebx
call fcn.00415db0
xor edi, edi
jmp 0x40a382
xor ebx, ebx
cmp dword [0x4f7510], ebx
jne 0x40a3af
push 0x24d0
call fcn.0042336c
add esp, 4
cmp eax, ebx
je 0x40a3a9
mov esi, eax
call fcn.00415ef0
mov dword [0x4f7510], eax
jmp 0x40a3af
mov dword [0x4f7510], ebx
push str.GamePP.exe
call fcn.004163d0
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp dword [0x4f7510], ebx
jne 0x40a3ee
push 0x24d0
call fcn.0042336c
add esp, 4
cmp eax, ebx
je 0x40a3e8
mov esi, eax
call fcn.00415ef0
mov dword [0x4f7510], eax
jmp 0x40a3ee
mov dword [0x4f7510], ebx
mov ebx, str.GamePP.exe
call fcn.004164c0
test eax, eax
je 0x40a406
inc edi
cmp edi, 0xa
jb 0x40a380
mov eax, dword [0x4f7510]
test eax, eax
jne 0x40a430
push 0x24d0
call fcn.0042336c
add esp, 4
test eax, eax
je 0x40a429
mov esi, eax
call fcn.00415ef0
jmp 0x40a42b
xor eax, eax
mov dword [0x4f7510], eax
mov edx, dword [ebp - 0x704]
mov ecx, eax
call fcn.00416100
cmp dword [0x4f7510], 0
jne 0x40a46f
push 0x24d0
call fcn.0042336c
add esp, 4
test eax, eax
je 0x40a465
mov esi, eax
call fcn.00415ef0
mov dword [0x4f7510], eax
jmp 0x40a46f
mov dword [0x4f7510], 0
mov ebx, dword [sym.imp.USER32.dll_FindWindowW]
push 0
push str.TGPPMainForm
call ebx
mov edi, dword [sym.imp.USER32.dll_SendMessageW]
test eax, eax
je 0x40a494
push 0
push 0
push 0x409
push eax
call edi
cmp dword [0x4f7510], 0
jne 0x40a4c6
push 0x24d0
call fcn.0042336c
add esp, 4
test eax, eax
je 0x40a4bc
mov esi, eax
call fcn.00415ef0
mov dword [0x4f7510], eax
jmp 0x40a4c6
mov dword [0x4f7510], 0
push 0
push str.TMacheNikeMainForm
call ebx
test eax, eax
je 0x40a4df
push 0
push 0
push 0x409
push eax
call edi
mov eax, dword [0x4f7514]
test eax, eax
jne 0x40a535
push 0x18
call fcn.0042336c
mov esi, eax
xor eax, eax
add esp, 4
cmp esi, eax
je 0x40a530
mov dword [esi], eax
mov dword [esi + 4], eax
mov dword [esi + 8], eax
mov edx, dword [0x4f36ec]
mov eax, dword [edx + 0xc]
mov ecx, 0x4f36ec
call eax
add eax, 0x10
mov dword [esi + 0x10], eax
mov edx, dword [0x4f36ec]
mov eax, dword [edx + 0xc]
mov ecx, 0x4f36ec
call eax
add eax, 0x10
mov dword [esi + 0x14], eax
mov eax, esi
mov dword [0x4f7514], eax
call fcn.00407400
test eax, eax
jne 0x40a693
mov eax, dword [0x4f7510]
test eax, eax
jne 0x40a56c
push 0x24d0
call fcn.0042336c
add esp, 4
test eax, eax
je 0x40a565
mov esi, eax
call fcn.00415ef0
jmp 0x40a567
xor eax, eax
mov dword [0x4f7510], eax
add eax, 0xa28
push str.silent
push eax
call fcn.00424db2
add esp, 8
test eax, eax
je 0x40a693
cmp dword [0x4f7510], 0
jne 0x40a5b9
push 0x24d0
call fcn.0042336c
add esp, 4
test eax, eax
je 0x40a5af
mov esi, eax
call fcn.00415ef0
mov dword [0x4f7510], eax
jmp 0x40a5b9
mov dword [0x4f7510], 0
push str.ntdll.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test eax, eax
je 0x40a67d
push str.RtlGetVersion
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x40a67d
lea ecx, [ebp - 0x134]
push ecx
call eax
cmp dword [ebp - 0x130], 6
jb 0x40a67d
mov edx, dword [ebp - 0x700]
push edx
call sym.Setup.exe_public:_static_void___cdecl_DuiLib::CPaintManagerUI::SetInstance_struct_HINSTANCE____
add esp, 4
lea esi, [ebp - 0x6f8]
call fcn.0040a7b0
push 0
push 0
push SysReAllocString
push SysReAllocString
push SysReAllocString
push SysReAllocString
push 0x60000
push 0x10cf0000
push str.GamePlusPlus
push 0
mov ecx, esi
call sym.Setup.exe_protected_virtual:_int___thiscall_DuiLib::WindowImplBase::CreateMainFrame_struct_HWND_____wchar_t_const___unsigned_long_int__unsigned_long_int__int__int__int__int__struct_HMENU_____bool_
test eax, eax
je 0x40a65b
mov ecx, esi
call sym.Setup.exe_public:_void___thiscall_DuiLib::CWindowWnd::CenterWindow_void_
push 1
mov ecx, esi
call sym.Setup.exe_public:_struct_HWND______thiscall_DuiLib::CWindowWnd::operator_struct_HWND____void_const
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
call sym.Setup.exe_public:_static_void___cdecl_DuiLib::CPaintManagerUI::MessageLoop_void_
call sym.Setup.exe_public:_static_void___cdecl_DuiLib::CPaintManagerUI::Term_void_
lea eax, [ebp - 0x6f8]
call fcn.0040c5e0
lea esi, [ebp - 0x6f8]
call fcn.0040aa00
jmp 0x40a69e
push 0x10
push 0x4cbd48
push str.Dont_Support_Window_XP_
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
jmp 0x40a69e
lea edi, [ebp - 0x6f9]
call fcn.004108e0
mov eax, dword [0x4f7510]
pop edi
test eax, eax
jne 0x40a6c9
push 0x24d0
call fcn.0042336c
add esp, 4
test eax, eax
je 0x40a6c2
mov esi, eax
call fcn.00415ef0
jmp 0x40a6c4
xor eax, eax
mov dword [0x4f7510], eax
mov ebx, eax
call fcn.00414b00
call dword [sym.imp.ole32.dll_CoUninitialize]
cmp dword [ebp - 0xc], 0x10
jb 0x40a6e8
mov eax, dword [ebp - 0x20]
push eax
call fcn.00423310
add esp, 4
mov ecx, dword [ebp - 4]
pop esi
xor ecx, ebp
xor eax, eax
pop ebx
call fcn.0042292e
mov esp, ebp
pop ebp
ret 0x10