Function at 0x4194e0
Capabilities:
Check mutex on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4bcd1c
mov eax, dword fs:[0]
push eax
sub esp, 0xe8
mov eax, dword [0x52a0b0]
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.00406760
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.00432dc0
add esp, 8
test eax, eax
jne 0x419895
push eax
lea eax, [ebp - 0xd5]
mov dword [ebp - 0x74], 0x4e7a18
push eax
push str.Password
lea ecx, [ebp - 0x74]
mov dword [ebp - 0x4c], 0x4e86a8
call fcn.00404190
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x74]
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 - 0x74]
call fcn.00404c20
cmp dword [ebp - 0xc0], 0
jne 0x4196bc
cmp byte [0x52aaa4], 0
jne 0x4195d4
cmp byte [0x530561], 0
je 0x419640
push 0
push ecx
push str.SetupEngine.cpp
lea ecx, [ebp - 0x44]
mov dword [ebp - 0x44], 0x4e7a18
mov dword [ebp - 0x1c], 0x4e86a8
call fcn.00406ce0
mov byte [ebp - 4], 7
push 0
push ecx
push str.Password_set_with_no_password_in_setup.xml
lea ecx, [ebp - 0x74]
mov dword [ebp - 0x74], 0x4e7a18
mov dword [ebp - 0x4c], 0x4e86a8
call fcn.00406ce0
mov byte [ebp - 4], 9
lea edx, [ebp - 0x44]
push 0xbc
lea ecx, [ebp - 0x74]
call fcn.0048e5f0
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x74]
call fcn.00404850
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x44]
call fcn.00404850
push 0
lea eax, [ebp - 0xd5]
mov dword [ebp - 0x74], 0x4e7a18
push eax
push str.true
lea ecx, [ebp - 0x74]
mov dword [ebp - 0x4c], 0x4e86a8
call fcn.00404190
mov byte [ebp - 4], 0xd
lea eax, [ebp - 0xd5]
push 0
push eax
push str.ISPasswordValid
lea ecx, [ebp - 0x44]
mov dword [ebp - 0x44], 0x4e7a18
mov dword [ebp - 0x1c], 0x4e86a8
call fcn.00404190
mov byte [ebp - 4], 0xf
lea eax, [ebp - 0x74]
push ecx
push eax
lea eax, [ebp - 0x44]
push eax
lea ecx, [edi + 0x284]
call fcn.00461840
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x44]
call fcn.00404c20
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x74]
call fcn.00404c20
mov dword [ebp - 0xdc], 0
mov byte [ebp - 4], 0x12
lea eax, [ebp - 0xd4]
push ebx
push eax
lea ecx, [ebp - 0xdc]
call fcn.004129c0
mov byte [edi + 0x494], al
test al, al
je 0x4197e7
cmp byte [0x52aaa4], 0
jne 0x4196fd
cmp byte [0x530561], 0
je 0x419769
push 0
push ecx
push str.SetupEngine.cpp
lea ecx, [ebp - 0x74]
mov dword [ebp - 0x74], 0x4e7a18
mov dword [ebp - 0x4c], 0x4e86a8
call fcn.00406ce0
mov byte [ebp - 4], 0x14
push 0
push ecx
push str.Valid_password_supplied
lea ecx, [ebp - 0x44]
mov dword [ebp - 0x44], 0x4e7a18
mov dword [ebp - 0x1c], 0x4e86a8
call fcn.00406ce0
mov byte [ebp - 4], 0x16
lea edx, [ebp - 0x74]
push 0xc3
lea ecx, [ebp - 0x44]
call fcn.0048e5f0
mov byte [ebp - 4], 0x14
lea ecx, [ebp - 0x44]
call fcn.00404850
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0x74]
call fcn.00404850
push 0
lea eax, [ebp - 0xd5]
mov dword [ebp - 0x74], 0x4e7a18
push eax
push str.true
lea ecx, [ebp - 0x74]
mov dword [ebp - 0x4c], 0x4e86a8
call fcn.00404190
mov byte [ebp - 4], 0x1a
lea eax, [ebp - 0xd5]
push 0
push eax
push str.ISPasswordValid
lea ecx, [ebp - 0x44]
mov dword [ebp - 0x44], 0x4e7a18
mov dword [ebp - 0x1c], 0x4e86a8
call fcn.00404190
mov byte [ebp - 4], 0x1c
lea eax, [ebp - 0x74]
push ecx
push eax
lea eax, [ebp - 0x44]
push eax
lea ecx, [edi + 0x284]
call fcn.00461840
mov byte [ebp - 4], 0x1a
lea ecx, [ebp - 0x44]
call fcn.00404c20
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0x74]
call fcn.00404c20
jmp 0x419865
cmp byte [0x52aaa4], 0
jne 0x4197f9
cmp byte [0x530561], 0
je 0x419865
push 0
push ecx
push str.SetupEngine.cpp
lea ecx, [ebp - 0x74]
mov dword [ebp - 0x74], 0x4e7a18
mov dword [ebp - 0x4c], 0x4e86a8
call fcn.00406ce0
mov byte [ebp - 4], 0x20
push 0
push ecx
push str.Invalid_password_supplied
lea ecx, [ebp - 0x44]
mov dword [ebp - 0x44], 0x4e7a18
mov dword [ebp - 0x1c], 0x4e86a8
call fcn.00406ce0
mov byte [ebp - 4], 0x22
lea edx, [ebp - 0x74]
push 0xc8
lea ecx, [ebp - 0x44]
call fcn.0048e5f0
mov byte [ebp - 4], 0x20
lea ecx, [ebp - 0x44]
call fcn.00404850
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0x74]
call fcn.00404850
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0xdc]
test eax, eax
je 0x41987c
push eax
call fcn.004a0edb
add esp, 4
mov dword [ebp - 0xdc], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xd4]
jmp 0x419d00
mov edx, str.ISPasswordValid
lea ecx, [ebp - 0xa0]
call fcn.00431dc0
test al, al
je 0x4198ae
jmp 0x419d05
mov edx, str.ISSelectedLanguage
lea ecx, [ebp - 0xa0]
call fcn.00431dc0
test al, al
je 0x4198f0
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.0042ac00
jmp 0x419d05
mov edx, str.ORIGINALSETUPEXEDIR
lea ecx, [ebp - 0xa0]
call fcn.00431dc0
test al, al
je 0x41996a
cmp dword [ebx + 0x18], 8
lea eax, [ebx + 4]
jb 0x41990f
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], 0xe2
call fcn.0040b3b0
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 0x419957
push 0xffffffffffffffff
push 0
push edx
call fcn.00404530
push ecx
push ebx
push esi
lea ecx, [edi + 0x284]
call fcn.00461840
jmp 0x419d05
mov edx, str.ORIGINALSETUPEXENAME
lea ecx, [ebp - 0xa0]
call fcn.00431dc0
test al, al
je 0x4199c3
push 0
lea eax, [ebp - 0xd5]
mov dword [ebp - 0x44], 0x4e7a18
push eax
push str.ORIGINALSETUPEXENAME
lea ecx, [ebp - 0x44]
mov dword [ebp - 0x1c], 0x4e86a8
call fcn.00404190
mov byte [ebp - 4], 0x28
lea eax, [ebp - 0x44]
push ecx
push ebx
push eax
lea ecx, [edi + 0x284]
call fcn.00461840
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x44]
jmp 0x419d00
mov edx, 0x4e98f4
lea ecx, [ebp - 0xa0]
call fcn.00431dc0
test al, al
je 0x419a3b
push ecx
push ebx
push esi
lea ecx, [edi + 0x284]
call fcn.00461840
add ebx, 4
cmp dword [ebx + 0x14], 8
jb 0x4199f0
mov ebx, dword [ebx]
push ebx
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov dword [edi + 0x50c], eax
test eax, eax
je 0x419d05
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x419d05
push 0x80040711
lea ecx, [ebp - 0xf4]
call fcn.00438110
push 0x5272c8
lea eax, [ebp - 0xf4]
push eax
call fcn.004a304a
mov edx, str.UpdateUrl
lea ecx, [ebp - 0xa0]
call fcn.00431dc0
test al, al
je 0x419a7a
mov ecx, ebx
call fcn.0042cc50
test al, al
jne 0x419a69
mov ecx, ebx
call fcn.0042cb80
test al, al
je 0x419d05
push ebx
lea ecx, [edi + 0x5a8]
call fcn.00404010
jmp 0x419d05
mov ecx, esi
lea eax, [esi + 4]
neg ecx
push str.ISHiddenProperties
sbb ecx, ecx
and ecx, eax
call fcn.0040e110
test eax, eax
jne 0x419b17
cmp byte [edi + 0x71c], al
jne 0x419d05
lea eax, [ebp - 0x44]
mov ecx, ebx
push eax
call fcn.00406760
mov byte [ebp - 4], 0x2a
sub esp, 8
lea ecx, [ebp - 0xd4]
push 0x4e9ef0
call fcn.00406dd0
mov byte [ebp - 4], 0x2b
lea eax, [edi + 0x710]
push eax
lea eax, [ebp - 0xd4]
push eax
lea ecx, [ebp - 0x44]
call fcn.0042ca00
mov byte [ebp - 4], 0x2a
lea ecx, [ebp - 0xd4]
call fcn.00404850
mov eax, dword [edi + 0x284]
lea ecx, [edi + 0x284]
push ebx
push esi
mov byte [edi + 0x71c], 1
call dword [eax + 4]
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x44]
call fcn.00404850
jmp 0x419d05
mov edx, str.UninstallOrder
lea ecx, [ebp - 0xa0]
call fcn.00431dc0
test al, al
jne 0x419beb
mov edx, str.ISInstallationType
lea ecx, [ebp - 0xa0]
call fcn.00431dc0
test al, al
je 0x419bd7
mov ecx, ebx
lea eax, [ebx + 4]
neg ecx
push 0x4e9630
sbb ecx, ecx
and ecx, eax
call fcn.0040e110
test eax, eax
jne 0x419bd7
push eax
lea eax, [ebp - 0xd5]
mov dword [ebp - 0x44], 0x4e7a18
push eax
push str.ISInstallationType
lea ecx, [ebp - 0x44]
mov dword [ebp - 0x1c], 0x4e86a8
call fcn.00404190
mov byte [ebp - 4], 0x2f
lea ecx, [edi + 0x284]
mov eax, dword [ecx]
lea edx, [ebp - 0x44]
push edx
lea edx, [ebp - 0xd4]
push edx
call dword [eax + 8]
mov byte [ebp - 4], 0x31
lea ecx, [ebp - 0x44]
call fcn.00404c20
lea eax, [ebp - 0xd4]
push 0x4e9f48
push eax
call fcn.004318b0
add esp, 8
test al, al
je 0x419bc8
mov byte [edi + 0x71d], 1
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xd4]
jmp 0x419d00
mov edx, str.UninstallOrder
lea ecx, [ebp - 0xa0]
call fcn.00431dc0
test al, al
je 0x419c0e
lea ecx, [ebx + 4]
neg ebx
push 0x4e9ef4
sbb ebx, ebx
and ecx, ebx
call fcn.0040e110
neg eax
sbb eax, eax
inc eax
mov dword [edi + 0x720], eax
jmp 0x419d05
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 - 0x74]
call fcn.00404ce0
mov byte [ebp - 4], 0x34
lea eax, [ebp - 0xd4]
push eax
mov ecx, esi
call fcn.00406760
mov byte [ebp - 4], 0x35
push dword [ebp - 0xe8]
mov esi, dword [edi + 0x714]
mov edx, esi
mov ecx, dword [edi + 0x710]
push eax
call fcn.00433b20
add esp, 8
mov edi, eax
mov byte [ebp - 4], 0x34
lea ecx, [ebp - 0xd4]
call fcn.00404850
lea ecx, [ebp - 0x74]
cmp edi, esi
je 0x419c8e
push 0x4e9f4c
call fcn.00403fa0
jmp 0x419c94
push ebx
call fcn.00404010
mov esi, dword [ebp - 0xdc]
lea ecx, [ebp - 0x70]
cmp dword [ebp - 0x5c], 8
lea eax, [esi + 4]
cmovae ecx, dword [ebp - 0x70]
cmp dword [eax + 0x14], 8
jb 0x419cb0
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], 0x127
call fcn.0040b3b0
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 - 0x74]
call fcn.00404c20
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xa4]
call fcn.00404850
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.004a0eca
mov esp, ebp
pop ebp
ret 0xc