Function at 0x1400ad570
Capabilities:
Check mutex on windows
Log keystrokes via application hook

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rdx
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x188]
sub rsp, 0x260
mov qword [rbp + 0xe8], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov r14, r9
mov rsi, rdx
mov rdi, rcx
call fcn.140004fc0
mov rcx, rax
xor r13d, r13d
mov r8d, r13d
test rax, rax
setne r8b
test r8d, r8d
jne 0x1400ad5d3
mov ecx, 0x80004005
call fcn.140004f70
int3
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x68], rax
or r15, 0xffffffffffffffff
test r14, r14
je 0x1400ad62d
test r14, 0xffffffffffff0000
jne 0x1400ad618
movzx ebx, r14w
xor edx, edx
mov ecx, ebx
call fcn.140011240
test rax, rax
je 0x1400ad641
mov r8d, ebx
mov rdx, rax
lea rcx, [rsp + 0x68]
call fcn.140011590
jmp 0x1400ad641
mov rax, r15
nop dword [rax + rax]
inc rax
cmp word [r14 + rax*2], 0
jne 0x1400ad620
jmp 0x1400ad630
mov eax, r13d
mov r8d, eax
mov rdx, r14
lea rcx, [rsp + 0x68]
call fcn.140011790
nop
lea rcx, [rsp + 0x68]
call fcn.1400b73c0
mov rcx, qword [rax]
sub rcx, 0x18
call fcn.1400112f0
add rax, 0x18
mov qword [rbp - 0x80], rax
mov rdx, qword [rsp + 0x68]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x1400ad678
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea r8, [0x14018b3ac]
lea rdx, [0x140187368]
lea rcx, [rbp - 0x80]
call fcn.1400b7d20
mov rbx, qword [rbp - 0x80]
cmp dword [rbx - 0x10], 0
jl 0x1400ad74d
lea rdx, str._USERSETTINGS
mov rcx, rbx
call fcn.140122ad0
test rax, rax
je 0x1400ad74d
sub rax, rbx
sar rax, 1
cmp eax, 0xffffffff
je 0x1400ad74d
xor edx, edx
lea rcx, [rbp + 0xf8]
call fcn.1400f7980
nop
mov dword [rsp + 0x28], r13d
mov dword [rsp + 0x20], r13d
xor r9d, r9d
lea r8, str.SoftwareSynapticsSynTPInstall
mov rdx, 0xffffffff80000002
lea rcx, [rbp + 0xf8]
call fcn.1400f7af0
mov esi, 1
test eax, eax
je 0x1400ad741
mov dword [rsp + 0x78], r13d
mov qword [rsp + 0x20], r13
lea r9, [rsp + 0x78]
lea r8, [rsp + 0x70]
lea rdx, str.UnInstallRemoveUserSettings
lea rcx, [rbp + 0x100]
call fcn.14011b090
cmp dword [rsp + 0x70], 0
je 0x1400ad741
mov edx, esi
mov rcx, rdi
call fcn.1400b1cb0
call fcn.140109020
nop
lea rcx, [rbp + 0xf8]
jmp 0x1400adcc2
mov rcx, rdi
call fcn.1400b27f0
xor edx, edx
lea rcx, [rbp + 0x128]
call fcn.1400f7980
nop
mov qword [rdi + 0xc60], rsi
lea rax, [rbp - 0x78]
mov qword [rbp + 0xe0], rax
lea rax, [rbp + 8]
mov qword [rbp + 0xf0], rax
lea rax, [rbp - 0x38]
mov qword [rbp + 0xd8], rax
lea rax, [rbp - 0x58]
mov qword [rbp + 0xd0], rax
mov qword [rbp - 0x60], 7
mov qword [rbp - 0x68], r13
mov word [rbp - 0x78], r13w
xor r8d, r8d
lea rdx, [0x140165848]
lea rcx, [rbp - 0x78]
call fcn.14000d340
nop
mov qword [rbp + 0x20], 7
mov qword [rbp + 0x18], r13
mov word [rbp + 8], r13w
xor r8d, r8d
lea rdx, [0x140165848]
lea rcx, [rbp + 8]
call fcn.14000d340
nop
mov qword [rbp - 0x20], 7
mov qword [rbp - 0x28], r13
mov word [rbp - 0x38], r13w
xor r8d, r8d
lea rdx, [0x140165848]
lea rcx, [rbp - 0x38]
call fcn.14000d340
nop
mov qword [rbp - 0x40], 7
mov qword [rbp - 0x48], r13
mov word [rbp - 0x58], r13w
xor r8d, r8d
lea rdx, [0x140165848]
lea rcx, [rbp - 0x58]
call fcn.14000d340
nop
mov qword [rbp + 0x98], 7
mov qword [rbp + 0x90], r13
mov word [rbp + 0x80], r13w
mov r8d, 0x15
lea rdx, str.SynTPEnhInstanceMutex
lea rcx, [rbp + 0x80]
call fcn.14000d340
nop
lea rax, [rbp - 0x78]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 8]
mov qword [rsp + 0x20], rax
lea r9, [rbp - 0x38]
lea r8, [rbp - 0x58]
lea rdx, [rbp + 0x80]
lea rcx, [rbp - 0x18]
call fcn.140116d90
cmp qword [rax + 0x18], 8
jb 0x1400ad893
mov rax, qword [rax]
mov r8, rax
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateMutexW]
mov r12, rax
cmp qword [rbp], 8
jb 0x1400ad8b3
mov rcx, qword [rbp - 0x18]
call fcn.14011f898
mov qword [rbp], 7
mov qword [rbp - 8], r13
mov word [rbp - 0x18], r13w
test r12, r12
jne 0x1400ad8d1
mov esi, r13d
jmp 0x1400adcbb
mov edx, 0x2710
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov esi, 1
cmp eax, 0x102
je 0x1400adc73
cmp eax, 0xffffffff
je 0x1400adc73
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov edx, 0x8000
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_SetPriorityClass]
mov dword [rsp + 0x60], r13d
xor edx, edx
lea rcx, str.SynTPEnhWndClass
call qword [sym.imp.USER32.dll_FindWindowW]
mov r13, rax
test rax, rax
je 0x1400ad986
test byte [0x1402d741c], sil
je 0x1400ad946
lea r8, str.SynTPEnh_already_running._n
mov edx, esi
lea rcx, str.CSynTPEnh::WinMainOb
call fcn.14011a490
lea r9, [rsp + 0x60]
mov r8, r14
mov rdx, r13
mov rcx, rdi
call fcn.1400ac300
lea rdx, [0x14018b3dc]
mov rcx, r14
call fcn.140122ad0
test rax, rax
jne 0x1400adc88
xor r8d, r8d
mov edx, 0x1c1a
mov rcx, rdi
call fcn.1400ad170
jmp 0x1400adc88
mov edx, 0x67
mov rcx, qword [rdi + 0xc60]
call qword [sym.imp.USER32.dll_LoadIconW]
mov qword [rdi + 0x1710], rax
xor edx, edx
mov dword [rbp + 0x30], edx
lea rcx, [0x1400a7220]
mov qword [rbp + 0x38], rcx
mov qword [rbp + 0x40], rdx
mov r13, qword [rbp + 0x198]
mov qword [rbp + 0x48], r13
mov qword [rbp + 0x50], rax
mov qword [rbp + 0x58], rdx
xorps xmm0, xmm0
movdqa xmmword [rbp + 0x60], xmm0
lea rax, str.ScrollerooWindowClass
mov qword [rbp + 0x70], rax
lea rcx, [rbp + 0x30]
call qword [sym.imp.USER32.dll_RegisterClassW]
test ax, ax
jne 0x1400ad9f4
lea r8, str.Failed_to_register_window_class._n
jmp 0x1400adc7a
xor eax, eax
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x50], r13
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x40], rax
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x30], eax
mov dword [rsp + 0x28], 0xfffffe70
mov dword [rsp + 0x20], 0xfffffe70
mov r9d, 0x80000000
lea r8, str.Touchpad_driver_backward_compatibility_window
lea rdx, str.ScrollerooWindowClass
mov ecx, 0x80
call qword [sym.imp.USER32.dll_CreateWindowExW]
test rax, rax
jne 0x1400ada52
lea r8, str.CreateWindowEx___on_back_compat_window_failed._n
jmp 0x1400adc7a
lea rax, str.SynTPEnhWndClass
mov qword [rbp + 0x70], rax
lea rcx, [rbp + 0x30]
call qword [sym.imp.USER32.dll_RegisterClassW]
xor edx, edx
test ax, ax
jne 0x1400ada7a
lea r8, str.Failed_to_register_window_class._n
jmp 0x1400adc7c
mov qword [rsp + 0x58], rdx
mov qword [rsp + 0x50], r13
xor r13d, r13d
mov qword [rsp + 0x48], r13
mov qword [rsp + 0x40], r13
mov dword [rsp + 0x38], r13d
mov dword [rsp + 0x30], r13d
mov dword [rsp + 0x28], 0xfffffe70
mov dword [rsp + 0x20], 0xfffffe70
mov r9d, 0x80000000
lea r8, str.Touchpad_driver_helper_window
lea rdx, str.SynTPEnhWndClass
mov ecx, 0x80
call qword [sym.imp.USER32.dll_CreateWindowExW]
mov qword [rdi + 0xa18], rax
test rax, rax
jne 0x1400adae2
lea r8, str.SynTPEnh::WinMain__:_CreateWindowEx___failed._n
jmp 0x1400adc7a
lea r9, [rsp + 0x60]
mov r8, r14
mov rdx, rax
mov rcx, rdi
call fcn.1400ac300
test eax, eax
jne 0x1400adb05
lea r8, str.Failed_to_Parse_CommandLine._n
jmp 0x1400adc7a
cmp dword [rsp + 0x60], r13d
jne 0x1400adc88
mov dword [rsp + 0x28], r13d
mov dword [rsp + 0x20], r13d
xor r9d, r9d
lea r8, str.SoftwareSynapticsSynTPEnh
mov rdx, 0xffffffff80000002
lea rcx, [rbp + 0x128]
call fcn.1400f7af0
test eax, eax
je 0x1400adb5d
lea r8, [rdi + 0x7fc]
mov qword [rsp + 0x20], r13
mov r9, r8
lea rdx, str.AddAppProfileByHotKey
lea rcx, [rbp + 0x130]
call fcn.14011b090
cmp dword [rdi + 0x7fc], r13d
je 0x1400adb9b
xor r9d, r9d
mov r8, qword [rdi + 0xc60]
lea rdx, [0x1400b2a10]
lea ecx, [r9 + 0xd]
call qword [sym.imp.USER32.dll_SetWindowsHookExW]
test rax, rax
jne 0x1400adb9b
lea r8, str.Failed_to_register_Low_LevelKeyboard_hook_n
xor edx, edx
lea rcx, str.CSynTPEnh::WinMainOb
call fcn.14011a490
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor r9d, r9d
xor r8d, r8d
mov edx, 0x47f
mov rcx, qword [rdi + 0xa18]
call qword [sym.imp.USER32.dll_PostMessageW]
xor r9d, r9d
xor r8d, r8d
xor edx, edx
lea rcx, [rbp + 0xa0]
call qword [sym.imp.USER32.dll_GetMessageW]
test eax, eax
je 0x1400adc4d
nop
mov rcx, qword [rdi + 0xa40]
test rcx, rcx
je 0x1400adc1a
lea rdx, [rbp + 0xa0]
call qword [sym.imp.USER32.dll_IsDialogMessageW]
test eax, eax
je 0x1400adc1a
mov rcx, qword [rdi + 0xa48]
test rcx, rcx
je 0x1400adc1a
lea rdx, [rbp + 0xa0]
call qword [sym.imp.USER32.dll_IsDialogMessageW]
test eax, eax
jne 0x1400adc34
lea rcx, [rbp + 0xa0]
call qword [sym.imp.USER32.dll_TranslateMessage]
lea rcx, [rbp + 0xa0]
call qword [sym.imp.USER32.dll_DispatchMessageW]
xor r9d, r9d
xor r8d, r8d
xor edx, edx
lea rcx, [rbp + 0xa0]
call qword [sym.imp.USER32.dll_GetMessageW]
test eax, eax
jne 0x1400adbe0
test byte [0x1402d741c], sil
je 0x1400adc6b
lea r8, str.Exiting._n
mov edx, esi
lea rcx, str.CSynTPEnh::WinMainOb
call fcn.14011a490
mov esi, dword [rbp + 0xb0]
jmp 0x1400adcbb
lea r8, str.Wait_on_mutex_failed_n
xor edx, edx
lea rcx, str.CSynTPEnh::WinMainOb
call fcn.14011a490
test byte [0x1402d741c], sil
je 0x1400adca6
lea r8, str.Aborting._n
mov edx, esi
lea rcx, str.CSynTPEnh::WinMainOb
call fcn.14011a490
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov esi, r15d
lea rcx, [rbp + 0x128]
call fcn.1400f7a90
nop
lea rdx, [rbx - 0x18]
lock add dword [rdx + 0x10], 0xffffffff
jg 0x1400adcdd
mov rcx, qword [rdx]
mov r8, qword [rcx]
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
mov eax, esi
lea r11, [rsp + 0x260]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret