Function at 0x419500
Capabilities:
Check mutex on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4bce3c
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 0x4198b5
push eax
lea eax, [ebp - 0xd5]
mov dword [ebp - 0x74], 0x4e7908
push eax
push str.Password
lea ecx, [ebp - 0x74]
mov dword [ebp - 0x4c], 0x4e793c
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 0x4196dc
cmp byte [0x52aaa4], 0
jne 0x4195f4
cmp byte [0x530565], 0
je 0x419660
push 0
push ecx
push str.SetupEngine.cpp
lea ecx, [ebp - 0x44]
mov dword [ebp - 0x44], 0x4e7908
mov dword [ebp - 0x1c], 0x4e793c
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], 0x4e7908
mov dword [ebp - 0x4c], 0x4e793c
call fcn.00406ce0
mov byte [ebp - 4], 9
lea edx, [ebp - 0x44]
push 0xbc
lea ecx, [ebp - 0x74]
call fcn.0048e640
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], 0x4e7908
push eax
push str.true
lea ecx, [ebp - 0x74]
mov dword [ebp - 0x4c], 0x4e793c
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], 0x4e7908
mov dword [ebp - 0x1c], 0x4e793c
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.004618a0
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 0x419807
cmp byte [0x52aaa4], 0
jne 0x41971d
cmp byte [0x530565], 0
je 0x419789
push 0
push ecx
push str.SetupEngine.cpp
lea ecx, [ebp - 0x74]
mov dword [ebp - 0x74], 0x4e7908
mov dword [ebp - 0x4c], 0x4e793c
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], 0x4e7908
mov dword [ebp - 0x1c], 0x4e793c
call fcn.00406ce0
mov byte [ebp - 4], 0x16
lea edx, [ebp - 0x74]
push 0xc3
lea ecx, [ebp - 0x44]
call fcn.0048e640
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], 0x4e7908
push eax
push str.true
lea ecx, [ebp - 0x74]
mov dword [ebp - 0x4c], 0x4e793c
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], 0x4e7908
mov dword [ebp - 0x1c], 0x4e793c
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.004618a0
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 0x419885
cmp byte [0x52aaa4], 0
jne 0x419819
cmp byte [0x530565], 0
je 0x419885
push 0
push ecx
push str.SetupEngine.cpp
lea ecx, [ebp - 0x74]
mov dword [ebp - 0x74], 0x4e7908
mov dword [ebp - 0x4c], 0x4e793c
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], 0x4e7908
mov dword [ebp - 0x1c], 0x4e793c
call fcn.00406ce0
mov byte [ebp - 4], 0x22
lea edx, [ebp - 0x74]
push 0xc8
lea ecx, [ebp - 0x44]
call fcn.0048e640
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 0x41989c
push eax
call fcn.004a104b
add esp, 4
mov dword [ebp - 0xdc], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xd4]
jmp 0x419d20
mov edx, str.ISPasswordValid
lea ecx, [ebp - 0xa0]
call fcn.00431dc0
test al, al
je 0x4198ce
jmp 0x419d25
mov edx, str.ISSelectedLanguage
lea ecx, [ebp - 0xa0]
call fcn.00431dc0
test al, al
je 0x419910
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 0x419d25
mov edx, str.ORIGINALSETUPEXEDIR
lea ecx, [ebp - 0xa0]
call fcn.00431dc0
test al, al
je 0x41998a
cmp dword [ebx + 0x18], 8
lea eax, [ebx + 4]
jb 0x41992f
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 0x419977
push 0xffffffffffffffff
push 0
push edx
call fcn.00404530
push ecx
push ebx
push esi
lea ecx, [edi + 0x284]
call fcn.004618a0
jmp 0x419d25
mov edx, str.ORIGINALSETUPEXENAME
lea ecx, [ebp - 0xa0]
call fcn.00431dc0
test al, al
je 0x4199e3
push 0
lea eax, [ebp - 0xd5]
mov dword [ebp - 0x44], 0x4e7908
push eax
push str.ORIGINALSETUPEXENAME
lea ecx, [ebp - 0x44]
mov dword [ebp - 0x1c], 0x4e793c
call fcn.00404190
mov byte [ebp - 4], 0x28
lea eax, [ebp - 0x44]
push ecx
push ebx
push eax
lea ecx, [edi + 0x284]
call fcn.004618a0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x44]
jmp 0x419d20
mov edx, 0x4e98fc
lea ecx, [ebp - 0xa0]
call fcn.00431dc0
test al, al
je 0x419a5b
push ecx
push ebx
push esi
lea ecx, [edi + 0x284]
call fcn.004618a0
add ebx, 4
cmp dword [ebx + 0x14], 8
jb 0x419a10
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 0x419d25
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x419d25
push 0x80040711
lea ecx, [ebp - 0xf4]
call fcn.00438110
push 0x5272f0
lea eax, [ebp - 0xf4]
push eax
call fcn.004a315a
mov edx, str.UpdateUrl
lea ecx, [ebp - 0xa0]
call fcn.00431dc0
test al, al
je 0x419a9a
mov ecx, ebx
call fcn.0042cc50
test al, al
jne 0x419a89
mov ecx, ebx
call fcn.0042cb80
test al, al
je 0x419d25
push ebx
lea ecx, [edi + 0x5a8]
call fcn.00404010
jmp 0x419d25
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 0x419b37
cmp byte [edi + 0x71c], al
jne 0x419d25
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 0x4e9ef8
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 0x419d25
mov edx, str.UninstallOrder
lea ecx, [ebp - 0xa0]
call fcn.00431dc0
test al, al
jne 0x419c0b
mov edx, str.ISInstallationType
lea ecx, [ebp - 0xa0]
call fcn.00431dc0
test al, al
je 0x419bf7
mov ecx, ebx
lea eax, [ebx + 4]
neg ecx
push 0x4e9638
sbb ecx, ecx
and ecx, eax
call fcn.0040e110
test eax, eax
jne 0x419bf7
push eax
lea eax, [ebp - 0xd5]
mov dword [ebp - 0x44], 0x4e7908
push eax
push str.ISInstallationType
lea ecx, [ebp - 0x44]
mov dword [ebp - 0x1c], 0x4e793c
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 0x4e9f50
push eax
call fcn.004318b0
add esp, 8
test al, al
je 0x419be8
mov byte [edi + 0x71d], 1
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xd4]
jmp 0x419d20
mov edx, str.UninstallOrder
lea ecx, [ebp - 0xa0]
call fcn.00431dc0
test al, al
je 0x419c2e
lea ecx, [ebx + 4]
neg ebx
push 0x4e9efc
sbb ebx, ebx
and ecx, ebx
call fcn.0040e110
neg eax
sbb eax, eax
inc eax
mov dword [edi + 0x720], eax
jmp 0x419d25
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 0x419cae
push 0x4e9f54
call fcn.00403fa0
jmp 0x419cb4
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 0x419cd0
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.004a103a
mov esp, ebp
pop ebp
ret 0xc