Function at 0x140019ee0
Capabilities:
Check mutex on windows

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0xb0]
sub rsp, 0x1b0
mov qword [rsp + 0x58], 0xfffffffffffffffe
mov qword [rsp + 0x208], rbx
mov rax, qword [0x1401730f8]
xor rax, rsp
mov qword [rbp + 0xa0], rax
mov byte [rsp + 0x31], r9b
mov rsi, r8
mov r13, rdx
mov r14, rcx
lea rdx, [rbp]
mov rcx, r13
call fcn.1400064c0
nop
lea rcx, [rbp + 8]
mov rbx, qword [rbp + 8]
mov rdi, qword [rbp + 0x20]
cmp rdi, 8
cmovae rcx, rbx
mov r9d, 0xa
lea r8, str.ISPassword
mov rdx, qword [rbp + 0x18]
call fcn.1400354e0
test eax, eax
jne 0x14001a3f9
lea r13, [0x140102478]
mov qword [rbp - 0x50], r13
lea rbx, [0x1401025f8]
mov qword [rbp - 0x10], rbx
xor r9d, r9d
lea r8, [rsp + 0x30]
lea rdx, str.Password
lea rcx, [rbp - 0x50]
call fcn.140003cb0
nop
mov rax, qword [r14 + 0x460]
lea r8, [rbp - 0x50]
lea rdx, [rbp + 0x50]
lea rcx, [r14 + 0x460]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
nop
lea rcx, [rbp - 0x50]
call fcn.1400048d0
lea rdi, [0x140102478]
lea r12, [0x1401025f8]
cmp qword [rbp + 0x68], 0
jne 0x14001a118
cmp byte [0x140173b48], 0
jne 0x140019feb
cmp byte [0x14017bbb1], 0
je 0x14001a095
mov qword [rbp - 0x50], rdi
mov qword [rbp - 0x10], r12
xor r9d, r9d
lea rdx, str.SetupEngine.cpp
lea rcx, [rbp - 0x50]
call fcn.140006ab0
nop
mov qword [rsp + 0x60], rdi
mov qword [rbp - 0x60], r12
xor r9d, r9d
lea rdx, str.Password_set_with_no_password_in_setup.xml
lea rcx, [rsp + 0x60]
call fcn.140006ab0
nop
cmp byte [0x140173b48], 0
je 0x14001a04e
cmp byte [0x14017bbb1], 0
jne 0x14001a040
call fcn.140099320
test al, al
je 0x14001a047
mov byte [0x14017bbb1], 1
mov byte [0x140173b48], 0
cmp byte [0x14017bbb1], 0
je 0x14001a081
lea rdx, [rbp - 0x48]
cmp qword [rbp - 0x30], 8
cmovae rdx, qword [rbp - 0x48]
lea rcx, [rsp + 0x68]
cmp qword [rbp - 0x80], 8
cmovae rcx, qword [rsp + 0x68]
mov r8d, 0xbc
call fcn.140099810
nop
lea rcx, [rsp + 0x60]
call fcn.140004280
nop
lea rcx, [rbp - 0x50]
call fcn.140004280
mov qword [rsp + 0x60], r13
mov qword [rbp - 0x60], rbx
xor r9d, r9d
lea r8, [rsp + 0x30]
lea rdx, str.true
lea rcx, [rsp + 0x60]
call fcn.140003cb0
nop
mov qword [rbp - 0x50], r13
mov qword [rbp - 0x10], rbx
xor r9d, r9d
lea r8, [rsp + 0x30]
lea rdx, str.ISPasswordValid
lea rcx, [rbp - 0x50]
call fcn.140003cb0
nop
mov rax, qword [r14 + 0x460]
lea r8, [rsp + 0x60]
lea rdx, [rbp - 0x50]
lea rcx, [r14 + 0x460]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rdx, [rbp - 0x50]
lea rcx, [r14 + 0x460]
call fcn.140068f00
nop
lea rcx, [rbp - 0x50]
call fcn.1400048d0
nop
lea rcx, [rsp + 0x60]
call fcn.1400048d0
xor r15d, r15d
mov qword [rsp + 0x38], r15
mov rdx, rsi
lea rcx, [rsp + 0x38]
call fcn.140012fe0
mov ebx, eax
mov qword [rsp + 0x60], r13
lea rsi, [0x1401025f8]
mov qword [rbp - 0x60], rsi
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rbp - 0x58], eax
mov qword [rsp + 0x78], r15
mov qword [rbp - 0x80], r15
mov qword [rbp - 0x80], 7
mov qword [rsp + 0x78], r15
mov word [rsp + 0x68], r15w
mov qword [rbp - 0x78], r15
mov qword [rbp - 0x70], r15
mov qword [rbp - 0x68], r15
mov rax, qword [rbp - 0x60]
movsxd rcx, dword [rax + 4]
mov ecx, dword [rbp + rcx - 0x60]
call qword [sym.imp.KERNEL32.dll_SetLastError]
nop
mov r8d, ebx
lea rdx, [0x140103604]
lea rcx, [rsp + 0x60]
call fcn.14000f520
lea rdx, [rsp + 0x68]
lea rcx, [rbp + 0x58]
call fcn.1400077f0
nop
test eax, eax
jne 0x14001a1b8
lea rcx, [rsp + 0x60]
call fcn.1400048d0
mov al, 1
jmp 0x14001a1c4
lea rcx, [rsp + 0x60]
call fcn.1400048d0
xor al, al
mov byte [r14 + 0x710], al
test al, al
je 0x14001a31b
cmp byte [0x140173b48], 0
jne 0x14001a1e9
cmp byte [0x14017bbb1], 0
je 0x14001a293
mov qword [rsp + 0x60], rdi
mov qword [rbp - 0x60], r12
xor r9d, r9d
lea rdx, str.SetupEngine.cpp
lea rcx, [rsp + 0x60]
call fcn.140006ab0
nop
mov qword [rbp - 0x50], rdi
mov qword [rbp - 0x10], r12
xor r9d, r9d
lea rdx, str.Valid_password_supplied
lea rcx, [rbp - 0x50]
call fcn.140006ab0
nop
cmp byte [0x140173b48], 0
je 0x14001a24c
cmp byte [0x14017bbb1], 0
jne 0x14001a23e
call fcn.140099320
test al, al
je 0x14001a245
mov byte [0x14017bbb1], 1
mov byte [0x140173b48], 0
cmp byte [0x14017bbb1], 0
je 0x14001a27f
lea rdx, [rsp + 0x68]
cmp qword [rbp - 0x80], 8
cmovae rdx, qword [rsp + 0x68]
lea rcx, [rbp - 0x48]
cmp qword [rbp - 0x30], 8
cmovae rcx, qword [rbp - 0x48]
mov r8d, SetErrorInfo
call fcn.140099810
nop
lea rcx, [rbp - 0x50]
call fcn.140004280
nop
lea rcx, [rsp + 0x60]
call fcn.140004280
mov qword [rsp + 0x60], r13
mov qword [rbp - 0x60], rsi
xor r9d, r9d
lea r8, [rsp + 0x30]
lea rdx, str.true
lea rcx, [rsp + 0x60]
call fcn.140003cb0
nop
mov qword [rbp - 0x50], r13
mov qword [rbp - 0x10], rsi
xor r9d, r9d
lea r8, [rsp + 0x30]
lea rdx, str.ISPasswordValid
lea rcx, [rbp - 0x50]
call fcn.140003cb0
nop
mov rax, qword [r14 + 0x460]
lea r8, [rsp + 0x60]
lea rdx, [rbp - 0x50]
lea rcx, [r14 + 0x460]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rdx, [rbp - 0x50]
lea rcx, [r14 + 0x460]
call fcn.140068f00
nop
lea rcx, [rbp - 0x50]
call fcn.1400048d0
nop
lea rcx, [rsp + 0x60]
call fcn.1400048d0
jmp 0x14001a3dc
cmp byte [0x140173b48], 0
jne 0x14001a331
cmp byte [0x14017bbb1], 0
je 0x14001a3dc
mov qword [rsp + 0x60], rdi
mov qword [rbp - 0x60], r12
xor r9d, r9d
lea rdx, str.SetupEngine.cpp
lea rcx, [rsp + 0x60]
call fcn.140006ab0
nop
mov qword [rbp - 0x50], rdi
mov qword [rbp - 0x10], r12
xor r9d, r9d
lea rdx, str.Invalid_password_supplied
lea rcx, [rbp - 0x50]
call fcn.140006ab0
nop
cmp byte [0x140173b48], 0
je 0x14001a394
cmp byte [0x14017bbb1], 0
jne 0x14001a386
call fcn.140099320
test al, al
je 0x14001a38d
mov byte [0x14017bbb1], 1
mov byte [0x140173b48], 0
cmp byte [0x14017bbb1], 0
je 0x14001a3c7
lea rdx, [rsp + 0x68]
cmp qword [rbp - 0x80], 8
cmovae rdx, qword [rsp + 0x68]
lea rcx, [rbp - 0x48]
cmp qword [rbp - 0x30], 8
cmovae rcx, qword [rbp - 0x48]
mov r8d, reloc.OLEAUT32.dll_SetErrorInfo
call fcn.140099810
nop
lea rcx, [rbp - 0x50]
call fcn.140004280
nop
lea rcx, [rsp + 0x60]
call fcn.140004280
nop
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x14001a3eb
call fcn.1400b3214
mov qword [rsp + 0x38], r15
lea rcx, [rbp + 0x50]
jmp 0x14001aa38
lea rcx, [rbp + 8]
cmp rdi, 8
cmovae rcx, rbx
mov r9d, reloc.OLEAUT32.dll_SafeArrayDestroy
lea r8, str.ISPasswordValid
call fcn.1400354e0
test eax, eax
jne 0x14001a420
jmp 0x14001aa3e
lea rcx, [rbp + 8]
cmp rdi, 8
cmovae rcx, rbx
mov r9d, SafeArrayGetLBound
lea r8, str.ISSelectedLanguage
call fcn.1400354e0
test eax, eax
jne 0x14001a475
lea rcx, [r14 + 0x718]
mov rax, qword [rcx]
mov r8, rsi
mov rdx, r13
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rcx, [r14 + 0x460]
mov rax, qword [rcx]
mov r8, rsi
mov rdx, r13
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rcx, r14
call fcn.14002c890
jmp 0x14001aa3e
lea rcx, [rbp + 8]
cmp rdi, 8
cmovae rcx, rbx
mov r9d, reloc.OLEAUT32.dll_SafeArrayGetLBound
lea r8, str.ORIGINALSETUPEXEDIR
call fcn.1400354e0
test eax, eax
jne 0x14001a504
lea r8, [rsi + 8]
cmp qword [r8 + 0x18], 8
jb 0x14001a4a5
mov r8, qword [r8]
lea rax, str.SetupEngine.cpp
mov qword [rsp + 0x38], rax
mov dword [rsp + 0x40], 0xe2
lea rdx, str.Engine:_running_from_temp__original_setup:__s
lea rcx, [rsp + 0x38]
call fcn.14000b8a0
lea rcx, [r14 + 0x600]
mov rdx, rsi
call fcn.1400043b0
mov rax, qword [r14 + 0x460]
mov r8, rsi
mov rdx, r13
lea rcx, [r14 + 0x460]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rdx, r13
lea rcx, [r14 + 0x460]
call fcn.140068f00
jmp 0x14001aa3e
lea rcx, [rbp + 8]
cmp rdi, 8
cmovae rcx, rbx
mov r9d, reloc.OLEAUT32.dll_SafeArrayLock
lea r8, str.ORIGINALSETUPEXENAME
call fcn.1400354e0
test eax, eax
jne 0x14001a587
lea rax, [0x140102478]
mov qword [rbp - 0x50], rax
lea rax, [0x1401025f8]
mov qword [rbp - 0x10], rax
xor r9d, r9d
lea r8, [rsp + 0x30]
lea rdx, str.ORIGINALSETUPEXENAME
lea rcx, [rbp - 0x50]
call fcn.140003cb0
nop
mov rax, qword [r14 + 0x460]
mov r8, rsi
lea rdx, [rbp - 0x50]
lea rcx, [r14 + 0x460]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rdx, [rbp - 0x50]
lea rcx, [r14 + 0x460]
call fcn.140068f00
nop
lea rcx, [rbp - 0x50]
jmp 0x14001aa38
lea rcx, [rbp + 8]
cmp rdi, 8
cmovae rcx, rbx
mov r9d, 7
lea r8, str.SuiteId
call fcn.1400354e0
test eax, eax
jne 0x14001a64d
mov rax, qword [r14 + 0x460]
mov r8, rsi
mov rdx, r13
lea rcx, [r14 + 0x460]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rdx, r13
lea rcx, [r14 + 0x460]
call fcn.140068f00
lea r8, [rsi + 8]
cmp qword [r8 + 0x18], 8
jb 0x14001a5e1
mov r8, qword [r8]
mov edx, 1
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateMutexW]
mov qword [r14 + 0x7e8], rax
test rax, rax
je 0x14001aa3e
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x14001aa3e
lea rax, vtable.std::exception.0
mov qword [rsp + 0x38], rax
xor eax, eax
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], rax
lea rax, vtable.bootstrap_exception.0
mov qword [rsp + 0x38], rax
mov dword [rsp + 0x50], 0x80040711
lea rdx, [0x14016fed8]
lea rcx, [rsp + 0x38]
call fcn.1400b5470
int3
lea rcx, [rbp + 8]
cmp rdi, 8
cmovae rcx, rbx
mov r9d, 9
lea r8, str.UpdateUrl
call fcn.1400354e0
test eax, eax
jne 0x14001a69f
mov rcx, rsi
call fcn.14002eb60
test al, al
jne 0x14001a68b
mov rcx, rsi
call fcn.14002ea80
test al, al
je 0x14001aa3e
lea rcx, [r14 + 0x8f0]
mov rdx, rsi
call fcn.1400043b0
jmp 0x14001aa3e
lea rcx, [r13 + 8]
xor r15d, r15d
test r13, r13
cmove rcx, r15
lea rdx, str.ISHiddenProperties
call fcn.14000e920
test eax, eax
jne 0x14001a77c
cmp byte [r14 + 0xb78], r15b
jne 0x14001aa3e
lea rdx, [rbp + 0x50]
mov rcx, rsi
call fcn.1400064c0
nop
lea rdi, [0x140102478]
mov qword [rbp - 0x50], rdi
lea r12, [0x1401025f8]
mov qword [rbp - 0x10], r12
xor r9d, r9d
lea rdx, [0x140104bbc]
lea rcx, [rbp - 0x50]
call fcn.140006ab0
nop
lea rax, [rsp + 0x60]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x60], rdi
mov qword [rbp - 0x60], r12
xor r8d, r8d
lea rdx, [rbp - 0x50]
lea rcx, [rsp + 0x60]
call fcn.140004120
nop
mov rax, qword [rbp - 0x38]
lea r9, [r14 + 0xb60]
mov qword [rsp + 0x20], rax
lea rdx, [rsp + 0x60]
lea rcx, [rbp + 0x50]
call fcn.140034db0
nop
lea rcx, [rbp - 0x50]
call fcn.140004280
mov byte [r14 + 0xb78], 1
lea rcx, [r14 + 0x460]
mov rax, qword [rcx]
mov r8, rsi
mov rdx, r13
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rcx, [rbp + 0x50]
call fcn.140004280
jmp 0x14001aa3e
lea rcx, [rbp + 8]
mov rbx, qword [rbp + 8]
mov rdi, qword [rbp + 0x20]
cmp rdi, 8
cmovae rcx, rbx
mov r9d, SafeArrayGetDim
lea r8, str.UninstallOrder
mov rdx, qword [rbp + 0x18]
call fcn.1400354e0
test eax, eax
je 0x14001a8bb
lea rcx, [rbp + 8]
cmp rdi, 8
cmovae rcx, rbx
mov r9d, SafeArrayGetLBound
lea r8, str.ISInstallationType
call fcn.1400354e0
test eax, eax
jne 0x14001a899
lea rcx, [rsi + 8]
test rsi, rsi
cmove rcx, r15
lea rdx, [0x140109678]
call fcn.14000e920
test eax, eax
jne 0x14001a88d
lea rax, [0x140102478]
mov qword [rbp - 0x50], rax
lea rax, [0x1401025f8]
mov qword [rbp - 0x10], rax
xor r9d, r9d
lea r8, [rsp + 0x30]
lea rdx, str.ISInstallationType
lea rcx, [rbp - 0x50]
call fcn.140003cb0
nop
lea rcx, [r14 + 0x460]
mov rax, qword [rcx]
lea r8, [rbp - 0x50]
lea rdx, [rbp + 0x50]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
nop
lea rcx, [rbp - 0x50]
call fcn.1400048d0
mov r9d, 1
lea r8, [rsp + 0x30]
lea rdx, [0x140104c88]
lea rcx, [rbp - 0x50]
call fcn.140009b30
nop
lea rcx, [rax + 8]
lea rdx, [rbp + 0x58]
call fcn.1400077f0
test eax, eax
sete bl
lea rcx, [rbp - 0x50]
call fcn.1400048d0
test bl, bl
je 0x14001a884
mov byte [r14 + 0xb79], 1
lea rcx, [rbp + 0x50]
jmp 0x14001aa38
mov rdi, qword [rbp + 0x20]
mov rdx, qword [rbp + 0x18]
mov rbx, qword [rbp + 8]
lea rcx, [rbp + 8]
cmp rdi, 8
cmovae rcx, rbx
mov r9d, SafeArrayGetDim
lea r8, str.UninstallOrder
call fcn.1400354e0
test eax, eax
jne 0x14001a8e4
lea rcx, [rsi + 8]
test rsi, rsi
cmove rcx, r15
lea rdx, [0x140104bc0]
call fcn.14000e920
test eax, eax
sete r15b
mov dword [r14 + 0xb7c], r15d
jmp 0x14001aa3e
movzx eax, byte [r14 + 0x478]
mov byte [rsp + 0x30], al
movzx ecx, byte [rsp + 0x31]
mov byte [r14 + 0x478], cl
lea rax, [0x140102478]
mov qword [rsp + 0x60], rax
lea rax, [0x1401025f8]
mov qword [rbp - 0x60], rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rbp - 0x58], eax
mov qword [rsp + 0x78], r15
mov qword [rbp - 0x80], r15
mov qword [rbp - 0x80], 7
mov qword [rsp + 0x78], r15
mov word [rsp + 0x68], r15w
mov qword [rbp - 0x78], r15
mov qword [rbp - 0x70], r15
mov qword [rbp - 0x68], r15
mov rax, qword [rbp - 0x60]
movsxd rcx, dword [rax + 4]
mov ecx, dword [rbp + rcx - 0x60]
call qword [sym.imp.KERNEL32.dll_SetLastError]
nop
lea rdx, [rbp + 0x50]
mov rcx, r13
call fcn.1400064c0
nop
mov rbx, qword [r14 + 0xb68]
mov r8, rax
mov rdx, rbx
mov rcx, qword [r14 + 0xb60]
call fcn.140036440
mov rdi, rax
lea rcx, [rbp + 0x50]
call fcn.140004280
cmp rdi, rbx
je 0x14001a9a7
mov r8d, 8
lea rdx, [0x140104c90]
lea rcx, [rsp + 0x68]
call fcn.140004400
jmp 0x14001a9cd
lea rdx, [rsi + 8]
test rsi, rsi
cmove rdx, r15
lea rax, [rsp + 0x68]
cmp rax, rdx
je 0x14001a9cd
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rcx, [rsp + 0x68]
call fcn.140004680
lea r9, [rsp + 0x68]
cmp qword [rbp - 0x80], 8
cmovae r9, qword [rsp + 0x68]
lea r8, [r13 + 8]
cmp qword [r8 + 0x18], 8
jb 0x14001a9eb
mov r8, qword [r8]
lea rax, str.SetupEngine.cpp
mov qword [rsp + 0x38], rax
mov dword [rsp + 0x40], 0x127
lea rdx, str.Engine:_property__s_value_now__s
lea rcx, [rsp + 0x38]
call fcn.14000b8a0
mov rax, qword [r14 + 0x460]
mov r8, rsi
mov rdx, r13
lea rcx, [r14 + 0x460]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
movzx eax, byte [rsp + 0x30]
mov byte [r14 + 0x478], al
lea rcx, [rsp + 0x60]
call fcn.1400048d0
nop
lea rcx, [rbp]
call fcn.140004280
mov rcx, qword [rbp + 0xa0]
xor rcx, rsp
call fcn.1400b31f0
mov rbx, qword [rsp + 0x208]
add rsp, 0x1b0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret