Function at 0x477590
Capabilities:
Check mutex on windows

Disassembly:
sub esp, 0x958
mov eax, dword [0x541f38]
xor eax, esp
mov dword [esp + 0x954], eax
push ebx
mov ebx, dword [esp + 0x960]
push ebp
push esi
mov esi, dword [0x543f60]
xor ebp, ebp
push edi
lea eax, [esp + 0x24]
add esi, 0x10
push esi
mov dword [esp + 0x28], vtable.WTL::CMessageLoop.0
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x30], ebp
mov dword [esp + 0x34], ebp
mov dword [esp + 0x38], ebp
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x40], ebp
mov dword [esp + 0x14], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
lea ecx, [esp + 0x10]
push ecx
mov ecx, dword [0x544630]
lea edx, [esp + 0x18]
push edx
mov dword [esp + 0x1c], eax
call fcn.00476910
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push str.MUTEX_NEWCENTERSOM
push 1
push ebp
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
cmp eax, ebp
je 0x477791
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x477791
push ebp
push str.360USERCENTER
push ebp
call fcn.0048a960
mov esi, dword [sym.imp.USER32.dll_FindWindowExW]
push eax
call esi
mov edi, eax
cmp edi, ebp
jne 0x4776b2
push ebp
push str.360USERCENTER
push ebp
push ebp
call esi
mov edi, eax
cmp edi, ebp
jne 0x4776b2
call fcn.0048ab40
push ebx
lea ecx, [esp + 0x14]
call fcn.0043a930
lea eax, [esp + 0x10]
push 1
push eax
call fcn.0048b950
mov eax, dword [esp + 0x18]
add esp, 8
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x47769f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x24]
call fcn.004766e0
mov eax, 1
jmp 0x4779d4
push ebx
lea ecx, [esp + 0x18]
call fcn.0043a930
mov ebp, dword [esp + 0x14]
cmp dword [ebp - 0xc], 0
jge 0x4776cb
or esi, 0xffffffff
jmp 0x4776e8
push str.page_backup
push ebp
call fcn.004d7608
add esp, 8
test eax, eax
jne 0x4776e2
or esi, 0xffffffff
jmp 0x4776e8
sub eax, ebp
sar eax, 1
mov esi, eax
call fcn.0048a960
push eax
mov dword [esp + 0x18], eax
call dword [sym.imp.USER32.dll_IsIconic]
test eax, eax
je 0x477718
cmp esi, 0xffffffff
jg 0x477718
mov ecx, dword [esp + 0x14]
push 0
push 0xf120
push 0x112
push ecx
call dword [sym.imp.USER32.dll_SendMessageW]
push ebx
lea ecx, [esp + 0x18]
call fcn.0043a930
mov esi, dword [esp + 0x14]
push 0
push 0x3e8
push 0
xor eax, eax
lea ecx, [esp + 0x24]
push ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov edx, dword [esi - 0xc]
push 0
push 0x4a
lea eax, [edx + edx + 2]
push edi
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], esi
mov dword [esp + 0x34], 0x1212
call dword [sym.imp.USER32.dll_SendMessageTimeoutW]
push edi
call fcn.004756c0
lea eax, [esi - 0x10]
add esp, 4
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x477789
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [ebp - 0x10]
jmp 0x477686
push ebp
push ecx
mov eax, esp
push ebp
push VariantInit
push ebp
push ecx
mov dword [eax], ebp
mov eax, esp
push ebp
mov ecx, 0x5445f4
mov dword [eax], ebp
call fcn.004760b0
mov ecx, dword [0x5445f4]
push 0x1f4
push ebp
push 0x418
push ecx
call dword [sym.imp.USER32.dll_SendMessageW]
push ebx
lea ecx, [esp + 0x14]
call fcn.0043a930
mov esi, dword [esp + 0x10]
mov eax, dword [esi - 0xc]
cmp eax, ebp
jl 0x477838
push str._from
push esi
call fcn.004d7608
add esp, 8
cmp eax, ebp
je 0x477838
sub eax, esi
sar eax, 1
cmp eax, 0xffffffff
jle 0x477838
mov esi, dword [esi - 0xc]
sub esi, eax
push esi
lea edx, [esp + 0x18]
push edx
lea ecx, [esp + 0x18]
call fcn.00476ae0
push eax
lea ecx, [esp + 0x14]
call fcn.0043a540
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x477834
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov esi, dword [esp + 0x10]
cmp dword [esi - 0xc], ebp
jge 0x477842
or eax, 0xffffffff
jmp 0x47785d
push str.page_backup
push esi
call fcn.004d7608
add esp, 8
cmp eax, ebp
jne 0x477859
or eax, 0xffffffff
jmp 0x47785d
sub eax, esi
sar eax, 1
xor ebx, ebx
cmp eax, 0xffffffff
push ecx
setg bl
add esi, 0xfffffff0
mov edi, esp
push esi
call fcn.00439080
add eax, 0x10
add esp, 4
lea ecx, [esp + 0x60]
mov dword [edi], eax
call fcn.004749a0
call fcn.0048a960
mov edi, eax
push edi
call dword [sym.imp.USER32.dll_IsIconic]
test eax, eax
je 0x4778aa
cmp ebx, ebp
jne 0x4778aa
push ebp
push 0xf120
push 0x112
push edi
call dword [sym.imp.USER32.dll_SendMessageW]
push ebp
push ecx
mov eax, esp
push ebp
push ebp
push ebp
push ecx
mov dword [eax], ebp
mov eax, esp
push ebp
lea ecx, [esp + 0x78]
mov dword [eax], ebp
call fcn.00477490
cmp eax, ebp
jne 0x4778f1
lea ecx, [esp + 0x5c]
call fcn.0046fe20
lea ecx, [esi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4779c9
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push esi
call edx
jmp 0x4779c9
cmp ebx, ebp
je 0x477903
mov eax, dword [esp + 0x60]
push ebp
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
jmp 0x477949
call fcn.0048a960
push eax
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x4779b7
push ebp
call fcn.0048aa60
call fcn.0048aad0
mov ecx, dword [esp + 0x64]
push ebp
push ecx
call fcn.0048b300
mov edx, dword [esp + 0x6c]
add esp, 0xc
push 5
push edx
call dword [sym.imp.USER32.dll_ShowWindow]
call fcn.0049d2b0
mov ecx, eax
call fcn.0049cd80
lea ecx, [esp + 0x14]
lea eax, [esp + 0xec]
push ecx
lea ecx, [esp + 0x2c]
mov dword [esp + 0x18], eax
call fcn.0043fb50
lea ecx, [esp + 0x24]
call fcn.00476300
lea edx, [esp + 0xec]
push edx
lea ecx, [esp + 0x28]
mov edi, eax
call fcn.004407d0
mov ecx, 0x5445fc
call fcn.004771d0
lea ecx, [esp + 0x5c]
call fcn.0046fe20
lea eax, [esi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4779aa
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
lea ecx, [esp + 0x24]
call fcn.004766e0
mov eax, edi
jmp 0x4779d4
lea ecx, [esp + 0x5c]
call fcn.0046fe20
lea ecx, [esp + 0x10]
call fcn.00439d40
lea ecx, [esp + 0x24]
call fcn.004766e0
xor eax, eax
mov ecx, dword [esp + 0x964]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004d7eb0
add esp, 0x958
ret