Function at 0x41d020
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 [0x42e3e0]
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.004013f0
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.00412b70
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 0x41d07d
lea ecx, [ebp - 5]
mov edi, 1
call fcn.00413040
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 0x41d0af
lea ecx, [ebp - 6]
mov esi, 1
call fcn.00412b70
lea ecx, [ebp - 6]
call fcn.00413350
lea ecx, [ebp - 6]
call fcn.00412b80
test edi, edi
jne 0x41d143
test esi, esi
jne 0x41d143
push str.DevState
push esi
push esi
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov esi, eax
test esi, esi
je 0x41d0ed
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x41d0ed
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.00415120
call fcn.00413bd0
push eax
lea ecx, [ebp - 0x14]
call fcn.00415300
lea eax, [ebp - 0x14]
push eax
call fcn.00413bd0
mov ecx, eax
call fcn.00414eb0
push 0x41cf90
push 0x32
push 1
push 0
call dword [sym.imp.USER32.dll_SetTimer]
lea ecx, [ebp - 5]
call fcn.00412b90
lea ecx, [ebp - 0x14]
call fcn.00415230
cmp byte [0x431c54], 0
je 0x41d154
or esi, 0xffffffff
jmp 0x41d231
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
mov esi, eax
mov dword [ebp - 0x50], esi
test esi, esi
jns 0x41d185
cmp esi, 0x80010106
jne 0x41d231
push str.Mscoree.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test eax, eax
jne 0x41d18c
jmp 0x41d231
mov byte [0x431cce], 1
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
lea ecx, [ebp - 0x50]
push ecx
push eax
mov ecx, 0x431c90
call fcn.0041c770
cmp al, 1
jne 0x41d21f
push dword [ebp + 0x14]
mov ecx, 0x431c90
call fcn.0041cbe0
mov esi, eax
test esi, esi
jne 0x41d1fa
push eax
push eax
push eax
lea eax, [ebp - 0x30]
push eax
call dword [sym.imp.USER32.dll_GetMessageW]
test eax, eax
jle 0x41d1fc
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 0x41d1d0
jmp 0x41d1fc
js 0x41d222
mov ecx, 0x431c90
call fcn.0041ce60
cmp byte [0x431ccc], 0
mov esi, eax
je 0x41d222
push dword [0x431cc8]
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x41d222
mov esi, dword [ebp - 0x50]
cmp byte [0x431cce], 0
je 0x41d231
call dword [sym.imp.ole32.dll_CoUninitialize]
lea ecx, [ebp - 5]
call fcn.00412b80
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.0041d270
mov esp, ebp
pop ebp
ret 0x10