Function at 0x438760
Capabilities:
Check mutex on windows

Disassembly:
sub esp, 0x88
mov eax, dword [0x6204e0]
xor eax, esp
mov dword [esp + 0x84], eax
push ebx
push ebp
push esi
push edi
xor ebx, ebx
push 5
mov edi, 0xf
push str.false
lea ecx, [esp + 0x80]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x98], edi
mov dword [esp + 0x94], ebx
mov byte [esp + 0x84], bl
call fcn.0040bad0
push 0x13
push str.hasDownloadedUpdate
lea ecx, [esp + 0x48]
mov dword [esp + 0x60], edi
mov dword [esp + 0x5c], ebx
mov byte [esp + 0x4c], bl
call fcn.0040bad0
lea eax, [esp + 0x78]
push eax
lea ecx, [esp + 0x44]
push ecx
call fcn.00440320
push eax
push reloc.WS2_32.dll_accept
call fcn.0043d9f0
mov ebp, 0x10
add esp, 0x10
cmp dword [esp + 0x58], ebp
jb 0x4387fc
mov edx, dword [esp + 0x44]
push edx
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esp + 0x58], edi
mov dword [esp + 0x54], ebx
mov byte [esp + 0x44], bl
cmp dword [esp + 0x90], ebp
jb 0x43881e
mov eax, dword [esp + 0x7c]
push eax
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
lea ecx, [esp + 0x13]
push ecx
lea edx, [esp + 0x17]
push edx
lea ecx, [esp + 0x28]
call fcn.00439570
lea eax, [esp + 0x20]
push eax
call fcn.0044fde0
add esp, 4
push 9
push 0x5a3520
lea ecx, [esp + 0x80]
mov dword [esp + 0x98], edi
mov dword [esp + 0x94], ebx
mov byte [esp + 0x84], bl
call fcn.0040bad0
lea ecx, [esp + 0x78]
push ecx
lea ecx, [esp + 0x24]
call fcn.0044ca90
mov byte [esp + 0x13], al
cmp dword [esp + 0x90], ebp
jb 0x43888e
mov edx, dword [esp + 0x7c]
push edx
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
cmp byte [esp + 0x13], bl
je 0x438909
push 9
push 0x5a3520
lea ecx, [esp + 0x80]
mov dword [esp + 0x98], edi
mov dword [esp + 0x94], ebx
mov byte [esp + 0x84], bl
call fcn.0040bad0
lea eax, [esp + 0x78]
push eax
lea ecx, [esp + 0x24]
call fcn.0044cb40
push eax
call fcn.0040ed70
add esp, 4
cmp dword [esp + 0x90], ebp
jb 0x4388e9
mov ecx, dword [esp + 0x7c]
push ecx
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
push 1
call fcn.00441c90
push eax
call fcn.0043e650
add esp, 8
lea ecx, [esp + 0x20]
call fcn.00439ba0
xor eax, eax
jmp 0x438d40
call fcn.0043faf0
mov esi, eax
call fcn.0044f8d0
mov ecx, dword [esi + 0x14]
cmp dword [esi + 0x18], ebp
jb 0x438922
mov esi, dword [esi + 4]
jmp 0x438925
add esi, 4
mov edx, dword [eax + 0x14]
push ecx
push esi
push edx
push ebx
mov ecx, eax
call fcn.0040a5a0
test eax, eax
jne 0x43897e
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.0040bad0
lea eax, [esp + 0x78]
push eax
lea ecx, [esp + 0x24]
mov dword [esp + 0x18], 1
call fcn.0044ca90
mov byte [esp + 0x13], 1
test al, al
je 0x438982
mov byte [esp + 0x13], bl
test byte [esp + 0x14], 1
je 0x43899f
cmp dword [esp + 0x90], ebp
jb 0x43899f
mov ecx, dword [esp + 0x7c]
push ecx
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
cmp byte [esp + 0x13], bl
jne 0x4388f9
lea edx, [esp + 0x18]
push edx
push str._installer_singleapplication_mutex
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
call fcn.004408a0
push eax
lea eax, [esp + 0x84]
push eax
call fcn.0040c6e0
add esp, 0xc
push eax
call fcn.0043d560
add esp, 8
cmp dword [esp + 0x90], ebp
jb 0x4389f0
mov ecx, dword [esp + 0x7c]
push ecx
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
mov edx, dword [esp + 0x18]
push edx
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 0x438a66
call fcn.00415720
mov byte [eax + 0x100], 1
call fcn.00415720
mov ecx, eax
call fcn.00415a70
call fcn.004457a0
test al, al
je 0x438a35
call fcn.00407d00
call fcn.00415720
mov ecx, eax
call fcn.00415960
mov eax, dword [esp + 0x18]
cmp eax, ebx
je 0x438a56
push eax
call sub.MSVCR90.dll_free
add esp, 4
mov dword [esp + 0x1c], ebx
lea ecx, [esp + 0x20]
call fcn.00439ba0
xor eax, eax
jmp 0x438d40
push str.__silent
lea ecx, [esp + 0x7c]
call fcn.0040c090
lea eax, [esp + 0x78]
push eax
lea ecx, [esp + 0x24]
call fcn.0044ca90
mov byte [esp + 0x13], al
cmp dword [esp + 0x90], ebp
jb 0x438a9c
mov ecx, dword [esp + 0x7c]
push ecx
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
cmp byte [esp + 0x13], bl
je 0x438aab
xor edi, edi
call fcn.004157a0
jmp 0x438ab2
mov edi, dword [esp + 0xa8]
push str.__reseller
lea ecx, [esp + 0x7c]
call fcn.0040c090
lea edx, [esp + 0x78]
push edx
lea ecx, [esp + 0x24]
call fcn.0044ca90
mov byte [esp + 0x13], al
cmp dword [esp + 0x90], ebp
jb 0x438ae8
mov eax, dword [esp + 0x7c]
push eax
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
cmp byte [esp + 0x13], bl
je 0x438b1c
push str.__reseller
lea ecx, [esp + 0x7c]
call fcn.0040c090
lea ecx, [esp + 0x78]
push ecx
lea ecx, [esp + 0x24]
call fcn.0044cb40
push eax
call fcn.00439600
add esp, 4
lea ecx, [esp + 0x78]
call fcn.0040b300
push str.__subid
lea ecx, [esp + 0x7c]
call fcn.0040c090
lea edx, [esp + 0x78]
push edx
lea ecx, [esp + 0x24]
call fcn.0044ca90
mov byte [esp + 0x13], al
cmp dword [esp + 0x90], ebp
jb 0x438b52
mov eax, dword [esp + 0x7c]
push eax
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
cmp byte [esp + 0x13], bl
je 0x438b86
push str.__subid
lea ecx, [esp + 0x7c]
call fcn.0040c090
lea ecx, [esp + 0x78]
push ecx
lea ecx, [esp + 0x24]
call fcn.0044cb40
push eax
call fcn.00439620
add esp, 4
lea ecx, [esp + 0x78]
call fcn.0040b300
push str.__test
lea ecx, [esp + 0x7c]
call fcn.0040c090
lea edx, [esp + 0x78]
push edx
lea ecx, [esp + 0x24]
call fcn.0044ca90
mov byte [esp + 0x13], al
cmp dword [esp + 0x90], ebp
jb 0x438bbc
mov eax, dword [esp + 0x7c]
push eax
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
cmp byte [esp + 0x13], bl
je 0x438bc9
mov byte [0x6206a0], 1
push 1
xor esi, esi
call fcn.00441c90
push eax
call fcn.0043e650
call fcn.00441c90
push eax
call fcn.00443780
add esp, 0xc
test al, al
jne 0x438c91
call fcn.0043ccd0
push eax
push 0x5a34c8
call fcn.00441c90
push eax
lea ecx, [esp + 0x68]
push str.Unable_to_create_temporary_directory__
push ecx
call fcn.0040c620
add esp, 0xc
push eax
lea edx, [esp + 0x4c]
push edx
call fcn.0040c6e0
add esp, 0xc
push eax
lea eax, [esp + 0x80]
push eax
call fcn.0040c7a0
add esp, 0xc
lea ecx, [esp + 0x40]
call fcn.0040b300
lea ecx, [esp + 0x5c]
call fcn.0040b300
push 1
sub esp, 0x1c
lea edx, [esp + 0x98]
mov ecx, esp
mov dword [esp + 0x34], esp
push edx
call fcn.0040baa0
call fcn.00415850
lea eax, [esp + 0x98]
push eax
lea ecx, [esp + 0x80]
push ecx
call fcn.004637d0
push eax
call fcn.00442590
add esp, 0x2c
lea ecx, [esp + 0x5c]
call fcn.0040b300
lea ecx, [esp + 0x78]
call fcn.0040b300
jmp 0x438cf8
call fcn.00452b20
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.00435810
mov edx, dword [esp + 0xa0]
add esp, 4
push ebx
push edx
push ebx
mov ecx, 0x6206ec
call fcn.00435c30
call fcn.00434450
mov eax, dword [esp + 0xa4]
push edi
push eax
call fcn.00438600
add esp, 8
mov ecx, 0x6206ec
mov esi, eax
call fcn.00437d90
call dword [sym.imp.ole32.dll_CoUninitialize]
mov ecx, dword [esp + 0x14]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
call fcn.00415720
mov ecx, eax
call fcn.00415960
call fcn.00429310
mov ecx, eax
call fcn.00429360
push 1
call fcn.00441c90
push eax
call fcn.0043e650
mov eax, dword [esp + 0x20]
add esp, 8
cmp eax, ebx
je 0x438d35
push eax
call sub.MSVCR90.dll_free
add esp, 4
mov dword [esp + 0x1c], ebx
lea ecx, [esp + 0x20]
call fcn.00439ba0
mov eax, esi
mov ecx, dword [esp + 0x94]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0058ecc6
add esp, 0x88
ret 0x10