Function at 0x4193c0
Capabilities:
Check mutex on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4b70ee
mov eax, dword fs:[0]
push eax
sub esp, 0xe8
mov eax, dword [0x5210b0]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0xe8], edi
mov esi, dword [ebp + 8]
lea eax, [ebp - 0xa4]
mov ebx, dword [ebp + 0xc]
mov ecx, esi
push eax
mov dword [ebp - 0xdc], esi
call fcn.00406720
mov dword [ebp - 4], 0
lea ecx, [ebp - 0xa0]
cmp dword [ebp - 0x8c], 8
mov edx, dword [ebp - 0x90]
cmovae ecx, dword [ebp - 0xa0]
push 0xa
push str.ISPassword
call fcn.00430f10
add esp, 8
test eax, eax
jne 0x419775
push eax
lea eax, [ebp - 0xd5]
mov dword [ebp - 0x44], 0x4e1680
push eax
push str.Password
lea ecx, [ebp - 0x44]
mov dword [ebp - 0x1c], 0x4e1670
call fcn.00404150
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x44]
mov eax, dword [edi + 0x284]
push ecx
lea ecx, [ebp - 0xd4]
push ecx
lea ecx, [edi + 0x284]
call dword [eax + 8]
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x44]
call fcn.00404be0
cmp dword [ebp - 0xc0], 0
jne 0x41959c
cmp byte [0x521aa4], 0
jne 0x4194b4
cmp byte [0x52753d], 0
je 0x419520
push 0
push ecx
push str.SetupEngine.cpp
lea ecx, [ebp - 0x74]
mov dword [ebp - 0x74], 0x4e1680
mov dword [ebp - 0x4c], 0x4e1670
call fcn.00406ca0
mov byte [ebp - 4], 7
push 0
push ecx
push str.Password_set_with_no_password_in_setup.xml
lea ecx, [ebp - 0x44]
mov dword [ebp - 0x44], 0x4e1680
mov dword [ebp - 0x1c], 0x4e1670
call fcn.00406ca0
mov byte [ebp - 4], 9
lea edx, [ebp - 0x74]
push 0xba
lea ecx, [ebp - 0x44]
call fcn.00489790
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x44]
call fcn.00404810
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x74]
call fcn.00404810
push 0
lea eax, [ebp - 0xd5]
mov dword [ebp - 0x44], 0x4e1680
push eax
push str.true
lea ecx, [ebp - 0x44]
mov dword [ebp - 0x1c], 0x4e1670
call fcn.00404150
mov byte [ebp - 4], 0xd
lea eax, [ebp - 0xd5]
push 0
push eax
push str.ISPasswordValid
lea ecx, [ebp - 0x74]
mov dword [ebp - 0x74], 0x4e1680
mov dword [ebp - 0x4c], 0x4e1670
call fcn.00404150
mov byte [ebp - 4], 0xf
lea eax, [ebp - 0x44]
push ecx
push eax
lea eax, [ebp - 0x74]
push eax
lea ecx, [edi + 0x284]
call fcn.0045ca90
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x74]
call fcn.00404be0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x44]
call fcn.00404be0
mov dword [ebp - 0xdc], 0
mov byte [ebp - 4], 0x12
lea eax, [ebp - 0xd4]
push ebx
push eax
lea ecx, [ebp - 0xdc]
call fcn.00412960
mov byte [edi + 0x494], al
test al, al
je 0x4196c7
cmp byte [0x521aa4], 0
jne 0x4195dd
cmp byte [0x52753d], 0
je 0x419649
push 0
push ecx
push str.SetupEngine.cpp
lea ecx, [ebp - 0x44]
mov dword [ebp - 0x44], 0x4e1680
mov dword [ebp - 0x1c], 0x4e1670
call fcn.00406ca0
mov byte [ebp - 4], 0x14
push 0
push ecx
push str.Valid_password_supplied
lea ecx, [ebp - 0x74]
mov dword [ebp - 0x74], 0x4e1680
mov dword [ebp - 0x4c], 0x4e1670
call fcn.00406ca0
mov byte [ebp - 4], 0x16
lea edx, [ebp - 0x44]
push 0xc1
lea ecx, [ebp - 0x74]
call fcn.00489790
mov byte [ebp - 4], 0x14
lea ecx, [ebp - 0x74]
call fcn.00404810
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0x44]
call fcn.00404810
push 0
lea eax, [ebp - 0xd5]
mov dword [ebp - 0x44], 0x4e1680
push eax
push str.true
lea ecx, [ebp - 0x44]
mov dword [ebp - 0x1c], 0x4e1670
call fcn.00404150
mov byte [ebp - 4], 0x1a
lea eax, [ebp - 0xd5]
push 0
push eax
push str.ISPasswordValid
lea ecx, [ebp - 0x74]
mov dword [ebp - 0x74], 0x4e1680
mov dword [ebp - 0x4c], 0x4e1670
call fcn.00404150
mov byte [ebp - 4], 0x1c
lea eax, [ebp - 0x44]
push ecx
push eax
lea eax, [ebp - 0x74]
push eax
lea ecx, [edi + 0x284]
call fcn.0045ca90
mov byte [ebp - 4], 0x1a
lea ecx, [ebp - 0x74]
call fcn.00404be0
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0x44]
call fcn.00404be0
jmp 0x419745
cmp byte [0x521aa4], 0
jne 0x4196d9
cmp byte [0x52753d], 0
je 0x419745
push 0
push ecx
push str.SetupEngine.cpp
lea ecx, [ebp - 0x44]
mov dword [ebp - 0x44], 0x4e1680
mov dword [ebp - 0x1c], 0x4e1670
call fcn.00406ca0
mov byte [ebp - 4], 0x20
push 0
push ecx
push str.Invalid_password_supplied
lea ecx, [ebp - 0x74]
mov dword [ebp - 0x74], 0x4e1680
mov dword [ebp - 0x4c], 0x4e1670
call fcn.00406ca0
mov byte [ebp - 4], 0x22
lea edx, [ebp - 0x44]
push 0xc6
lea ecx, [ebp - 0x74]
call fcn.00489790
mov byte [ebp - 4], 0x20
lea ecx, [ebp - 0x74]
call fcn.00404810
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0x44]
call fcn.00404810
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0xdc]
test eax, eax
je 0x41975c
push eax
call fcn.0049c23b
add esp, 4
mov dword [ebp - 0xdc], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xd4]
jmp 0x419b20
mov edx, str.ISPasswordValid
lea ecx, [ebp - 0xa0]
call fcn.0042ff90
test al, al
je 0x41978e
jmp 0x419b25
mov edx, str.ISSelectedLanguage
lea ecx, [ebp - 0xa0]
call fcn.0042ff90
test al, al
je 0x4197d0
mov eax, dword [edi + 0x498]
lea ecx, [edi + 0x498]
push ebx
push esi
call dword [eax + 4]
mov eax, dword [edi + 0x284]
lea ecx, [edi + 0x284]
push ebx
push esi
call dword [eax + 4]
mov ecx, edi
call fcn.004296f0
jmp 0x419b25
mov edx, str.ORIGINALSETUPEXEDIR
lea ecx, [ebp - 0xa0]
call fcn.0042ff90
test al, al
je 0x41984a
cmp dword [ebx + 0x18], 8
lea eax, [ebx + 4]
jb 0x4197ef
mov eax, dword [eax]
push eax
lea eax, [ebp - 0xec]
mov dword [ebp - 0xec], str.SetupEngine.cpp
push str.Engine:_running_from_temp__original_setup:__s
push eax
mov dword [ebp - 0xe8], 0xe0
call fcn.0040b370
add esp, 0xc
lea eax, [ebx + 4]
mov edx, ebx
lea ecx, [edi + 0x3ec]
neg edx
sbb edx, edx
and edx, eax
cmp ecx, edx
je 0x419837
push 0xffffffffffffffff
push 0
push edx
call fcn.004044f0
push ecx
push ebx
push esi
lea ecx, [edi + 0x284]
call fcn.0045ca90
jmp 0x419b25
mov edx, str.ORIGINALSETUPEXENAME
lea ecx, [ebp - 0xa0]
call fcn.0042ff90
test al, al
je 0x4198a3
push 0
lea eax, [ebp - 0xd5]
mov dword [ebp - 0x74], 0x4e1680
push eax
push str.ORIGINALSETUPEXENAME
lea ecx, [ebp - 0x74]
mov dword [ebp - 0x4c], 0x4e1670
call fcn.00404150
mov byte [ebp - 4], 0x28
lea eax, [ebp - 0x74]
push ecx
push ebx
push eax
lea ecx, [edi + 0x284]
call fcn.0045ca90
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x74]
jmp 0x419b20
mov edx, 0x4e28c4
lea ecx, [ebp - 0xa0]
call fcn.0042ff90
test al, al
je 0x41991b
push ecx
push ebx
push esi
lea ecx, [edi + 0x284]
call fcn.0045ca90
add ebx, 4
cmp dword [ebx + 0x14], 8
jb 0x4198d0
mov ebx, dword [ebx]
push ebx
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov dword [edi + 0x504], eax
test eax, eax
je 0x419b25
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x419b25
push 0x80040711
lea ecx, [ebp - 0xf4]
call fcn.00435a40
push 0x51e310
lea eax, [ebp - 0xf4]
push eax
call fcn.0049e36a
mov edx, str.UpdateUrl
lea ecx, [ebp - 0xa0]
call fcn.0042ff90
test al, al
je 0x41995a
mov ecx, ebx
call fcn.0042b520
test al, al
jne 0x419949
mov ecx, ebx
call fcn.0042b450
test al, al
je 0x419b25
push ebx
lea ecx, [edi + 0x5a0]
call fcn.00403fd0
jmp 0x419b25
mov ecx, esi
lea eax, [esi + 4]
neg ecx
push str.ISHiddenProperties
sbb ecx, ecx
and ecx, eax
call fcn.0040e0b0
test eax, eax
jne 0x4199f7
cmp byte [edi + 0x714], al
jne 0x419b25
lea eax, [ebp - 0x74]
mov ecx, ebx
push eax
call fcn.00406720
mov byte [ebp - 4], 0x2a
sub esp, 8
lea ecx, [ebp - 0xd4]
push 0x4e2ec0
call fcn.00406d90
mov byte [ebp - 4], 0x2b
lea eax, [edi + 0x708]
push eax
lea eax, [ebp - 0xd4]
push eax
lea ecx, [ebp - 0x74]
call fcn.0042b2d0
mov byte [ebp - 4], 0x2a
lea ecx, [ebp - 0xd4]
call fcn.00404810
mov eax, dword [edi + 0x284]
lea ecx, [edi + 0x284]
push ebx
push esi
mov byte [edi + 0x714], 1
call dword [eax + 4]
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x74]
call fcn.00404810
jmp 0x419b25
mov edx, str.UninstallOrder
lea ecx, [ebp - 0xa0]
call fcn.0042ff90
test al, al
je 0x419a2e
lea ecx, [ebx + 4]
neg ebx
push 0x4e2ec4
sbb ebx, ebx
and ecx, ebx
call fcn.0040e0b0
neg eax
sbb eax, eax
inc eax
mov dword [edi + 0x718], eax
jmp 0x419b25
mov al, byte [edi + 0x290]
lea ecx, [edi + 0x284]
mov byte [ebp - 0xd5], al
mov al, byte [ebp + 0x10]
push 1
mov dword [ebp - 0xe4], ecx
mov byte [ecx + 0xc], al
push ecx
lea ecx, [ebp - 0x44]
call fcn.00404ca0
mov byte [ebp - 4], 0x2e
lea eax, [ebp - 0xd4]
push eax
mov ecx, esi
call fcn.00406720
mov byte [ebp - 4], 0x2f
push dword [ebp - 0xe8]
mov esi, dword [edi + 0x70c]
mov edx, esi
mov ecx, dword [edi + 0x708]
push eax
call fcn.00431bc0
add esp, 8
mov edi, eax
mov byte [ebp - 4], 0x2e
lea ecx, [ebp - 0xd4]
call fcn.00404810
lea ecx, [ebp - 0x44]
cmp edi, esi
je 0x419aae
push 0x4e2ef0
call fcn.00403f60
jmp 0x419ab4
push ebx
call fcn.00403fd0
mov esi, dword [ebp - 0xdc]
lea ecx, [ebp - 0x40]
cmp dword [ebp - 0x2c], 8
lea eax, [esi + 4]
cmovae ecx, dword [ebp - 0x40]
cmp dword [eax + 0x14], 8
jb 0x419ad0
mov eax, dword [eax]
push ecx
push eax
lea eax, [ebp - 0xe0]
mov dword [ebp - 0xe0], str.SetupEngine.cpp
push str.Engine:_property__s_value_now__s
push eax
mov dword [ebp - 0xdc], 0x116
call fcn.0040b370
mov ecx, dword [ebp - 0xe4]
add esp, 0x10
mov eax, dword [ecx]
push ebx
push esi
call dword [eax + 4]
mov eax, dword [ebp - 0xe8]
mov cl, byte [ebp - 0xd5]
mov byte [eax + 0x290], cl
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x44]
call fcn.00404be0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xa4]
call fcn.00404810
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0049c22a
mov esp, ebp
pop ebp
ret 0xc