Function at 0x4294a0
Capabilities:
Check mutex on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5fe9cb
mov eax, dword fs:[0]
push eax
sub esp, 0x34
mov eax, dword [0x6a3000]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x14], 0
call fcn.0048eac0
push 0
push dword [ebx + 0x20]
call dword [sym.imp.USER32.dll_GetSystemMenu]
push eax
call fcn.004a40c5
or edi, 0xffffffff
mov dword [ebp - 0x24], eax
test eax, eax
je 0x429574
mov dword [ebp - 4], 1
call fcn.00483151
mov ecx, eax
mov byte [ebp - 4], 0
test ecx, ecx
je 0x429a8f
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x18], eax
push 0x65
lea ecx, [ebp - 0x18]
mov dword [ebp - 4], 2
call fcn.004100f0
mov esi, dword [ebp - 0x18]
cmp dword [esi - 0xc], 0
je 0x42955d
mov eax, dword [ebp - 0x24]
mov edi, dword [sym.imp.USER32.dll_AppendMenuW]
push 0
push 0
push 0x800
push dword [eax + 4]
call edi
mov eax, dword [ebp - 0x24]
push esi
push 0x10
push 0
push dword [eax + 4]
call edi
or edi, 0xffffffff
add esi, 0xfffffff0
mov eax, edi
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x429574
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
push dword [ebx + 0xd0]
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
push 1
push 0x80
push dword [ebx + 0x20]
call esi
push dword [ebx + 0xd0]
push 0
push 0x80
push dword [ebx + 0x20]
call esi
mov dword [ebp - 4], 3
call fcn.00483151
mov ecx, eax
mov dword [ebp - 4], 0xffffffff
test ecx, ecx
je 0x429a99
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x14], eax
mov eax, str.GlobalCppSetup
mov dword [ebp - 4], 4
lea ecx, [ebp - 0x14]
test eax, 0xffff0000
jne 0x4295e7
movzx eax, ax
push eax
call fcn.004100f0
jmp 0x4295f3
push 0xf
push str.GlobalCppSetup
call fcn.00412520
push 0x66d21c
lea ecx, [ebp - 0x14]
mov dword [ebp - 4], 5
call fcn.0042cff0
push 0x13
push str.SingleInstanceMutex
lea ecx, [ebp - 0x14]
call fcn.0042d830
mov esi, dword [ebp - 0x14]
add esi, 0xfffffff0
push esi
call fcn.004123f0
add esp, 4
mov dword [ebp - 0x18], eax
lea ecx, [eax + 0x10]
push ecx
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov dword [ebx + 0x31c], eax
test eax, eax
je 0x4296af
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x4296af
push dword [ebx + 0x31c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, dword [ebp - 0x18]
mov eax, edi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x429670
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 0xffffffff
lock xadd dword [esi + 0xc], edi
dec edi
test edi, edi
jg 0x429689
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
push 0x1010
push str.Error
push str.Another_setup_is_already_running__please_close_it_and_try_again
mov ecx, ebx
call fcn.00488b2d
push 1
mov ecx, ebx
call fcn.0048e80c
xor eax, eax
jmp 0x429a73
mov edx, dword [ebp - 0x18]
mov eax, edi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4296c6
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 0xffffffff
mov eax, edi
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x4296e1
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
xorps xmm0, xmm0
mov dword [ebp - 0x30], 0x40e6c0
lea edx, [ebp - 0x30]
movlpd qword [ebp - 0x20], xmm0
mov ecx, 0x6b259c
call fcn.004132b0
mov esi, dword [0x6b2f88]
mov dword [ebp - 0x30], esi
test esi, esi
je 0x429717
lock inc dword [esi + 4]
mov esi, dword [0x6b2f88]
mov dword [ebp - 0x30], esi
mov eax, dword [0x6b2f84]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x14], 0x40
mov dword [ebp - 4], 6
mov eax, dword [eax]
cmp eax, 1
je 0x429801
cmp eax, 2
je 0x429764
push 0
push 0x1010
push str.Invalid_wizard_type
call fcn.00483f82
push 1
mov ecx, ebx
call fcn.0048e80c
xor ebx, ebx
jmp 0x429a4f
mov byte [ebp - 4], 7
call fcn.00483151
mov ecx, eax
mov byte [ebp - 4], 6
test ecx, ecx
je 0x429aa3
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x24], eax
mov eax, 0x66df10
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x24]
test eax, 0xffff0000
jne 0x4297a4
movzx eax, ax
push eax
call fcn.004100f0
jmp 0x4297ae
push 0x66df10
call fcn.00422c80
mov byte [ebp - 4], 9
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x14], 0x41
mov eax, dword [eax + 8]
sub eax, 0x10
push eax
call fcn.004123f0
lea esi, [eax + 0x10]
mov dword [ebp - 0x38], esi
lea eax, [ebp - 0x24]
mov dword [ebp - 4], 0xa
push eax
lea eax, [ebp - 0x38]
mov dword [ebp - 0x14], 0x143
push eax
lea eax, [ebp - 0x34]
push eax
call fcn.0042cf30
add esp, 0x10
mov dword [ebp - 4], 0xb
mov ebx, 0x147
jmp 0x4298d9
mov dword [ebp - 4], 0xc
call fcn.00483151
mov ecx, eax
mov byte [ebp - 4], 0xb
test ecx, ecx
je 0x429aad
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x2c], eax
mov eax, str.Setup
mov dword [ebp - 4], 0xd
lea ecx, [ebp - 0x2c]
test eax, 0xffff0000
jne 0x429847
movzx eax, ax
push eax
call fcn.004100f0
jmp 0x429851
push str.Setup
call fcn.00422c80
mov dword [ebp - 0x14], 0x48
mov dword [ebp - 4], 0xf
call fcn.00483151
mov ecx, eax
mov byte [ebp - 4], 0xe
test ecx, ecx
je 0x429ab7
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x28], eax
mov eax, 0x66b44d
mov dword [ebp - 4], 0x10
lea ecx, [ebp - 0x28]
test eax, 0xffff0000
jne 0x42989e
movzx eax, ax
push eax
call fcn.004100f0
jmp 0x4298a8
push 0x66b44d
call fcn.00422c80
lea eax, [ebp - 0x2c]
mov dword [ebp - 4], 0x11
push eax
lea eax, [ebp - 0x28]
mov dword [ebp - 0x14], 0x58
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.0042cf30
add esp, 0xc
mov dword [ebp - 4], 0x12
mov ebx, 0x78
mov esi, dword [ebp - 0x38]
push dword [eax]
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x14], ebx
call fcn.0048df7a
test bl, 0x20
je 0x429908
mov edx, dword [ebp - 0x40]
and ebx, 0xffffffdf
add edx, 0xfffffff0
mov eax, edi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x429908
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
test bl, 0x10
je 0x42992a
mov edx, dword [ebp - 0x28]
and ebx, 0xffffffef
add edx, 0xfffffff0
mov eax, edi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x42992a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
test bl, 8
je 0x42994c
mov edx, dword [ebp - 0x2c]
and ebx, 0xfffffff7
add edx, 0xfffffff0
mov eax, edi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x42994c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
test bl, 4
je 0x42996e
mov edx, dword [ebp - 0x34]
and ebx, 0xfffffffb
add edx, 0xfffffff0
mov eax, edi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x42996e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
test bl, 2
je 0x42998d
and ebx, 0xfffffffd
add esi, 0xfffffff0
mov eax, edi
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x42998d
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 6
test bl, 1
je 0x4299b3
mov edx, dword [ebp - 0x24]
mov eax, edi
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4299b3
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x3c]
push dword [eax + 0x68]
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
push eax
lea ecx, [ebx + 0x280]
call fcn.00484d1b
mov esi, dword [ebp - 0x18]
mov eax, dword [esi + 8]
sub eax, 0x10
push eax
call fcn.004123f0
add esp, 4
mov dword [ebp - 0x34], eax
lea ecx, [eax + 0x10]
mov dword [ebp - 0x40], ecx
push ecx
lea ecx, [ebx + 0xf8]
mov byte [ebp - 4], 0x13
call fcn.0048df7a
mov byte [ebp - 4], 6
mov eax, edi
mov edx, dword [ebp - 0x34]
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x429a14
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, ebx
call fcn.00429d40
cmp dword [esi], 2
jne 0x429a3a
push 0
lea ecx, [ebx + 0x178]
call fcn.0048dfce
push 0
lea ecx, [ebx + 0x200]
call fcn.0048dfce
push 0
lea ecx, [ebx + 0xf8]
call fcn.0048dfce
mov esi, dword [ebp - 0x30]
mov ebx, 1
test esi, esi
je 0x429a71
mov eax, edi
lock xadd dword [esi + 4], eax
jne 0x429a71
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
lock xadd dword [esi + 8], edi
dec edi
jne 0x429a71
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 4]
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.005ca888
mov esp, ebp
pop ebp
ret
push 0x80004005
call fcn.0040c5c0
push 0x80004005
call fcn.0040c5c0
push 0x80004005
call fcn.0040c5c0
push 0x80004005
call fcn.0040c5c0
push 0x80004005
call fcn.0040c5c0
int3