Function at 0x41c0f0
Capabilities:
Accept command line arguments
Check mutex and terminate process on windows
Check mutex on windows
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x50
mov eax, dword [0x42d3e0]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, dword [ebp + 0x10]
push edi
call sub.DllSafeCheck.dll_HackCheck
push 1
push 0x1a25
call fcn.004013e0
add esp, 8
lea ecx, [ebp - 0x4c]
push esi
call dword [sym.imp.Cmmlib.dll_public:_void___thiscall_Cmm::CStringT_wchar_t_::constructor_wchar_t_const__]
lea ecx, [ebp - 5]
call fcn.0040bae0
xor edi, edi
lea ecx, [ebp - 0x4c]
push edi
push str.RegServer
call dword [sym.imp.Cmmlib.dll_public:_wchar_t____thiscall_Cmm::CStringT_wchar_t_::Find_wchar_t_const___int_const]
test eax, eax
je 0x41c14d
lea ecx, [ebp - 5]
mov edi, 1
call fcn.0040bfd0
xor esi, esi
lea ecx, [ebp - 0x4c]
push esi
push str.UnregServer
call dword [sym.imp.Cmmlib.dll_public:_wchar_t____thiscall_Cmm::CStringT_wchar_t_::Find_wchar_t_const___int_const]
test eax, eax
je 0x41c17f
lea ecx, [ebp - 6]
mov esi, 1
call fcn.0040bae0
lea ecx, [ebp - 6]
call fcn.0040c2e0
lea ecx, [ebp - 6]
call fcn.0040baf0
test edi, edi
jne 0x41c213
test esi, esi
jne 0x41c213
push str.DevState
push esi
push esi
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov esi, eax
test esi, esi
je 0x41c1bd
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x41c1bd
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push edi
call dword [sym.imp.KERNEL32.dll_ExitProcess]
xorps xmm0, xmm0
mov dword [ebp - 0xc], 0
lea ecx, [ebp - 0x14]
movq qword [ebp - 0x14], xmm0
call fcn.00414050
call fcn.00412fa0
push eax
lea ecx, [ebp - 0x14]
call fcn.00414240
lea eax, [ebp - 0x14]
push eax
call fcn.00412fa0
mov ecx, eax
call fcn.00413de0
push 0x41c070
push 0x32
push 1
push 0
call dword [sym.imp.USER32.dll_SetTimer]
lea ecx, [ebp - 5]
call fcn.0040bb00
lea ecx, [ebp - 0x14]
call fcn.00414160
cmp byte [0x430cec], 0
je 0x41c224
or esi, 0xffffffff
jmp 0x41c301
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
mov esi, eax
mov dword [ebp - 0x50], esi
test esi, esi
jns 0x41c255
cmp esi, 0x80010106
jne 0x41c301
push str.Mscoree.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test eax, eax
jne 0x41c25c
jmp 0x41c301
mov byte [0x430d56], 1
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
lea ecx, [ebp - 0x50]
push ecx
push eax
mov ecx, 0x430d18
call fcn.0041b850
cmp al, 1
jne 0x41c2ef
push dword [ebp + 0x14]
mov ecx, 0x430d18
call fcn.0041bcc0
mov esi, eax
test esi, esi
jne 0x41c2ca
push eax
push eax
push eax
lea eax, [ebp - 0x30]
push eax
call dword [sym.imp.USER32.dll_GetMessageW]
test eax, eax
jle 0x41c2cc
nop dword [eax]
lea eax, [ebp - 0x30]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [ebp - 0x30]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
push 0
push 0
push 0
lea eax, [ebp - 0x30]
push eax
call dword [sym.imp.USER32.dll_GetMessageW]
test eax, eax
jg 0x41c2a0
jmp 0x41c2cc
js 0x41c2f2
mov ecx, 0x430d18
call fcn.0041bf40
cmp byte [0x430d54], 0
mov esi, eax
je 0x41c2f2
push dword [0x430d50]
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x41c2f2
mov esi, dword [ebp - 0x50]
cmp byte [0x430d56], 0
je 0x41c301
call dword [sym.imp.ole32.dll_CoUninitialize]
lea ecx, [ebp - 5]
call fcn.0040baf0
lea ecx, [ebp - 0x4c]
call dword [sym.imp.Cmmlib.dll_public_virtual:_void___thiscall_Cmm::CStringT_wchar_t_::destructor_void_]
mov ecx, dword [ebp - 4]
mov eax, esi
pop edi
xor ecx, ebp
pop esi
call fcn.0041c340
mov esp, ebp
pop ebp
ret 0x10