Function at 0x140017790
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
mov rbp, rsp
sub rsp, 0x70
mov rax, qword [0x140195088]
xor rax, rsp
mov qword [rbp - 0x20], rax
mov rdi, rcx
mov rbx, rdx
mov ecx, 0x11
call qword [sym.imp.USER32.dll_GetKeyState]
movzx esi, ax
mov ecx, 0x10
and esi, 0x8000
call qword [sym.imp.USER32.dll_GetKeyState]
add rbx, 0xfffffffffffffff4
cmp rbx, 0xb2
ja case.default.0x140017809
lea rax, [0x140000000]
movaps xmmword [rsp + 0x60], xmm6
movzx ecx, byte [rax + rbx + 0x17c54]
mov edx, dword [rax + rcx*4 + 0x17c18]
add rdx, rax
jmp rdx
mov dword [rdi + 0x190], 1
cmp qword [rdi + 0x90], 0
je 0x140017831
cmp dword [rdi + 0x98], 0
jl 0x140017831
movups xmm0, xmmword [rdi + 0x90]
jmp 0x140017863
mov rcx, qword [rdi + 0xf0]
lea r8, [rbp - 0x50]
xor eax, eax
mov qword [rbp - 0x28], 0xffffffffffffffff
lea rdx, [rbp - 0x30]
mov qword [rbp - 0x30], rax
mov qword [rbp - 0x50], rax
mov qword [rbp - 0x48], 0xffffffffffffffff
call fcn.140054d70
movaps xmm0, xmmword [rbp - 0x30]
movups xmmword [rdi + 0x90], xmm0
cmp qword [rdi + 0x90], 0
je case.0x140017809.14
cmp dword [rdi + 0x98], 0
jl case.0x140017809.14
mov rcx, qword [rdi + 0xf0]
lea r8, [rbp - 0x50]
xor eax, eax
movdqa xmmword [rbp - 0x50], xmm0
lea rdx, [rbp - 0x40]
mov qword [rbp - 0x40], rax
mov qword [rbp - 0x38], rax
call fcn.140055240
jmp 0x14001794a
mov dword [rdi + 0x190], 1
cmp qword [rdi + 0x90], 0
je 0x1400178d3
cmp dword [rdi + 0x98], 0
jl 0x1400178d3
movups xmm0, xmmword [rdi + 0x90]
jmp 0x140017905
mov rcx, qword [rdi + 0xf0]
lea r8, [rbp - 0x50]
xor eax, eax
mov qword [rbp - 0x28], 0xffffffffffffffff
lea rdx, [rbp - 0x30]
mov qword [rbp - 0x30], rax
mov qword [rbp - 0x50], rax
mov qword [rbp - 0x48], 0xffffffffffffffff
call fcn.140054d70
movaps xmm0, xmmword [rbp - 0x30]
movups xmmword [rdi + 0x90], xmm0
cmp qword [rdi + 0x90], 0
je case.0x140017809.14
cmp dword [rdi + 0x98], 0
jl case.0x140017809.14
mov rcx, qword [rdi + 0xf0]
lea r8, [rbp - 0x50]
xor eax, eax
movdqa xmmword [rbp - 0x50], xmm0
lea rdx, [rbp - 0x40]
mov qword [rbp - 0x40], rax
mov qword [rbp - 0x38], rax
call fcn.1400550f0
cmp qword [rbp - 0x40], 0
je case.0x140017809.14
cmp dword [rbp - 0x38], 0
jl case.0x140017809.14
movaps xmm0, xmmword [rbp - 0x40]
jmp 0x140017a58
mov rcx, rdi
call fcn.14001b680
jmp case.0x140017809.14
mov rcx, rdi
call fcn.1400192d0
jmp case.0x140017809.14
mov rcx, qword [rdi + 0xf0]
xor edx, edx
mov dword [rdi + 0x190], 1
call fcn.140054f20
mov rbx, rax
test rax, rax
je case.0x140017809.14
cmp dword [rbx + 0xb4], 0
jne 0x1400179cb
mov rcx, qword [rdi + 0xf0]
mov rdx, rbx
call fcn.1400551f0
mov rbx, rax
test rax, rax
jne 0x1400179a6
jmp case.0x140017809.14
xor edx, edx
mov rcx, rbx
call fcn.14002e7b0
mov dword [rbp - 0x44], eax
xor eax, eax
mov dword [rbp - 0x48], eax
mov qword [rbp - 0x50], rbx
jmp 0x140017a54
mov rcx, qword [rdi + 0xf0]
mov dword [rdi + 0x190], 1
mov edx, dword [rcx + 0x40]
dec edx
call fcn.140054f20
mov rsi, rax
test rax, rax
je case.0x140017809.14
nop word [rax + rax]
cmp dword [rsi + 0xb4], 0
jne 0x140017a35
mov rcx, qword [rdi + 0xf0]
mov rdx, rsi
call fcn.140055330
mov rsi, rax
test rax, rax
jne 0x140017a10
jmp case.0x140017809.14
mov rcx, rsi
call fcn.14002e7d0
mov rcx, rsi
lea ebx, [rax - 1]
mov edx, ebx
call fcn.14002e7b0
mov dword [rbp - 0x44], eax
mov qword [rbp - 0x50], rsi
mov dword [rbp - 0x48], ebx
movaps xmm0, xmmword [rbp - 0x50]
xor r8d, r8d
movdqa xmmword [rbp - 0x50], xmm0
lea rdx, [rbp - 0x50]
mov rcx, rdi
call fcn.140019910
movups xmm0, xmmword [rdi + 0x90]
movq rcx, xmm0
movaps xmmword [rbp - 0x50], xmm0
test rcx, rcx
je 0x140017a9c
mov edx, dword [rbp - 0x48]
test edx, edx
js 0x140017a9c
call fcn.140051e00
test eax, eax
je 0x140017a9c
mov rcx, qword [rdi + 0x18]
mov edx, eax
call fcn.14004c860
movups xmm0, xmmword [rdi + 0x90]
movups xmmword [rdi + 0x80], xmm0
jmp case.0x140017809.14
mov rcx, rdi
call fcn.14001a410
jmp case.0x140017809.14
mov rcx, rdi
call fcn.14001a1a0
jmp case.0x140017809.14
test esi, esi
je case.0x140017809.14
mov rbx, qword [0x1401a1610]
mov rdi, qword [rbx + 0x30]
mov rcx, rdi
call fcn.140015810
addss xmm0, dword [0x1400a2e18]
movss xmm6, dword [0x1400a2e28]
minss xmm6, xmm0
jmp 0x140017b29
test esi, esi
je case.0x140017809.14
mov rbx, qword [0x1401a1610]
mov rdi, qword [rbx + 0x30]
mov rcx, rdi
call fcn.140015810
subss xmm0, dword [0x1400a2e18]
movss xmm6, dword [0x1400a2888]
maxss xmm6, xmm0
movaps xmm1, xmm6
mov rcx, rbx
call fcn.140039680
movaps xmm1, xmm6
mov rcx, rdi
call fcn.140015d40
jmp case.0x140017809.14
test esi, esi
je case.0x140017809.14
mov rbx, qword [0x1401a1610]
movss xmm6, dword [0x14009bf30]
movaps xmm1, xmm6
mov rcx, qword [rbx + 0x30]
call fcn.140015d40
movaps xmm1, xmm6
mov rcx, rbx
call fcn.140039680
jmp case.0x140017809.14
cmp dword [0x1401881ec], 0
je case.0x140017809.14
test esi, esi
je case.0x140017809.14
movups xmm0, xmmword [rdi + 0x90]
movq rax, xmm0
movups xmmword [rbp - 0x50], xmm0
test rax, rax
je case.0x140017809.14
cmp dword [rbp - 0x48], 0
jl case.0x140017809.14
mov rcx, qword [rdi + 0xf0]
lea rdx, [rbp - 0x50]
movaps xmmword [rbp - 0x50], xmm0
call fcn.140054e90
mov rcx, qword [rdi + 0x20]
mov edx, eax
mov rcx, qword [rcx + 0x140]
call fcn.140059ea0
jmp case.0x140017809.14
mov rcx, qword [rdi + 0x18]
call fcn.14004a3a0
jmp case.0x140017809.14
movups xmm0, xmmword [rdi + 0x90]
lea rdx, [rbp - 0x50]
mov rcx, rdi
movaps xmmword [rbp - 0x50], xmm0
call fcn.1400175c0
mov dword [rdi + 0xb4], 5
movaps xmm6, xmmword [rsp + 0x60]
mov rcx, qword [rbp - 0x20]
xor rcx, rsp
call fcn.14005d680
lea r11, [rsp + 0x70]
mov rbx, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
mov rdi, qword [r11 + 0x28]
mov rsp, r11
pop rbp
ret