Function at 0x41ef30
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 0x5b9ddd
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x20
push esi
push edi
mov eax, dword [0x6441a4]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x1c], ecx
push 0xffffffffffffffff
xorps xmm0, xmm0
mov dword [ebp - 0x20], 0
push str._WeChat_User_Update_Identity_Mutex_Name
lea ecx, [ebp - 0x30]
movups xmmword [ebp - 0x30], xmm0
call fcn.00406c40
mov dword [ebp - 4], 0
mov esi, dword [ebp - 0x30]
test esi, esi
je 0x41efa1
cmp word [esi], 0
mov eax, esi
jne 0x41efa6
mov eax, 0x628fa4
push eax
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov edi, eax
test edi, edi
je 0x41f13e
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x41f0df
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
movups xmm0, xmmword [0x628d68]
sub esp, 0x10
mov edx, str.D:Tools_agentworkspaceWeChatUpdateWechatUpdatemanagerUpdateMgr.cpp
mov eax, esp
mov ecx, 4
sub esp, 0x10
movups xmmword [eax], xmm0
mov eax, esp
sub esp, 0x10
movups xmmword [eax], xmm0
mov eax, esp
sub esp, 0x10
movups xmmword [eax], xmm0
mov eax, esp
sub esp, 0x10
movups xmmword [eax], xmm0
mov eax, esp
sub esp, 0x10
movups xmmword [eax], xmm0
mov eax, esp
push str.mutex_created_already
push str.UpdateMgr
push str.UpdateMgr::canStartCurrentProcess
push 0x35f
movups xmmword [eax], xmm0
call fcn.00403890
add esp, 0x70
mov dword [ebp - 0x18], 2
push 0
push 0x62ac44
call dword [sym.imp.USER32.dll_FindWindowW]
mov edi, eax
test edi, edi
je 0x41f1a2
mov eax, dword [ebp - 0x1c]
cmp dword [eax + 0x230], 0xc8
je 0x41f0ca
movups xmm0, xmmword [0x628d68]
sub esp, 0x10
mov edx, str.D:Tools_agentworkspaceWeChatUpdateWechatUpdatemanagerUpdateMgr.cpp
mov ecx, esp
sub esp, 0x10
mov eax, esp
sub esp, 0x10
movups xmmword [ecx], xmm0
mov ecx, 2
movups xmmword [eax], xmm0
mov eax, esp
sub esp, 0x10
movups xmmword [eax], xmm0
mov eax, esp
sub esp, 0x10
movups xmmword [eax], xmm0
mov eax, esp
sub esp, 0x10
movups xmmword [eax], xmm0
mov eax, esp
push str.send_MSG_SHUT_UPDATE_WND
push str.UpdateMgr
push str.UpdateMgr::canStartCurrentProcess
push 0x366
movups xmmword [eax], xmm0
call fcn.00403890
add esp, 0x70
push 0
push 0
push 0xbe7
push edi
call dword [sym.imp.USER32.dll_PostMessageW]
push 1
push edi
call dword [sym.imp.USER32.dll_SwitchToThisWindow]
push edi
call dword [sym.imp.USER32.dll_BringWindowToTop]
jmp 0x41f1a2
mov eax, dword [ebp - 0x1c]
sub esp, 0x10
mov dword [ebp - 0x18], 0
mov ecx, 2
mov dword [eax + 0x240], edi
mov eax, esp
movups xmm0, xmmword [0x628d68]
sub esp, 0x10
movups xmmword [eax], xmm0
mov eax, esp
sub esp, 0x10
movups xmmword [eax], xmm0
mov eax, esp
sub esp, 0x10
movups xmmword [eax], xmm0
mov eax, esp
sub esp, 0x10
movups xmmword [eax], xmm0
mov eax, esp
sub esp, 0x10
movups xmmword [eax], xmm0
mov eax, esp
push str.create_mutex_success_
push str.UpdateMgr
push str.UpdateMgr::canStartCurrentProcess
push 0x36f
jmp 0x41f192
movups xmm0, xmmword [0x628d68]
sub esp, 0x10
mov dword [ebp - 0x18], 1
mov eax, esp
mov ecx, 4
sub esp, 0x10
movups xmmword [eax], xmm0
mov eax, esp
sub esp, 0x10
movups xmmword [eax], xmm0
mov eax, esp
sub esp, 0x10
movups xmmword [eax], xmm0
mov eax, esp
sub esp, 0x10
movups xmmword [eax], xmm0
mov eax, esp
sub esp, 0x10
movups xmmword [eax], xmm0
mov eax, esp
push str.create_mutex_return_NULL_
push str.UpdateMgr
push str.UpdateMgr::canStartCurrentProcess
push 0x373
mov edx, str.D:Tools_agentworkspaceWeChatUpdateWechatUpdatemanagerUpdateMgr.cpp
movups xmmword [eax], xmm0
call fcn.00403890
add esp, 0x70
cmp dword [ebp - 0x18], 0
sete al
mov byte [ebp - 0x11], al
test esi, esi
je 0x41f1bc
push esi
call fcn.004d2e43
mov al, byte [ebp - 0x11]
add esp, 4
mov ecx, dword [ebp - 0x24]
test ecx, ecx
je 0x41f1cf
push ecx
call fcn.004d2e43
mov al, byte [ebp - 0x11]
add esp, 4
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret