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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x42c09c
mov eax, dword fs:[0]
push eax
sub esp, 0x158
mov eax, dword [0x436a98]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
call fcn.0040c230
test eax, eax
jne 0x40c318
xor eax, eax
jmp 0x40c5f8
mov dword [ebp - 0x108], 0
lea eax, [ebp - 0x108]
push eax
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov dword [ebp - 0x144], eax
cmp dword [ebp - 0x108], 1
je 0x40c34f
cmp dword [ebp - 0x108], 2
jne 0x40c455
cmp dword [ebp - 0x144], 0
je 0x40c455
mov dword [ebp - 0x148], 0
push str._InstallDriver
mov edx, dword [ebp - 0x144]
mov eax, dword [edx]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x40c38d
mov dword [ebp - 0x148], 1
jmp 0x40c41f
push 0x42de50
mov ecx, dword [ebp - 0x144]
mov edx, dword [ecx]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x40c3b1
mov dword [ebp - 0x148], 3
jmp 0x40c41f
push str._AssocAll
mov eax, dword [ebp - 0x144]
mov ecx, dword [eax]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x40c3d5
mov dword [ebp - 0x148], 4
jmp 0x40c41f
push str._UnassocAll
mov edx, dword [ebp - 0x144]
mov eax, dword [edx]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x40c3f9
mov dword [ebp - 0x148], 5
jmp 0x40c41f
push 1
push 0x42de98
mov ecx, dword [ebp - 0x144]
mov edx, dword [ecx]
push edx
call fcn.0040c1f0
add esp, 0xc
test eax, eax
je 0x40c41f
mov dword [ebp - 0x148], 6
cmp dword [ebp - 0x148], 0
je 0x40c455
mov eax, dword [ebp - 0x148]
push eax
call fcn.0040bf70
add esp, 4
mov dword [ebp - 0x14c], eax
mov ecx, dword [ebp - 0x144]
push ecx
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov eax, dword [ebp - 0x14c]
jmp 0x40c5f8
mov edx, dword [ebp - 0x144]
push edx
call dword [sym.imp.KERNEL32.dll_LocalFree]
push str.AD9D0F9B_AB33_4aa0_8585_336A1D614F2F
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
je 0x40c52b
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x40c52b
mov eax, dword [ebp - 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp + 8], 0
jne 0x40c4a6
xor eax, eax
jmp 0x40c5f8
mov ecx, dword [ebp + 8]
push ecx
call fcn.0041c3dc
add esp, 4
test eax, eax
jne 0x40c4bd
xor eax, eax
jmp 0x40c5f8
push str.95DADE6F_65E5_4df7_AB3C_307A3DB8ACB8
push 0
call dword [sym.imp.USER32.dll_FindWindowW]
mov dword [ebp - 0x15c], eax
cmp dword [ebp - 0x15c], 0
jne 0x40c4e0
xor eax, eax
jmp 0x40c5f8
mov edx, dword [ebp + 8]
mov dword [ebp - 0x150], edx
mov eax, dword [ebp + 8]
push eax
call fcn.0041c3dc
add esp, 4
lea ecx, [eax + eax + 2]
mov dword [ebp - 0x154], ecx
mov dword [ebp - 0x158], 0
lea edx, [ebp - 0x158]
push edx
push 0
push 0x4a
mov eax, dword [ebp - 0x15c]
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, 1
jmp 0x40c5f8
lea ecx, [ebp - 0x140]
call fcn.004091a0
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x140]
push ecx
mov ecx, 0x437da4
call fcn.0040ab20
lea ecx, [ebp - 0x104]
call fcn.0040c730
mov byte [ebp - 4], 1
push 0
push 0
lea ecx, [ebp - 0x104]
call fcn.0040d020
test eax, eax
jne 0x40c5a3
mov dword [ebp - 0x160], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x104]
call fcn.0040ce50
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x140]
call fcn.00409210
mov eax, dword [ebp - 0x160]
jmp 0x40c5f8
push 0
lea ecx, [ebp - 0x100]
call fcn.0040ae60
lea ecx, [ebp - 0x140]
call fcn.0040a910
mov dword [ebp - 0x10], eax
mov ecx, 0x437da4
call fcn.0040ac40
mov edx, dword [ebp - 0x10]
mov dword [ebp - 0x164], edx
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x104]
call fcn.0040ce50
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x140]
call fcn.00409210
mov eax, dword [ebp - 0x164]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov esp, ebp
pop ebp
ret