Function at 0x140014450
Capabilities:
Check for time delay via gettickcount
Log keystrokes via polling

Disassembly:
mov r11, rsp
mov qword [r11 + 0x18], rsi
mov qword [r11 + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [r11 - 0x5f]
sub rsp, 0xd0
mov rax, qword [0x140086040]
xor rax, rsp
mov qword [rbp + 0x27], rax
mov rsi, rcx
mov qword [r11 + 0x10], rbx
mov dil, 1
lea r12, str.gta_sa.exe
xor r14d, r14d
lea r13, str.proxy_sa.exe
lea r15, str.pw_sa.exe
nop
xor r9d, r9d
mov dword [rsp + 0x20], 1
xor r8d, r8d
lea rcx, [rbp - 0x19]
xor edx, edx
call qword [sym.imp.USER32.dll_PeekMessageW]
test eax, eax
je 0x140014502
nop
lea rcx, [rbp - 0x19]
call qword [sym.imp.USER32.dll_TranslateMessage]
lea rcx, [rbp - 0x19]
call qword [sym.imp.USER32.dll_DispatchMessageW]
cmp dword [rbp - 0x11], 0x12
je 0x1400144ff
test dil, dil
je 0x140014502
xor r9d, r9d
mov dword [rsp + 0x20], 1
xor r8d, r8d
lea rcx, [rbp - 0x19]
xor edx, edx
call qword [sym.imp.USER32.dll_PeekMessageW]
test eax, eax
jne 0x1400144c0
jmp 0x140014502
xor dil, dil
mov ecx, 0x23
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x140014734
mov rax, qword [0x1400b0f68]
test rax, rax
je 0x14001452b
mov rcx, qword [rax + 0x98]
jmp 0x14001452e
mov rcx, r14
cmp qword [rcx + 0x48], r14
jne 0x140014539
call fcn.14003ea50
call fcn.14003fb40
call fcn.14001ada0
cmp dword [0x1400b1000], r14d
jne 0x140014558
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x1400b1000], eax
call qword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [0x1400b1000]
cmp eax, 0x1f4
jbe 0x14001460d
xorps xmm0, xmm0
lea rcx, [rbp - 0x59]
movups xmmword [rbp - 0x39], xmm0
mov byte [rbp - 0x39], 1
movups xmmword [rbp - 0x29], xmm0
mov qword [rbp - 0x21], r12
movups xmmword [rbp - 0x59], xmm0
movups xmmword [rbp - 0x49], xmm0
call fcn.140013540
mov rax, qword [rbp - 0x41]
mov qword [0x1400aefb0], rax
test rax, rax
jne 0x140014606
xorps xmm0, xmm0
lea rcx, [rbp - 0x59]
movups xmmword [rbp - 0x39], xmm0
mov byte [rbp - 0x39], 1
movups xmmword [rbp - 0x29], xmm0
mov qword [rbp - 0x21], r13
movups xmmword [rbp - 0x59], xmm0
movups xmmword [rbp - 0x49], xmm0
call fcn.140013540
mov rax, qword [rbp - 0x41]
mov qword [0x1400aefb0], rax
test rax, rax
jne 0x140014606
xorps xmm0, xmm0
lea rcx, [rbp - 0x59]
movups xmmword [rbp - 0x39], xmm0
mov byte [rbp - 0x39], 1
movups xmmword [rbp - 0x29], xmm0
mov qword [rbp - 0x21], r15
movups xmmword [rbp - 0x59], xmm0
movups xmmword [rbp - 0x49], xmm0
call fcn.140013540
mov rax, qword [rbp - 0x41]
mov qword [0x1400aefb0], rax
mov dword [0x1400b1000], r14d
call fcn.140010ec0
mov rcx, qword [rsi + 0x58]
mov edx, 0xffffffec
mov r8d, 0x800a8
call qword [sym.imp.USER32.dll_SetWindowLongW]
call fcn.14001c9b0
mov rcx, qword [rsi + 0x58]
xor r9d, r9d
mov dword [rsp + 0x30], 3
xor r8d, r8d
mov dword [rsp + 0x28], r14d
mov rdx, 0xffffffffffffffff
mov dword [rsp + 0x20], r14d
call qword [sym.imp.USER32.dll_SetWindowPos]
cmp byte [0x1400adc2d], r14b
mov rcx, qword [rsi + 0x58]
jne 0x140014669
mov edx, 0x11
jmp 0x14001466b
xor edx, edx
call qword [sym.imp.USER32.dll_SetWindowDisplayAffinity]
call fcn.14001cdd0
mov rcx, qword [rsi + 0xb8]
lea r8, [rsi + 0xc8]
xorps xmm0, xmm0
xor r9d, r9d
movups xmmword [rbp + 0x17], xmm0
mov edx, 1
mov rax, qword [rcx]
call qword [rax + 0x108]
mov rcx, qword [rsi + 0xb8]
lea r8, [rbp + 0x17]
mov rdx, qword [rsi + 0xc8]
mov rax, qword [rcx]
call qword [rax + 0x190]
mov rax, qword [0x1400b0f68]
mov rcx, qword [rax + 0x48d8]
mov rax, qword [rcx]
mov rcx, r14
add rax, 0x48
cmp byte [rax], cl
cmovne rcx, rax
call fcn.14003ddf0
mov rcx, qword [rsi + 0xc0]
xor r8d, r8d
mov edx, 1
mov rax, qword [rcx]
call qword [rax + 0x40]
mov ecx, 1
call qword [sym.imp.KERNEL32.dll_Sleep]
test dil, dil
jne 0x1400144a0
mov rbx, qword [rsp + 0x108]
mov rcx, qword [rbp + 0x27]
xor rcx, rsp
call fcn.140044870
lea r11, [rsp + 0xd0]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
mov rcx, rsi
call fcn.140014750
xor ecx, ecx
call fcn.14004a590
int3