Function at 0x483720
Capabilities:
Check mutex on windows

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5f139d
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x70
mov eax, dword [0x67d070]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov eax, dword [0x689928]
test eax, eax
jne 0x4837a5
push 0x3d8
call fcn.00599c81
mov esi, eax
add esp, 4
mov dword [ebp - 0x4c], esi
push 0x3d8
push 0
push esi
mov dword [ebp - 4], 0
call fcn.005b3770
add esp, 0xc
mov ecx, esi
call fcn.0042ca50
mov dword [ebp - 4], 0xffffffff
mov dword [0x689928], eax
mov al, byte [eax + 0xf4]
test al, al
jne 0x48384e
push 0
mov byte [ebp - 0x45], al
call dword [sym.imp.KERNEL32.DLL_SetLastError]
push str.Global_MSIExecute
push 1
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0xc
xorps xmm0, xmm0
push eax
movq qword [ebp - 0x1c], xmm0
call dword [sym.imp.KERNEL32.DLL_CreateMutexW]
mov esi, eax
test esi, esi
je 0x48384e
call dword [sym.imp.KERNEL32.DLL_GetLastError]
movzx ecx, byte [ebp - 0x45]
cmp eax, 0xb7
mov edx, 1
cmove ecx, edx
push esi
mov dword [ebp - 0x4c], ecx
call dword [sym.imp.KERNEL32.DLL_ReleaseMutex]
push esi
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
cmp byte [ebp - 0x4c], 0
je 0x48384e
mov eax, fcn.0042c970
test eax, eax
je 0x48383e
push str.Another_MSI_installation_in_progress
push 0x622628
push 0x622628
push str.WorkflowManager
push str.WAMB
push 0x32
call fcn.0042c970
add esp, 0x18
push 0
push 0x57
mov ecx, edi
call fcn.00489f40
jmp 0x483d18
push 0x24
call fcn.00599c81
mov esi, eax
add esp, 4
mov dword [ebp - 0x4c], esi
mov dword [ebp - 4], 1
lea ecx, [ebp - 0x68]
xorps xmm0, xmm0
xor eax, eax
movups xmmword [esi], xmm0
push 0x2d
movups xmmword [esi + 0x10], xmm0
mov dword [esi + 0x20], 0
push str.Global3EBE6875_9C4E_4782_8A43_275AFFFCA6FB
mov dword [ebp - 0x54], 7
mov dword [ebp - 0x58], 0
mov word [ebp - 0x68], ax
call fcn.00407060
lea ecx, [esi + 4]
mov dword [esi], vtable.OOBEUtils::SystemLevelMutex.0
mov dword [ecx + 0x14], 7
mov dword [ecx + 0x10], 0
cmp dword [ecx + 0x14], 8
jb 0x4838b9
mov eax, dword [ecx]
jmp 0x4838bb
mov eax, ecx
xor edx, edx
mov word [eax], dx
lea eax, [ebp - 0x68]
mov byte [ebp - 4], 3
cmp ecx, eax
je 0x4838d4
push 0xffffffffffffffff
push edx
push eax
call fcn.00407550
mov dword [esi + 0x1c], 0
mov byte [esi + 0x20], 0
mov eax, dword [ebp - 0x54]
cmp eax, 8
jb 0x4838f4
inc eax
lea ecx, [ebp - 0x68]
push eax
push dword [ebp - 0x68]
call fcn.00407b40
mov dword [ebp - 4], 0xffffffff
mov ecx, esi
mov dword [edi + 0x448], esi
mov eax, dword [esi]
mov eax, dword [eax + 4]
call eax
test al, al
mov eax, fcn.0042c970
jne 0x483991
test eax, eax
je 0x48393a
push str.Failed_to_acquire_Bootstrapper_Lock
push 0x622628
push 0x622628
push str.WorkflowManager
push str.WAMB
push 0x32
call fcn.0042c970
add esp, 0x18
push 0
push 0x51
mov ecx, edi
call fcn.00489f40
push str.BootsrapperLockAcquireFailed
lea ecx, [ebp - 0x2c]
call fcn.00406e60
lea eax, [ebp - 0x2c]
mov ecx, edi
push eax
call fcn.00489f00
mov eax, dword [ebp - 0x18]
cmp eax, 8
jb 0x483972
inc eax
lea ecx, [ebp - 0x2c]
push eax
push dword [ebp - 0x2c]
call fcn.00407b40
mov ecx, dword [edi + 0x448]
test ecx, ecx
je 0x483982
mov eax, dword [ecx]
push 1
call dword [eax]
mov dword [edi + 0x448], 0
jmp 0x483d18
test eax, eax
je 0x4839b8
push str.Bootstrapper_Lock_acquired
push 0x622628
push 0x622628
push str.WorkflowManager
push str.WAMB
push 0x1e
call fcn.0042c970
add esp, 0x18
call fcn.004596b0
test al, al
jne 0x483ac2
push 0x24
call fcn.00599c81
mov esi, eax
add esp, 4
mov dword [ebp - 0x4c], esi
mov dword [ebp - 4], 4
lea ecx, [ebp - 0x80]
xorps xmm0, xmm0
movups xmmword [esi], xmm0
push str.GlobalA5841EB4_52AA_403B_A912_9755F616D226
movups xmmword [esi + 0x10], xmm0
mov dword [esi + 0x20], 0
call fcn.00406e60
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
mov dword [esi + 0x14], 7
mov dword [esi + 0x10], 0
cmp dword [esi + 0x14], 8
jb 0x483a1f
mov eax, dword [esi]
jmp 0x483a21
mov eax, esi
xor ecx, ecx
mov word [eax], cx
lea eax, [ebp - 0x80]
mov byte [ebp - 4], 6
cmp esi, eax
je 0x483a3c
push 0xffffffffffffffff
push ecx
push eax
mov ecx, esi
call fcn.00407550
mov dword [esi + 0x1c], 1
mov byte [esi + 0x20], 0
mov dword [esi + 0x18], 0
mov eax, dword [ebp - 0x6c]
cmp eax, 8
jb 0x483a63
inc eax
lea ecx, [ebp - 0x80]
push eax
push dword [ebp - 0x80]
call fcn.00407b40
mov dword [ebp - 4], 0xffffffff
mov ecx, esi
mov dword [edi + 0x44c], esi
call fcn.004ce0f0
test al, al
je 0x483b38
push 0
push dword [esi + 0x18]
call dword [sym.imp.KERNEL32.DLL_WaitForSingleObject]
test eax, eax
jne 0x483b38
mov eax, fcn.0042c970
mov byte [esi + 0x20], 1
test eax, eax
je 0x483ac2
push str.LBS_Lock_acquired
push 0x622628
push 0x622628
push str.WorkflowManager
push str.WAMB
push 0x1e
call fcn.0042c970
add esp, 0x18
sub esp, 0x18
mov ecx, esp
push str.Global359dca4322b8b4a0f7f92bf448150fb
call fcn.00406e60
call fcn.004cdf00
mov byte [ebp - 0x45], al
add esp, 0x18
mov eax, dword [0x689928]
test eax, eax
jne 0x483b21
push 0x3d8
call fcn.00599c81
mov esi, eax
add esp, 4
mov dword [ebp - 0x4c], esi
push 0x3d8
push 0
push esi
mov dword [ebp - 4], 7
call fcn.005b3770
add esp, 0xc
mov ecx, esi
call fcn.0042ca50
mov dword [ebp - 4], 0xffffffff
mov dword [0x689928], eax
mov al, byte [eax + 0xf5]
test al, al
je 0x483bc8
mov byte [ebp - 0x46], 0
jmp 0x483be2
mov eax, fcn.0042c970
test eax, eax
je 0x483b64
push str.Failed_to_acquire_LBS_Lock
push 0x622628
push 0x622628
push str.WorkflowManager
push str.WAMB
push 0x32
call fcn.0042c970
add esp, 0x18
push 0
push 0x51
mov ecx, edi
call fcn.00489f40
push str.LBSLockAcquireFailed
lea ecx, [ebp - 0x2c]
call fcn.00406e60
lea eax, [ebp - 0x2c]
mov ecx, edi
push eax
call fcn.00489f00
lea ecx, [ebp - 0x2c]
call fcn.00406e20
mov ecx, dword [edi + 0x448]
test ecx, ecx
je 0x483b9f
mov eax, dword [ecx]
push 1
call dword [eax]
mov ecx, dword [edi + 0x44c]
mov dword [edi + 0x448], 0
test ecx, ecx
je 0x483bb9
push ecx
call fcn.00483d40
mov dword [edi + 0x44c], 0
jmp 0x483d18
sub esp, 0x18
mov ecx, esp
push str.Global17984755fe166b7170b9b5099053521c
call fcn.00406e60
call fcn.004cdf00
add esp, 0x18
mov byte [ebp - 0x46], al
sub esp, 0x18
mov ecx, esp
push str.GlobalBCE7F5CF_10A4_43a6_AA0E_055DA47D1921
call fcn.00406e60
sub esp, 8
mov ecx, 0xff
call fcn.004cddb0
add esp, 0x20
cmp byte [ebp - 0x45], 0
jne 0x483c54
cmp byte [ebp - 0x46], 0
jne 0x483c54
test al, al
je 0x483c4d
mov eax, fcn.0042c970
test eax, eax
je 0x483c3d
push str.AAM_workflow_is_going_on
push 0x622628
push 0x622628
push str.WorkflowManager
push str.WAMB
push 0x32
call fcn.0042c970
add esp, 0x18
push 1
push 0x52
mov ecx, edi
call fcn.00489f40
jmp 0x483b8f
mov al, 1
jmp 0x483d1a
mov eax, fcn.0042c970
test eax, eax
je 0x483c80
push str.Dep_workflow_is_going_on
push 0x622628
push 0x622628
push str.WorkflowManager
push str.WAMB
push 0x32
call fcn.0042c970
add esp, 0x18
push 0
push 0x51
mov ecx, edi
call fcn.00489f40
push str.DepWorkflow
lea ecx, [ebp - 0x44]
call fcn.00406e60
cmp byte [ebp - 0x45], 0
mov dword [ebp - 4], 8
je 0x483cb2
push str.RIBS
lea ecx, [ebp - 0x44]
call fcn.004096d0
cmp byte [ebp - 0x46], 0
je 0x483cc5
push 0x637634
lea ecx, [ebp - 0x44]
call fcn.004096d0
lea eax, [ebp - 0x44]
mov ecx, edi
push eax
call fcn.00489f00
mov ecx, dword [edi + 0x448]
test ecx, ecx
je 0x483ce0
mov eax, dword [ecx]
push 1
call dword [eax]
mov esi, dword [edi + 0x44c]
mov dword [edi + 0x448], 0
test esi, esi
je 0x483d06
mov ecx, esi
call fcn.004ce030
push 0x24
push esi
call fcn.0059a537
add esp, 8
lea ecx, [ebp - 0x44]
mov dword [edi + 0x44c], 0
call fcn.00406e20
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00599c70
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret