Function at 0x419510
Capabilities:
Check mutex on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4bd2dc
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.00432f10
add esp, 8
test eax, eax
jne 0x4198c5
push eax
lea eax, [ebp - 0xd5]
mov dword [ebp - 0x74], 0x4e81b4
push eax
push str.Password
lea ecx, [ebp - 0x74]
mov dword [ebp - 0x4c], 0x4e8f38
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 0x4196ec
cmp byte [0x52aaa4], 0
jne 0x419604
cmp byte [0x530565], 0
je 0x419670
push 0
push ecx
push str.SetupEngine.cpp
lea ecx, [ebp - 0x44]
mov dword [ebp - 0x44], 0x4e81b4
mov dword [ebp - 0x1c], 0x4e8f38
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], 0x4e81b4
mov dword [ebp - 0x4c], 0x4e8f38
call fcn.00406ce0
mov byte [ebp - 4], 9
lea edx, [ebp - 0x44]
push 0xbd
lea ecx, [ebp - 0x74]
call fcn.0048e8b0
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], 0x4e81b4
push eax
push str.true
lea ecx, [ebp - 0x74]
mov dword [ebp - 0x4c], 0x4e8f38
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], 0x4e81b4
mov dword [ebp - 0x1c], 0x4e8f38
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.00461b10
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.004129e0
mov byte [edi + 0x494], al
test al, al
je 0x419817
cmp byte [0x52aaa4], 0
jne 0x41972d
cmp byte [0x530565], 0
je 0x419799
push 0
push ecx
push str.SetupEngine.cpp
lea ecx, [ebp - 0x74]
mov dword [ebp - 0x74], 0x4e81b4
mov dword [ebp - 0x4c], 0x4e8f38
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], 0x4e81b4
mov dword [ebp - 0x1c], 0x4e8f38
call fcn.00406ce0
mov byte [ebp - 4], 0x16
lea edx, [ebp - 0x74]
push 0xc4
lea ecx, [ebp - 0x44]
call fcn.0048e8b0
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], 0x4e81b4
push eax
push str.true
lea ecx, [ebp - 0x74]
mov dword [ebp - 0x4c], 0x4e8f38
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], 0x4e81b4
mov dword [ebp - 0x1c], 0x4e8f38
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.00461b10
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 0x419895
cmp byte [0x52aaa4], 0
jne 0x419829
cmp byte [0x530565], 0
je 0x419895
push 0
push ecx
push str.SetupEngine.cpp
lea ecx, [ebp - 0x74]
mov dword [ebp - 0x74], 0x4e81b4
mov dword [ebp - 0x4c], 0x4e8f38
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], 0x4e81b4
mov dword [ebp - 0x1c], 0x4e8f38
call fcn.00406ce0
mov byte [ebp - 4], 0x22
lea edx, [ebp - 0x74]
push 0xc9
lea ecx, [ebp - 0x44]
call fcn.0048e8b0
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 0x4198ac
push eax
call fcn.004a14cb
add esp, 4
mov dword [ebp - 0xdc], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xd4]
jmp 0x419d30
mov edx, str.ISPasswordValid
lea ecx, [ebp - 0xa0]
call fcn.00431f10
test al, al
je 0x4198de
jmp 0x419d35
mov edx, str.ISSelectedLanguage
lea ecx, [ebp - 0xa0]
call fcn.00431f10
test al, al
je 0x419920
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.0042ad50
jmp 0x419d35
mov edx, str.ORIGINALSETUPEXEDIR
lea ecx, [ebp - 0xa0]
call fcn.00431f10
test al, al
je 0x41999a
cmp dword [ebx + 0x18], 8
lea eax, [ebx + 4]
jb 0x41993f
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], 0xe3
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 0x419987
push 0xffffffffffffffff
push 0
push edx
call fcn.00404530
push ecx
push ebx
push esi
lea ecx, [edi + 0x284]
call fcn.00461b10
jmp 0x419d35
mov edx, str.ORIGINALSETUPEXENAME
lea ecx, [ebp - 0xa0]
call fcn.00431f10
test al, al
je 0x4199f3
push 0
lea eax, [ebp - 0xd5]
mov dword [ebp - 0x44], 0x4e81b4
push eax
push str.ORIGINALSETUPEXENAME
lea ecx, [ebp - 0x44]
mov dword [ebp - 0x1c], 0x4e8f38
call fcn.00404190
mov byte [ebp - 4], 0x28
lea eax, [ebp - 0x44]
push ecx
push ebx
push eax
lea ecx, [edi + 0x284]
call fcn.00461b10
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x44]
jmp 0x419d30
mov edx, 0x4ea17c
lea ecx, [ebp - 0xa0]
call fcn.00431f10
test al, al
je 0x419a6b
push ecx
push ebx
push esi
lea ecx, [edi + 0x284]
call fcn.00461b10
add ebx, 4
cmp dword [ebx + 0x14], 8
jb 0x419a20
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 0x419d35
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x419d35
push 0x80040711
lea ecx, [ebp - 0xf4]
call fcn.00438250
push 0x527ca0
lea eax, [ebp - 0xf4]
push eax
call fcn.004a35fa
mov edx, str.UpdateUrl
lea ecx, [ebp - 0xa0]
call fcn.00431f10
test al, al
je 0x419aaa
mov ecx, ebx
call fcn.0042cda0
test al, al
jne 0x419a99
mov ecx, ebx
call fcn.0042ccd0
test al, al
je 0x419d35
push ebx
lea ecx, [edi + 0x5a8]
call fcn.00404010
jmp 0x419d35
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 0x419b47
cmp byte [edi + 0x71c], al
jne 0x419d35
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 0x4ea778
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.0042cb50
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 0x419d35
mov edx, str.UninstallOrder
lea ecx, [ebp - 0xa0]
call fcn.00431f10
test al, al
jne 0x419c1b
mov edx, str.ISInstallationType
lea ecx, [ebp - 0xa0]
call fcn.00431f10
test al, al
je 0x419c07
mov ecx, ebx
lea eax, [ebx + 4]
neg ecx
push 0x4e9eb8
sbb ecx, ecx
and ecx, eax
call fcn.0040e110
test eax, eax
jne 0x419c07
push eax
lea eax, [ebp - 0xd5]
mov dword [ebp - 0x44], 0x4e81b4
push eax
push str.ISInstallationType
lea ecx, [ebp - 0x44]
mov dword [ebp - 0x1c], 0x4e8f38
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 0x4ea7d0
push eax
call fcn.00431a00
add esp, 8
test al, al
je 0x419bf8
mov byte [edi + 0x71d], 1
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xd4]
jmp 0x419d30
mov edx, str.UninstallOrder
lea ecx, [ebp - 0xa0]
call fcn.00431f10
test al, al
je 0x419c3e
lea ecx, [ebx + 4]
neg ebx
push 0x4ea77c
sbb ebx, ebx
and ecx, ebx
call fcn.0040e110
neg eax
sbb eax, eax
inc eax
mov dword [edi + 0x720], eax
jmp 0x419d35
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.00433c70
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 0x419cbe
push 0x4ea7d4
call fcn.00403fa0
jmp 0x419cc4
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 0x419ce0
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], 0x128
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.004a14ba
mov esp, ebp
pop ebp
ret 0xc