Function at 0x4190b0
Capabilities:
Check mutex on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4b460e
mov eax, dword fs:[0]
push eax
sub esp, 0xe8
mov eax, dword [0x51c0b0]
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 ebx, ecx
mov esi, dword [ebp + 8]
lea eax, [ebp - 0xa4]
mov edi, dword [ebp + 0xc]
mov ecx, esi
push eax
mov dword [ebp - 0xdc], esi
call fcn.004068f0
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.00430040
add esp, 8
test eax, eax
jne 0x41946d
push eax
lea eax, [ebp - 0xd5]
mov dword [ebp - 0x44], 0x4dd804
push eax
push str.Password
lea ecx, [ebp - 0x44]
mov dword [ebp - 0x1c], 0x4dcac4
call fcn.004042c0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x44]
mov eax, dword [ebx + 0x284]
lea esi, [ebx + 0x284]
push ecx
lea ecx, [ebp - 0xd4]
push ecx
mov ecx, esi
call dword [eax + 8]
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x44]
call fcn.00404db0
cmp dword [ebp - 0xc0], 0
jne 0x41928e
cmp byte [0x51caa5], 0
jne 0x4191a0
cmp byte [0x522582], 0
je 0x41920c
push 0
push ecx
push str.SetupEngine.cpp
lea ecx, [ebp - 0x74]
mov dword [ebp - 0x74], 0x4dd804
mov dword [ebp - 0x4c], 0x4dcac4
call fcn.00406e60
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], 0x4dd804
mov dword [ebp - 0x1c], 0x4dcac4
call fcn.00406e60
mov byte [ebp - 4], 9
lea edx, [ebp - 0x74]
push 0xae
lea ecx, [ebp - 0x44]
call fcn.00486f90
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x44]
call fcn.004049f0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x74]
call fcn.004049f0
push 0
lea eax, [ebp - 0xd5]
mov dword [ebp - 0x74], 0x4dd804
push eax
push str.true
lea ecx, [ebp - 0x74]
mov dword [ebp - 0x4c], 0x4dcac4
call fcn.004042c0
mov byte [ebp - 4], 0xd
lea eax, [ebp - 0xd5]
push 0
push eax
push str.ISPasswordValid
lea ecx, [ebp - 0x44]
mov dword [ebp - 0x44], 0x4dd804
mov dword [ebp - 0x1c], 0x4dcac4
call fcn.004042c0
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x74]
mov eax, dword [esi]
push ecx
lea ecx, [ebp - 0x44]
push ecx
mov ecx, esi
call dword [eax + 4]
lea eax, [ebp - 0x44]
mov ecx, esi
push eax
call fcn.00459a60
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x44]
call fcn.00404db0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x74]
call fcn.00404db0
mov dword [ebp - 0xdc], 0
mov byte [ebp - 4], 0x12
lea eax, [ebp - 0xd4]
push edi
push eax
lea ecx, [ebp - 0xdc]
call fcn.00412900
mov byte [ebx + 0x494], al
test al, al
je 0x4193bf
cmp byte [0x51caa5], 0
jne 0x4192cf
cmp byte [0x522582], 0
je 0x41933b
push 0
push ecx
push str.SetupEngine.cpp
lea ecx, [ebp - 0x44]
mov dword [ebp - 0x44], 0x4dd804
mov dword [ebp - 0x1c], 0x4dcac4
call fcn.00406e60
mov byte [ebp - 4], 0x14
push 0
push ecx
push str.Valid_password_supplied
lea ecx, [ebp - 0x74]
mov dword [ebp - 0x74], 0x4dd804
mov dword [ebp - 0x4c], 0x4dcac4
call fcn.00406e60
mov byte [ebp - 4], 0x16
lea edx, [ebp - 0x44]
push 0xb5
lea ecx, [ebp - 0x74]
call fcn.00486f90
mov byte [ebp - 4], 0x14
lea ecx, [ebp - 0x74]
call fcn.004049f0
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0x44]
call fcn.004049f0
push 0
lea eax, [ebp - 0xd5]
mov dword [ebp - 0x74], 0x4dd804
push eax
push str.true
lea ecx, [ebp - 0x74]
mov dword [ebp - 0x4c], 0x4dcac4
call fcn.004042c0
mov byte [ebp - 4], 0x1a
lea eax, [ebp - 0xd5]
push 0
push eax
push str.ISPasswordValid
lea ecx, [ebp - 0x44]
mov dword [ebp - 0x44], 0x4dd804
mov dword [ebp - 0x1c], 0x4dcac4
call fcn.004042c0
mov byte [ebp - 4], 0x1c
lea ecx, [ebp - 0x74]
mov eax, dword [esi]
push ecx
lea ecx, [ebp - 0x44]
push ecx
mov ecx, esi
call dword [eax + 4]
lea eax, [ebp - 0x44]
mov ecx, esi
push eax
call fcn.00459a60
mov byte [ebp - 4], 0x1a
lea ecx, [ebp - 0x44]
call fcn.00404db0
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0x74]
call fcn.00404db0
jmp 0x41943d
cmp byte [0x51caa5], 0
jne 0x4193d1
cmp byte [0x522582], 0
je 0x41943d
push 0
push ecx
push str.SetupEngine.cpp
lea ecx, [ebp - 0x44]
mov dword [ebp - 0x44], 0x4dd804
mov dword [ebp - 0x1c], 0x4dcac4
call fcn.00406e60
mov byte [ebp - 4], 0x20
push 0
push ecx
push str.Invalid_password_supplied
lea ecx, [ebp - 0x74]
mov dword [ebp - 0x74], 0x4dd804
mov dword [ebp - 0x4c], 0x4dcac4
call fcn.00406e60
mov byte [ebp - 4], 0x22
lea edx, [ebp - 0x44]
push 0xba
lea ecx, [ebp - 0x74]
call fcn.00486f90
mov byte [ebp - 4], 0x20
lea ecx, [ebp - 0x74]
call fcn.004049f0
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0x44]
call fcn.004049f0
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0xdc]
test eax, eax
je 0x419454
push eax
call fcn.004996db
add esp, 4
mov dword [ebp - 0xdc], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xd4]
jmp 0x4197e5
mov edx, str.ISPasswordValid
lea ecx, [ebp - 0xa0]
call fcn.0042f200
test al, al
je 0x419486
jmp 0x4197ea
mov edx, str.ISSelectedLanguage
lea ecx, [ebp - 0xa0]
call fcn.0042f200
test al, al
je 0x4194c1
mov eax, dword [ebx + 0x498]
lea ecx, [ebx + 0x498]
push edi
push esi
call dword [eax + 4]
mov eax, dword [ebx + 0x284]
lea ecx, [ebx + 0x284]
push edi
push esi
call dword [eax + 4]
jmp 0x4197ea
mov edx, str.ORIGINALSETUPEXEDIR
lea ecx, [ebp - 0xa0]
call fcn.0042f200
test al, al
je 0x41953b
cmp dword [edi + 0x18], 8
lea eax, [edi + 4]
jb 0x4194e0
mov eax, dword [eax]
push eax
lea eax, [ebp - 0xe8]
mov dword [ebp - 0xe8], str.SetupEngine.cpp
push str.Engine:_running_from_temp__original_setup:__s
push eax
mov dword [ebp - 0xe4], 0xd1
call fcn.0040b080
add esp, 0xc
lea ecx, [ebx + 0x3e8]
push edi
call fcn.00404140
mov eax, dword [ebx + 0x284]
lea esi, [ebx + 0x284]
mov ebx, dword [ebp - 0xdc]
mov ecx, esi
push edi
push ebx
call dword [eax + 4]
push ebx
mov ecx, esi
call fcn.00459a60
jmp 0x4197ea
mov edx, str.ORIGINALSETUPEXENAME
lea ecx, [ebp - 0xa0]
call fcn.0042f200
test al, al
je 0x41959f
push 0
lea eax, [ebp - 0xd5]
mov dword [ebp - 0x44], 0x4dd804
push eax
push str.ORIGINALSETUPEXENAME
lea ecx, [ebp - 0x44]
mov dword [ebp - 0x1c], 0x4dcac4
call fcn.004042c0
mov byte [ebp - 4], 0x28
lea ecx, [ebp - 0x44]
mov eax, dword [ebx + 0x284]
push edi
push ecx
lea ecx, [ebx + 0x284]
call dword [eax + 4]
lea eax, [ebp - 0x44]
push eax
lea ecx, [ebx + 0x284]
call fcn.00459a60
jmp 0x4197de
mov edx, 0x4dea74
lea ecx, [ebp - 0xa0]
call fcn.0042f200
test al, al
je 0x419630
mov eax, dword [ebx + 0x284]
lea ecx, [ebx + 0x284]
push edi
push dword [ebp - 0xdc]
call dword [eax + 4]
push dword [ebp - 0xdc]
lea ecx, [ebx + 0x284]
call fcn.00459a60
add edi, 4
cmp dword [edi + 0x14], 8
jb 0x4195e5
mov edi, dword [edi]
push edi
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov dword [ebx + 0x4fc], eax
test eax, eax
je 0x4197ea
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x4197ea
push 0x80040711
lea ecx, [ebp - 0xf0]
call fcn.00434ed0
push 0x51935c
lea eax, [ebp - 0xf0]
push eax
call fcn.0049b7fa
mov edx, str.UpdateUrl
lea ecx, [ebp - 0xa0]
call fcn.0042f200
test al, al
je 0x41966f
mov ecx, edi
call fcn.0042a860
test al, al
jne 0x41965e
mov ecx, edi
call fcn.0042a790
test al, al
je 0x4197ea
push edi
lea ecx, [ebx + 0x568]
call fcn.00404140
jmp 0x4197ea
test esi, esi
je 0x419678
lea ecx, [esi + 4]
jmp 0x41967a
xor ecx, ecx
push str.ISHiddenProperties
call fcn.0040ddf0
test eax, eax
jne 0x4196f7
cmp byte [ebx + 0x6dc], al
jne 0x4197ea
lea eax, [ebp - 0x74]
mov ecx, edi
push eax
call fcn.004068f0
mov byte [ebp - 4], 0x2a
sub esp, 8
lea ecx, [ebp - 0xd4]
push 0x4df050
call fcn.00406f50
mov byte [ebp - 4], 0x2b
lea eax, [ebx + 0x6d0]
push eax
lea eax, [ebp - 0xd4]
push eax
lea ecx, [ebp - 0x74]
call fcn.0042a620
mov byte [ebp - 4], 0x2a
lea ecx, [ebp - 0xd4]
call fcn.004049f0
mov byte [ebx + 0x6dc], 1
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x74]
call fcn.004049f0
jmp 0x4197ea
mov al, byte [ebx + 0x290]
lea ecx, [ebx + 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.00404e60
mov byte [ebp - 4], 0x2e
lea eax, [ebp - 0xd4]
push eax
mov ecx, esi
call fcn.004068f0
mov byte [ebp - 4], 0x2f
push dword [ebp - 0xe4]
mov esi, dword [ebx + 0x6d4]
mov edx, esi
mov ecx, dword [ebx + 0x6d0]
push eax
call fcn.00430ec0
add esp, 8
cmp eax, esi
setne bl
mov byte [ebp - 4], 0x2e
lea ecx, [ebp - 0xd4]
call fcn.004049f0
lea ecx, [ebp - 0x44]
test bl, bl
je 0x41977a
push 0x4df054
call fcn.004040d0
jmp 0x419780
push edi
call fcn.00404140
mov ebx, dword [ebp - 0xdc]
lea ecx, [ebp - 0x40]
cmp dword [ebp - 0x2c], 8
lea eax, [ebx + 4]
cmovae ecx, dword [ebp - 0x40]
cmp dword [eax + 0x14], 8
jb 0x41979c
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], 0xff
call fcn.0040b080
mov esi, dword [ebp - 0xe4]
add esp, 0x10
mov ecx, esi
mov eax, dword [esi]
push edi
push ebx
call dword [eax + 4]
mov al, byte [ebp - 0xd5]
mov byte [esi + 0xc], al
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x44]
call fcn.00404db0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xa4]
call fcn.004049f0
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.004996ca
mov esp, ebp
pop ebp
ret 0xc