Function at 0x43f0a0
Capabilities:
Check mutex on windows

Disassembly:
sub esp, 0x88
mov eax, dword [0x4acab8]
xor eax, esp
mov dword [esp + 0x84], eax
push ebx
push ebp
push edi
xor ebx, ebx
push 5
mov edi, 0xf
push str.false
lea ecx, [esp + 0x7c]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x94], edi
mov dword [esp + 0x90], ebx
mov byte [esp + 0x80], bl
call fcn.0040b580
push 0x13
push str.hasDownloadedUpdate
lea ecx, [esp + 0x24]
mov dword [esp + 0x3c], edi
mov dword [esp + 0x38], ebx
mov byte [esp + 0x28], bl
call fcn.0040b580
push 0x3a
push str.SoftwareMedia_Get_LLCMediaGet2_systemScopemediaget_info
lea ecx, [esp + 0x60]
mov dword [esp + 0x78], edi
mov dword [esp + 0x74], ebx
mov byte [esp + 0x64], bl
call fcn.0040b580
lea eax, [esp + 0x74]
push eax
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x60]
push edx
push SysReAllocString
call fcn.00428390
mov ebp, 0x10
add esp, 0x10
cmp dword [esp + 0x70], ebp
jb 0x43f153
mov eax, dword [esp + 0x5c]
push eax
call fcn.0046fa18
add esp, 4
mov dword [esp + 0x70], edi
mov dword [esp + 0x6c], ebx
mov byte [esp + 0x5c], bl
cmp dword [esp + 0x34], ebp
jb 0x43f172
mov ecx, dword [esp + 0x20]
push ecx
call fcn.0046fa18
add esp, 4
mov dword [esp + 0x34], edi
mov dword [esp + 0x30], ebx
mov byte [esp + 0x20], bl
cmp dword [esp + 0x8c], ebp
jb 0x43f194
mov edx, dword [esp + 0x78]
push edx
call fcn.0046fa18
add esp, 4
lea eax, [esp + 0xf]
push eax
lea ecx, [esp + 0x13]
push ecx
lea ecx, [esp + 0x40]
call fcn.0045f7e0
lea edx, [esp + 0x38]
push edx
call fcn.004323b0
add esp, 4
push 9
push 0x4945d4
lea ecx, [esp + 0x7c]
mov dword [esp + 0x94], edi
mov dword [esp + 0x90], ebx
mov byte [esp + 0x80], bl
call fcn.0040b580
lea eax, [esp + 0x74]
push eax
lea ecx, [esp + 0x3c]
call fcn.0042fa50
mov byte [esp + 0xf], al
cmp dword [esp + 0x8c], ebp
jb 0x43f201
mov ecx, dword [esp + 0x78]
push ecx
call fcn.0046fa18
add esp, 4
cmp byte [esp + 0xf], bl
je 0x43f279
push 9
push 0x4945d4
lea ecx, [esp + 0x7c]
mov dword [esp + 0x94], edi
mov dword [esp + 0x90], ebx
mov byte [esp + 0x80], bl
call fcn.0040b580
lea edx, [esp + 0x74]
push edx
lea ecx, [esp + 0x3c]
call fcn.0042fb00
push eax
call fcn.00414810
add esp, 4
cmp dword [esp + 0x8c], ebp
jb 0x43f259
mov eax, dword [esp + 0x78]
push eax
call fcn.0046fa18
add esp, 4
push 1
call fcn.00429ce0
push eax
call fcn.00428c90
add esp, 8
lea ecx, [esp + 0x38]
call fcn.00442ae0
xor eax, eax
jmp 0x43f6f5
push esi
call fcn.0042a310
mov esi, eax
call fcn.00432190
mov ecx, dword [esi + 0x14]
cmp dword [esi + 0x18], ebp
jb 0x43f293
mov esi, dword [esi + 4]
jmp 0x43f296
add esi, 4
push ecx
mov ecx, dword [eax + 0x14]
push esi
push ecx
push ebx
mov ecx, eax
call fcn.0040a1a0
test eax, eax
jne 0x43f2ef
push 8
push str.__loader
lea ecx, [esp + 0x80]
mov dword [esp + 0x98], edi
mov dword [esp + 0x94], ebx
mov byte [esp + 0x84], bl
call fcn.0040b580
lea edx, [esp + 0x78]
push edx
lea ecx, [esp + 0x40]
mov dword [esp + 0x18], 1
call fcn.0042fa50
mov byte [esp + 0x13], 1
test al, al
je 0x43f2f3
mov byte [esp + 0x13], bl
test byte [esp + 0x14], 1
je 0x43f310
cmp dword [esp + 0x90], ebp
jb 0x43f310
mov eax, dword [esp + 0x7c]
push eax
call fcn.0046fa18
add esp, 4
cmp byte [esp + 0x13], bl
jne 0x43f3d5
push 0x2a
push str.mediaget_installer_singleapplication_mutex
lea ecx, [esp + 0x80]
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x98], edi
mov dword [esp + 0x94], ebx
mov byte [esp + 0x84], bl
call fcn.0040b580
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x7c]
push edx
call fcn.00427f10
add esp, 8
cmp dword [esp + 0x90], ebp
jb 0x43f372
mov eax, dword [esp + 0x7c]
push eax
call fcn.0046fa18
add esp, 4
mov ecx, dword [esp + 0x18]
push ecx
push 1
push ebx
call dword [sym.imp.KERNEL32.DLL_CreateMutexW]
mov dword [esp + 0x14], eax
call dword [sym.imp.KERNEL32.DLL_GetLastError]
cmp eax, 0xb7
jne 0x43f3e5
call fcn.004144f0
mov byte [eax + 0x1c], 1
call fcn.004144f0
mov ecx, eax
call fcn.004182a0
call fcn.00410430
test al, al
je 0x43f3b4
call fcn.00407500
call fcn.004144f0
mov ecx, eax
call fcn.00417b30
mov eax, dword [esp + 0x18]
cmp eax, ebx
je 0x43f3d5
push eax
call fcn.00470041
add esp, 4
mov dword [esp + 0x1c], ebx
lea ecx, [esp + 0x3c]
call fcn.00442ae0
xor eax, eax
jmp 0x43f6f4
push str.__silent
lea ecx, [esp + 0x7c]
call fcn.0040b920
lea edx, [esp + 0x78]
push edx
lea ecx, [esp + 0x40]
call fcn.0042fa50
mov byte [esp + 0x13], al
cmp dword [esp + 0x90], ebp
jb 0x43f41b
mov eax, dword [esp + 0x7c]
push eax
call fcn.0046fa18
add esp, 4
cmp byte [esp + 0x13], bl
je 0x43f42a
xor edi, edi
call fcn.00414570
jmp 0x43f431
mov edi, dword [esp + 0xa8]
push str.__reseller
lea ecx, [esp + 0x7c]
call fcn.0040b920
lea ecx, [esp + 0x78]
push ecx
lea ecx, [esp + 0x40]
call fcn.0042fa50
mov byte [esp + 0x13], al
cmp dword [esp + 0x90], ebp
jb 0x43f467
mov edx, dword [esp + 0x7c]
push edx
call fcn.0046fa18
add esp, 4
cmp byte [esp + 0x13], bl
je 0x43f49b
push str.__reseller
lea ecx, [esp + 0x7c]
call fcn.0040b920
lea eax, [esp + 0x78]
push eax
lea ecx, [esp + 0x40]
call fcn.0042fb00
push eax
call fcn.00442540
add esp, 4
lea ecx, [esp + 0x78]
call fcn.0040ae10
push str.__subid
lea ecx, [esp + 0x7c]
call fcn.0040b920
lea ecx, [esp + 0x78]
push ecx
lea ecx, [esp + 0x40]
call fcn.0042fa50
mov byte [esp + 0x13], al
cmp dword [esp + 0x90], ebp
jb 0x43f4d1
mov edx, dword [esp + 0x7c]
push edx
call fcn.0046fa18
add esp, 4
cmp byte [esp + 0x13], bl
je 0x43f505
push str.__subid
lea ecx, [esp + 0x7c]
call fcn.0040b920
lea eax, [esp + 0x78]
push eax
lea ecx, [esp + 0x40]
call fcn.0042fb00
push eax
call fcn.00442560
add esp, 4
lea ecx, [esp + 0x78]
call fcn.0040ae10
push str.__test
lea ecx, [esp + 0x7c]
call fcn.0040b920
lea ecx, [esp + 0x78]
push ecx
lea ecx, [esp + 0x40]
call fcn.0042fa50
mov byte [esp + 0x13], al
cmp dword [esp + 0x90], ebp
jb 0x43f53b
mov edx, dword [esp + 0x7c]
push edx
call fcn.0046fa18
add esp, 4
cmp byte [esp + 0x13], bl
je 0x43f548
mov byte [0x4adea0], 1
push 1
xor esi, esi
call fcn.00429ce0
push eax
call fcn.00428c90
call fcn.00429ce0
push eax
call fcn.0042b980
add esp, 0xc
test al, al
jne 0x43f5fc
call fcn.004279a0
push eax
push 0x494574
call fcn.00429ce0
push eax
lea eax, [esp + 0x68]
push str.Unable_to_create_temporary_directory__
push eax
call fcn.0040bcf0
add esp, 0xc
push eax
lea ecx, [esp + 0x2c]
push ecx
call fcn.0040bdb0
add esp, 0xc
push eax
lea edx, [esp + 0x80]
push edx
call fcn.0040be70
add esp, 0xc
lea ecx, [esp + 0x20]
call fcn.0040ae10
lea ecx, [esp + 0x5c]
call fcn.0040ae10
lea eax, [esp + 0x78]
push 4
push eax
call fcn.0041af30
lea ecx, [esp + 0x80]
push ecx
lea edx, [esp + 0x2c]
push edx
call fcn.00455440
push eax
call fcn.004281b0
add esp, 0x14
lea ecx, [esp + 0x20]
call fcn.0040ae10
lea ecx, [esp + 0x78]
call fcn.0040ae10
jmp 0x43f66f
call fcn.00446b70
push ebx
call dword [sym.imp.ole32.dll_CoInitialize]
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.USER32.dll_DefWindowProcW]
push 4
call fcn.0043e750
mov eax, dword [esp + 0xa0]
add esp, 4
push ebx
push eax
push ebx
mov ecx, 0x4ae2b0
call fcn.0043fab0
call fcn.0043d320
call fcn.004144f0
mov ecx, eax
call fcn.004136e0
mov ecx, dword [esp + 0xa4]
push edi
push ecx
call fcn.0043ef20
add esp, 8
mov ecx, 0x4ae2b0
mov esi, eax
call fcn.00441c50
call dword [sym.imp.ole32.dll_CoUninitialize]
mov edx, dword [esp + 0x14]
push edx
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
call fcn.004144f0
mov ecx, eax
call fcn.00417b30
lea eax, [esp + 0x78]
push eax
call fcn.0041af60
add esp, 4
cmp dword [eax + 0x14], ebx
setne byte [esp + 0x13]
cmp dword [esp + 0x90], ebp
jb 0x43f6a6
mov ecx, dword [esp + 0x7c]
push ecx
call fcn.0046fa18
add esp, 4
cmp byte [esp + 0x13], bl
je 0x43f6b8
call fcn.004144f0
mov ecx, eax
call fcn.00417c50
call fcn.00426900
mov ecx, eax
call fcn.00426950
push 1
call fcn.00429ce0
push eax
call fcn.00428c90
mov eax, dword [esp + 0x20]
add esp, 8
cmp eax, ebx
je 0x43f6e9
push eax
call fcn.00470041
add esp, 4
mov dword [esp + 0x1c], ebx
lea ecx, [esp + 0x3c]
call fcn.00442ae0
mov eax, esi
pop esi
mov ecx, dword [esp + 0x90]
pop edi
pop ebp
pop ebx
xor ecx, esp
call fcn.00470538
add esp, 0x88
ret 0x10