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

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
sub rsp, 0x130
mov rax, qword [0x14005c8c0]
xor rax, rsp
mov qword [rsp + 0x120], rax
mov rbp, rcx
call qword [sym.imp.KERNEL32.dll_GetCommandLineA]
xor ecx, ecx
mov rdi, rax
call qword [sym.imp.ole32.dll_CoInitialize]
xor r12d, r12d
cmp eax, r12d
lea rcx, str.SUCCEEDED_hRes_
mov r13d, 1
jge 0x14001000a
mov qword [rsp + 0x20], rcx
lea rdx, str..hkcmd.cpp
lea ecx, [r13 + 1]
xor r9d, r9d
mov r8d, 0x32b
call fcn.140019a40
cmp eax, r13d
jne 0x14001000a
int3
lea rbx, [0x14005e4a0]
cmp rbx, 0xffffffffffffffff
je 0x140010036
mov qword [0x14005e538], rbx
cmp qword [0x14005e4a0], r12
je 0x140010036
mov cl, r13b
call qword [rbx + 0x40]
add rbx, 0x48
cmp qword [rbx], r12
jne 0x140010027
mov rbx, qword [0x14005e760]
mov rax, qword [0x14005e768]
jmp 0x14001005f
mov rdx, qword [rbx]
cmp rdx, r12
je 0x14001005b
mov cl, r13b
call qword [rdx + 0x40]
mov rax, qword [0x14005e768]
add rbx, 8
cmp rbx, rax
jb 0x140010046
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov esi, r12d
mov rcx, rdi
mov dword [0x14005e540], eax
jmp 0x1400100a5
lea rdx, str.UnregServer
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_lstrcmpiA]
cmp eax, r12d
je 0x1400100e5
lea rdx, str.RegServer
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_lstrcmpiA]
cmp eax, r12d
je 0x1400100bb
mov rcx, rbx
lea rdx, [0x140049858]
call fcn.14000a618
mov rbx, rax
cmp rax, r12
jne 0x140010078
jmp 0x14001010e
xor r9d, r9d
lea rcx, [0x14005e4f0]
mov r8d, r13d
lea edx, [r9 + 0x64]
call fcn.14000f4a0
lea rcx, [0x14005e4f0]
xor r8d, r8d
mov edx, r13d
call fcn.14000e21c
jmp 0x14001010c
xor r9d, r9d
lea rcx, [0x14005e4f0]
xor r8d, r8d
lea edx, [r9 + 0x64]
call fcn.14000f4a0
lea rcx, [0x14005e4f0]
xor r8d, r8d
xor edx, edx
call fcn.14000e2e0
mov esi, eax
xor edx, edx
lea rax, [rsp + 0x60]
lea r9, [0x140048278]
lea rcx, [0x140048298]
lea r8d, [rdx + 0x15]
mov qword [rsp + 0x60], r12
mov ebx, r12d
mov qword [rsp + 0x20], rax
call qword [sym.imp.ole32.dll_CoCreateInstance]
cmp eax, r12d
jl 0x1400103b3
cmp qword [rsp + 0x60], r12
je 0x1400103b3
mov edi, 0x20
lea rcx, [rsp + 0x68]
xor edx, edx
mov r8, rdi
call fcn.140019180
mov rcx, qword [rsp + 0x60]
lea r8, [rsp + 0x68]
mov rax, qword [rcx]
mov edx, edi
call qword [rax + 0x140]
cmp eax, r12d
jl 0x1400101b1
cmp dword [rsp + 0x84], r13d
jne 0x1400101b1
mov rcx, qword [rsp + 0x60]
lea r8, [rsp + 0xf0]
mov edx, edi
mov rax, qword [rcx]
call qword [rax + 0x20]
cmp eax, r12d
jl 0x1400101b1
mov ecx, dword [rsp + 0x108]
lea edx, [rdi - 0x17]
call fcn.1400011e0
mov ebx, eax
mov rcx, qword [rsp + 0x60]
mov rdx, qword [rcx]
call qword [rdx + 0x10]
mov qword [rsp + 0x60], r12
cmp ebx, r12d
je 0x1400103b3
lea rdx, str.IGFXHKMUTEXT
lea rcx, [rsp + 0xf0]
call fcn.14000224c
cmp qword [rsp + 0x118], 0x10
lea r8, [rsp + 0x100]
cmovae r8, qword [rsp + 0x100]
mov edx, r13d
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateMutexA]
mov rdi, rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, [rsp + 0xf0]
cmp eax, 0xb7
cmove ebx, r12d
call fcn.140001800
cmp ebx, r12d
je 0x1400103b8
mov rbx, qword [0x14005e538]
mov eax, r12d
cmp rbx, r12
je 0x140010262
cmp qword [rbx], r12
je 0x140010262
cmp eax, r12d
jne 0x140010279
mov r8d, r13d
mov edx, 4
mov rcx, rbx
call fcn.14000999c
add rbx, 0x48
cmp qword [rbx], r12
jne 0x14001023f
cmp eax, r12d
jne 0x140010279
lea rcx, [0x14005e750]
mov r8d, r13d
mov edx, 4
call fcn.140015690
cmp eax, r12d
jge 0x1400102a6
xor r9d, r9d
lea rax, str.SUCCEEDED_hRes_
lea rdx, str..hkcmd.cpp
lea ecx, [r9 + 2]
mov r8d, 0x3ca
mov qword [rsp + 0x20], rax
call fcn.140019a40
cmp eax, r13d
jne 0x1400102a6
int3
xor edx, edx
lea rcx, [rsp + 0xa0]
lea r8d, [rdx + 0x48]
call fcn.140019180
lea r11, [0x14000f974]
lea rbx, str.HkClass
lea rcx, [rsp + 0xa0]
mov qword [rsp + 0xa8], r11
mov qword [rsp + 0xe0], rbx
mov qword [rsp + 0xb8], rbp
mov qword [rsp + 0xc0], r12
call qword [sym.imp.USER32.dll_RegisterClassA]
mov qword [rsp + 0x58], r12
mov qword [rsp + 0x50], rbp
mov qword [rsp + 0x48], r12
mov qword [rsp + 0x40], r12
mov dword [rsp + 0x38], r12d
mov dword [rsp + 0x30], r12d
lea r8, str.HkWndName
xor r9d, r9d
mov rdx, rbx
xor ecx, ecx
mov dword [rsp + 0x28], r12d
mov dword [rsp + 0x20], r12d
call qword [sym.imp.USER32.dll_CreateWindowExA]
cmp rax, r12
je 0x14001036b
lea rdx, [0x14005e458]
mov rcx, rax
call fcn.14000ade8
jmp 0x140010353
lea rcx, [rsp + 0x68]
call qword [sym.imp.USER32.dll_DispatchMessageA]
lea rcx, [rsp + 0x68]
xor r9d, r9d
xor r8d, r8d
xor edx, edx
call qword [sym.imp.USER32.dll_GetMessageA]
cmp eax, r12d
jne 0x140010348
mov rbx, qword [0x14005e538]
mov eax, r12d
cmp rbx, r12
je 0x1400103a5
cmp qword [rbx], r12
je 0x1400103a5
cmp eax, r12d
jne 0x1400103b8
mov ecx, dword [rbx + 0x28]
cmp ecx, r12d
jne 0x140010391
mov eax, r12d
jmp 0x140010397
call qword [sym.imp.ole32.dll_CoRevokeClassObject]
add rbx, 0x48
cmp qword [rbx], r12
jne 0x14001037f
cmp eax, r12d
jne 0x1400103b8
lea rcx, [0x14005e750]
call fcn.140015760
jmp 0x1400103b8
mov rdi, qword [rsp + 0x60]
cmp rdi, r12
je 0x1400103c6
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
call qword [sym.imp.ole32.dll_CoUninitialize]
mov eax, esi
mov rcx, qword [rsp + 0x120]
xor rcx, rsp
call fcn.1400193c0
lea r11, [rsp + 0x130]
mov rbx, qword [r11 + 0x28]
mov rbp, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rsp, r11
pop r13
pop r12
pop rdi
ret