Function at 0x1016a57
Capabilities:
Accept command line arguments
Check mutex on windows

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x480
mov eax, dword [0x101ed2c]
push ebx
mov ebx, dword [ebp + 8]
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x10]
push esi
push edi
mov dword [ebp - 0x460], eax
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
mov edi, eax
xor esi, esi
cmp edi, esi
je 0x1016aa8
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
je 0x1016aa8
push 0x1001e44
push edi
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
neg eax
sbb eax, eax
inc eax
mov dword [0x101ee14], eax
push esi
call dword [sym.imp.KERNEL32.dll_SetLastError]
push 0x1001e2c
push 1
push esi
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
cmp eax, esi
mov dword [0x101ef94], eax
je 0x1016b89
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x1016b89
push 0x1001e0c
call dword [sym.imp.USER32.dll_RegisterWindowMessageW]
mov dword [0x101ef98], eax
call fcn.0101a461
mov dword [0x101ecc8], eax
mov dword [0x101ee0c], ebx
call fcn.0101a2d4
call dword [sym.imp.USER32.dll_GetProcessWindowStation]
push 0x2000000
push esi
push 0x1001dd8
mov dword [0x101ee18], eax
call dword [sym.imp.USER32.dll_OpenWindowStationW]
cmp eax, esi
mov dword [0x101ee1c], eax
je 0x1016b2c
push eax
call dword [sym.imp.USER32.dll_SetProcessWindowStation]
lea eax, [ebp - 0x45c]
push eax
lea edi, [ebp - 0x464]
call fcn.0101634d
push esi
call dword [sym.imp.ole32.dll_CoInitialize]
call sub.SHELL32.dll_Ordinal_258
call fcn.01014b23
test eax, eax
je 0x1016b89
call fcn.010154f9
call fcn.010023e5
push eax
call fcn.01015adc
push dword [0x101ee0c]
call fcn.01015642
call fcn.01014dc9
push esi
call fcn.01014c98
cmp eax, esi
mov dword [0x101edb0], eax
jne 0x1016b9a
push 0xc
call fcn.0101a232
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
pop ebx
call fcn.0101a8d9
leave
ret 0x10
call fcn.01014df4
call fcn.010152da
push 4
push dword [0x101edb0]
call dword [sym.imp.USER32.dll_ShowWindow]
push dword [0x101edb0]
call dword [sym.imp.USER32.dll_UpdateWindow]
call fcn.01016655
call dword [sym.imp.COMCTL32.dll_InitCommonControls]
push esi
push ebx
push esi
push esi
push esi
push esi
push esi
push esi
push 0x80000042
push esi
push 0x1001de8
push 8
call dword [sym.imp.USER32.dll_CreateWindowExW]
cmp eax, esi
mov dword [0x101ef90], eax
je 0x1016c4e
mov eax, dword [0x101edb0]
push 0x100
mov dword [0x101ef68], eax
lea eax, [ebp - 0x204]
push eax
push 0x2a
push ebx
mov dword [0x101ef60], 0x30
mov dword [0x101ef64], 0x122
mov dword [0x101ef6c], esi
mov dword [0x101ef80], ebx
call dword [sym.imp.USER32.dll_LoadStringW]
push 0x101ef60
push esi
push 0x432
push dword [0x101ef90]
lea eax, [ebp - 0x204]
mov dword [0x101ef84], eax
call dword [sym.imp.USER32.dll_SendMessageW]
push ebx
push dword [ebp - 0x460]
call fcn.01018b9b
cmp dword [0x101ecc4], esi
je 0x1016c76
call fcn.01016a46
test eax, eax
jne 0x1016c76
push dword [0x101edb0]
call fcn.01002326
mov edi, dword [sym.imp.USER32.dll_GetMessageW]
jmp 0x1016c98
lea eax, [ebp - 0x480]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [ebp - 0x480]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
push esi
push esi
lea eax, [ebp - 0x480]
push esi
push eax
call edi
test eax, eax
jne 0x1016c7e
mov eax, dword [0x101ee18]
cmp eax, esi
je 0x1016cb8
push eax
call dword [sym.imp.USER32.dll_SetProcessWindowStation]
mov eax, dword [0x101ee1c]
cmp eax, esi
je 0x1016cce
push eax
call dword [sym.imp.USER32.dll_CloseWindowStation]
mov dword [0x101ee1c], esi
call fcn.01015520
call dword [sym.imp.ole32.dll_CoUninitialize]
mov eax, dword [ebp - 0x478]
jmp 0x1016b8b