Function at 0x459240
Capabilities:
Accept command line arguments

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5514f8
mov eax, dword fs:[0]
push eax
mov eax, 0x1818
call fcn.004da530
mov eax, dword [0x5c5244]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x1818], ecx
push 0x800
lea eax, [ebp - 0x810]
mov dword [ebp - 0x1814], 0
push 0
push eax
call fcn.004f39e0
add esp, 0xc
lea eax, [ebp - 0x810]
push 0x400
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push 0x800
lea eax, [ebp - 0x1010]
push 0
push eax
call fcn.004f39e0
add esp, 0xc
lea eax, [ebp - 0x1010]
push 0x400
push eax
lea eax, [ebp - 0x810]
push eax
call dword [sym.imp.KERNEL32.dll_GetLongPathNameW]
push 0x800
lea eax, [ebp - 0x1810]
push 0
push eax
call fcn.004f39e0
add esp, 0xc
lea eax, [ebp - 0x1810]
push 0x400
push eax
lea eax, [ebp - 0x810]
push eax
call dword [sym.imp.KERNEL32.dll_GetShortPathNameW]
mov esi, dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
lea eax, [ebp - 0x1010]
push eax
call esi
mov edi, eax
lea eax, [ebp - 0x1810]
push eax
call esi
mov esi, eax
test edi, edi
je 0x459543
test esi, esi
je 0x459543
mov ebx, dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push esi
push edi
call ebx
push eax
push str.__tid:_d__CheckSingleInstance_longFileName:_s__shortFileName:_s
call fcn.00492250
mov ecx, dword [ebp - 0x1818]
lea eax, [ebp - 0x1814]
add esp, 0x10
push eax
push esi
push edi
push 0x5711a0
push str.Q360ComputerZTrayMutex
call fcn.00458fb0
test eax, eax
je 0x459561
mov edi, dword [ebp - 0x1814]
push edi
call ebx
push eax
push str.__tid:_d__CheckInstance_hWnd:0x_08x
call fcn.00492250
add esp, 0xc
test edi, edi
je 0x4593bc
push edi
call dword [sym.imp.USER32.dll_IsIconic]
mov esi, dword [sym.imp.USER32.dll_ShowWindow]
test eax, eax
je 0x4593a5
push 9
push edi
call esi
push edi
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
jne 0x4593b5
push 5
push edi
call esi
push edi
call dword [sym.imp.USER32.dll_SetForegroundWindow]
mov eax, dword [0x5cb844]
test al, 1
jne 0x459409
or eax, 1
mov dword [0x5cb844], eax
mov dword [ebp - 4], 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push 0x5687a0
mov dword [0x5cb838], 0x56c9b0
mov dword [0x5cb83c], eax
mov byte [0x5cb840], 0
call fcn.004da3a8
add esp, 4
mov dword [ebp - 4], 0xffffffff
mov eax, dword [0x5cb844]
test al, 2
jne 0x459473
or eax, 2
mov dword [0x5cb844], eax
mov dword [ebp - 4], 1
xor eax, eax
push 0x5687d0
mov dword [0x5cb848], 0x56c9c8
mov dword [0x5cb84c], 0x5cb838
mov dword [0x5cb85c], 2
mov dword [0x5cb854], 0
mov dword [0x5cb858], 0
mov dword [0x5cb860], eax
mov dword [0x5cb850], 0x5cb848
call fcn.004da3a8
add esp, 4
mov dword [ebp - 4], 0xffffffff
mov eax, dword [0x5cb848]
mov ecx, 0x5cb848
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x1814], eax
mov dword [ebp - 4], 3
test edi, edi
jne 0x4594b7
mov dword [ebp - 4], 0xffffffff
lea edx, [eax - 0x10]
or eax, 0xffffffff
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x459543
mov ecx, dword [edx]
push edx
jmp 0x45953e
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
lea ecx, [ebp - 0x1814]
call fcn.004310a0
mov esi, dword [ebp - 0x1814]
xorps xmm0, xmm0
movlpd qword [ebp - 0x1820], xmm0
mov dword [ebp - 0x1824], 0x8d2
mov eax, dword [esi - 0xc]
mov dword [ebp - 0x181c], esi
mov dword [ebp - 0x1818], 0
lea eax, [eax*2 + 2]
mov dword [ebp - 0x1820], eax
lea eax, [ebp - 0x1818]
push eax
push 0x3e8
push 1
lea eax, [ebp - 0x1824]
push eax
push 0
push 0x4a
push edi
call dword [sym.imp.USER32.dll_SendMessageTimeoutW]
mov dword [ebp - 4], 0xffffffff
add esi, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x459543
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004da3bd
mov esp, ebp
pop ebp
ret
push str.Q360ComputerZTrayMutex_InstBridge
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
push edi
push esi
call ebx
push eax
push str.__tid:_d__CheckInstance_Extend_CreateMutex:0x_08x_error:_d
call fcn.00492250
add esp, 0x10
test esi, esi
je 0x4595a4
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
cmp edi, 0xb7
setne al
jmp 0x459545
mov eax, 1
jmp 0x459545