Function at 0x4c0610
Capabilities:
Check mutex on windows
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
call fcn.004b4040
mov ecx, eax
test ecx, ecx
je 0x4c08b6
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
lea ecx, [ebp - 4]
mov dword [ebp - 4], eax
mov eax, 0x604a74
test eax, 0xffff0000
jne 0x4c064a
movzx eax, ax
push eax
call fcn.004bd6a0
jmp 0x4c0656
push 0xc
push 0x604a74
call fcn.004c0470
push ebx
push esi
push edi
lea eax, [ebp - 4]
push 1
push eax
call fcn.004bfe20
mov edx, dword [ebp - 4]
add esp, 8
mov edi, eax
add edx, 0xfffffff0
or ecx, 0xffffffff
lock xadd dword [edx + 0xc], ecx
dec ecx
test ecx, ecx
jg 0x4c0684
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
test edi, edi
je 0x4c06a7
push str.SetDllDirectoryW
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x4c06a7
push 0x62a144
call eax
call esi
call dword [sym.imp.USER32.dll_GetDesktopWindow]
mov edi, eax
test edi, edi
je 0x4c0705
push str.Tencent_QQWubi_TrayIcon_Mutex_JKR
push 0
push 0x1f0001
call dword [sym.imp.KERNEL32.dll_OpenMutexW]
test eax, eax
je 0x4c073b
mov ebx, dword [sym.imp.USER32.dll_GetWindow]
push 5
push edi
call ebx
mov esi, eax
push esi
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x4c0705
mov edi, dword [sym.imp.USER32.dll_GetPropW]
push str.Tencent_QQWubi_TrayIcon_JKR
push esi
call edi
test eax, eax
jne 0x4c0710
push 2
push esi
call ebx
mov esi, eax
push esi
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
jne 0x4c06e7
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0x10
cmp dword [ebp + 0x14], 0
je 0x4c0705
push 0x202
push 0
push 0x401
push esi
call dword [sym.imp.USER32.dll_SendMessageW]
push esi
call dword [sym.imp.USER32.dll_SetForegroundWindow]
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0x10
push str.Tencent_QQWubi_TrayIcon_Mutex_JKR
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov edi, eax
call esi
cmp eax, 0xb7
je 0x4c0705
test edi, edi
je 0x4c0705
push 0x10100001
push 6
push edi
call fcn.004e4150
add esp, 0xc
call fcn.005824b0
mov ecx, eax
call fcn.00581fd0
push 0
push dword [0x66b0e4]
call fcn.005123a0
add esp, 8
call fcn.004be9b0
mov eax, dword [ebp + 8]
mov dword [0x66b0e4], eax
call dword [sym.imp.COMCTL32.dll_InitCommonControls]
push 0x4a8
call fcn.0050ed1e
add esp, 4
test eax, eax
je 0x4c07b4
mov ecx, eax
call fcn.004c2980
mov esi, eax
jmp 0x4c07b6
xor esi, esi
mov eax, dword [esi + 0x14]
test eax, eax
jne 0x4c07d3
call fcn.004f2bb1
mov dword [esi + 0x14], eax
test eax, eax
jne 0x4c07d3
push 0xe
call dword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x4c0836
push 0
push 0
push eax
call fcn.004f2cb3
lea edi, [esi + 8]
test edi, edi
je 0x4c08aa
test esi, esi
je 0x4c08aa
mov dword [edi], esi
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push 0x667af4
mov dword [edi + 4], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [0x667b0c]
mov dword [edi + 8], eax
push 0x667af4
mov dword [0x667b0c], edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 0
push 0x4c0550
push 0
push 0x65
push dword [0x66bab0]
call dword [sym.imp.USER32.dll_CreateDialogParamW]
push 0
push dword [esi + 4]
call dword [sym.imp.USER32.dll_ShowWindow]
mov edi, dword [sym.imp.USER32.dll_GetMessageW]
lea eax, [ebp - 0x20]
push 0
push 0
push 0
push eax
call edi
test eax, eax
je 0x4c0891
mov ebx, dword [sym.imp.USER32.dll_TranslateMessage]
nop dword [eax]
lea eax, [ebp - 0x20]
push eax
push dword [esi + 4]
call dword [sym.imp.USER32.dll_IsDialogMessageW]
test eax, eax
jne 0x4c0881
lea eax, [ebp - 0x20]
push eax
call ebx
lea eax, [ebp - 0x20]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
push 0
push 0
push 0
lea eax, [ebp - 0x20]
push eax
call edi
test eax, eax
jne 0x4c0860
mov eax, dword [esi]
mov ecx, esi
push 1
call dword [eax + 4]
call fcn.004bf920
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0x10
push 1
push 0xc0000005
call fcn.00418ad0
push 0x80004005
call fcn.004b3510
int3