Function at 0x425b80
Capabilities:
Check mutex on windows

Disassembly:
push ebp
lea ebp, [esp - 0x804]
sub esp, 0x804
push 0xffffffffffffffff
push 0x4cfc70
mov eax, dword fs:[0]
push eax
sub esp, 0x48
mov eax, dword [0x51c080]
xor eax, ebp
mov dword [ebp + 0x800], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov edi, ecx
mov byte [ebp - 0x11], 1
xor ebx, ebx
mov dword [ebp - 4], ebx
push 0x800
push ebx
lea eax, [ebp]
push eax
call fcn.004ab450
sub esp, 0x10
mov dword [ebp - 0x18], esp
mov edx, str.MUTEX_NAME
mov eax, esp
call fcn.00411be0
mov byte [ebp - 4], 1
push 0x52c1fc
mov byte [ebp - 4], bl
lea esi, [ebp - 0x38]
call fcn.00411c20
mov byte [ebp - 4], 2
cmp dword [eax + 0x18], 8
jb 0x425c0b
mov eax, dword [eax + 4]
jmp 0x425c0e
add eax, 4
push eax
push str._s_Easy_Installer_Program
lea edx, [ebp]
call fcn.00411a00
add esp, 8
mov byte [ebp - 4], bl
lea esi, [ebp - 0x38]
call fcn.00411bb0
lea ecx, [ebp]
push ecx
push 1
push ebx
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov dword [edi + 0xa4], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, ebx
je 0x425da3
mov ecx, 0x527b30
cmp eax, 0xb7
je 0x425c6f
mov dword [edi + 0xa4], ebx
push str.Create_Mutex_fail___
call fcn.00449000
add esp, 4
jmp 0x425da7
lea edx, [ebp]
push edx
push str.This_program_is_already_running._____s_
call fcn.00449000
add esp, 8
push str.TRUE
sub esp, 0x1c
mov dword [ebp - 0x18], esp
mov edx, str.RESTART
mov eax, esp
call fcn.00411be0
mov byte [ebp - 4], 3
push 0x52c1fc
mov byte [ebp - 4], bl
lea esi, [ebp - 0x38]
call fcn.004116f0
mov byte [ebp - 4], 4
cmp dword [eax + 0x18], 8
jb 0x425cba
mov eax, dword [eax + 4]
jmp 0x425cbd
add eax, 4
push eax
call fcn.004a9af1
add esp, 8
test eax, eax
sete byte [ebp - 0x12]
mov byte [ebp - 4], bl
lea esi, [ebp - 0x38]
call fcn.00411bb0
cmp byte [ebp - 0x12], bl
je 0x425d20
cmp dword [edi + 0xa4], ebx
je 0x425d08
push str.Waiting_for_the_end_of_previous_program.__
mov ecx, 0x527b30
call fcn.00449000
add esp, 4
push 0x2710
mov eax, dword [edi + 0xa4]
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
lea ecx, [ebp]
push ecx
push 1
push ebx
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov dword [edi + 0xa4], eax
jmp 0x425da7
mov byte [ebp - 0x11], bl
mov dword [edi + 0xa4], ebx
sub esp, 0x1c
mov dword [ebp - 0x18], esp
mov edx, str.PROGRAM_NAME
mov eax, esp
call fcn.00411be0
mov byte [ebp - 4], 5
push 0x52c1fc
mov byte [ebp - 4], bl
lea esi, [ebp - 0x54]
call fcn.00411c20
mov byte [ebp - 4], 6
cmp dword [eax + 0x18], 8
jb 0x425d5e
mov eax, dword [eax + 4]
jmp 0x425d61
add eax, 4
push eax
push ebx
call dword [sym.imp.USER32.dll_FindWindowW]
mov edi, eax
mov byte [ebp - 4], bl
lea esi, [ebp - 0x54]
call fcn.00411bb0
cmp edi, ebx
je 0x425da7
push edi
call dword [sym.imp.USER32.dll_BringWindowToTop]
push edi
call dword [sym.imp.USER32.dll_SetForegroundWindow]
push edi
call dword [sym.imp.USER32.dll_SetActiveWindow]
push str.Set_Foreground.__
mov ecx, 0x527b30
call fcn.00449000
add esp, 4
jmp 0x425da7
mov byte [ebp - 0x11], 1
mov dword [ebp - 4], 0xffffffff
mov al, byte [ebp - 0x11]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x800]
xor ecx, ebp
call fcn.004a998e
add ebp, 0x804
mov esp, ebp
pop ebp
ret