Function at 0x14005cb10
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x60
mov r15, qword [0x140116768]
mov r12, r9
mov rbx, r8
mov r13, rcx
test r15, r15
je case.0x14005d095.527
lea rdi, [r15 + 8]
mov r15, qword [r15 + 0x90]
cmp edx, 0x200
ja 0x14005d069
je 0x14005d00c
lea eax, [rdx - 7]
cmp eax, 0xfe
ja case.0x14005d095.527
lea r8, [0x140000000]
movzx eax, byte [r8 + rax + 0x5d23c]
mov ecx, dword [r8 + rax*4 + 0x5d228]
add rcx, r8
jmp rcx
lea eax, [rdx - 0x100]
mov r15d, 0x100
test eax, 0xfffffffb
sete r14b
cmp rbx, r15
jae case.0x14005d095.527
vmovaps xmmword [rsp + 0x50], xmm6
mov ecx, 0x11
vmovaps xmmword [rsp + 0x40], xmm7
call qword [sym.imp.USER32.dll_GetKeyState]
vmovss xmm7, dword [0x140086df4]
movzx r8d, ax
xor esi, esi
shr r8d, 0xf
and r8b, 1
vxorps xmm6, xmm6, xmm6
cmp byte [rdi + 0x38c9], sil
je 0x14005cc0b
movzx eax, r8b
mov edx, 0x1000
vmovd xmm0, eax
vmovd xmm1, esi
vpcmpeqd xmm2, xmm0, xmm1
vblendvps xmm3, xmm7, xmm6, xmm2
mov rcx, rdi
call fcn.1400304a0
mov ecx, 0x10
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
and al, 1
cmp byte [rdi + 0x38c9], sil
je 0x14005cc4a
movzx ecx, al
movzx r8d, al
vmovd xmm0, ecx
vmovd xmm1, esi
vpcmpeqd xmm2, xmm0, xmm1
vblendvps xmm3, xmm7, xmm6, xmm2
mov edx, 0x2000
mov rcx, rdi
call fcn.1400304a0
mov ecx, 0x12
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
and al, 1
cmp byte [rdi + 0x38c9], sil
je 0x14005cc89
movzx ecx, al
movzx r8d, al
vmovd xmm0, ecx
vmovd xmm1, esi
vpcmpeqd xmm2, xmm0, xmm1
vblendvps xmm3, xmm7, xmm6, xmm2
mov edx, 0x4000
mov rcx, rdi
call fcn.1400304a0
mov ecx, 0x5d
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
and al, 1
cmp byte [rdi + 0x38c9], sil
je 0x14005ccc8
movzx edx, al
movzx r8d, al
vmovd xmm0, edx
vmovd xmm1, esi
vpcmpeqd xmm2, xmm0, xmm1
vblendvps xmm3, xmm7, xmm6, xmm2
mov edx, 0x8000
mov rcx, rdi
call fcn.1400304a0
vmovaps xmm7, xmmword [rsp + 0x40]
vmovaps xmm6, xmmword [rsp + 0x50]
cmp rbx, 0xd
jne 0x14005ccea
shr r12, 0x10
mov eax, 0x10d
test r15w, r12w
cmovne ebx, eax
movsxd rcx, ebx
call fcn.14005c5c0
test eax, eax
je 0x14005cd04
mov r8d, ebx
movzx edx, r14b
mov ecx, eax
call fcn.14005bad0
cmp ebx, 0x10
jne 0x14005cd64
mov ecx, 0xa0
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
and al, 1
cmp al, r14b
jne 0x14005cd32
mov r8d, 0xa0
movzx edx, r14b
mov ecx, 0x210
call fcn.14005bad0
mov ecx, 0xa1
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
and al, 1
cmp al, r14b
jne case.0x14005d095.527
mov r8d, 0xa1
movzx edx, r14b
mov ecx, 0x214
call fcn.14005bad0
jmp case.0x14005d095.527
cmp ebx, 0x11
jne 0x14005cdc4
mov ecx, 0xa2
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
and al, 1
cmp al, r14b
jne 0x14005cd92
mov r8d, 0xa2
movzx edx, r14b
mov ecx, 0x20f
call fcn.14005bad0
mov ecx, 0xa3
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
and al, 1
cmp al, r14b
jne case.0x14005d095.527
mov r8d, 0xa3
movzx edx, r14b
mov ecx, 0x213
call fcn.14005bad0
jmp case.0x14005d095.527
cmp ebx, 0x12
jne case.0x14005d095.527
mov ecx, 0xa4
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
and al, 1
cmp al, r14b
jne 0x14005cdf6
mov r8d, 0xa4
movzx edx, r14b
mov ecx, 0x211
call fcn.14005bad0
mov ecx, 0xa5
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
and al, 1
cmp al, r14b
jne case.0x14005d095.527
mov r8d, 0xa5
movzx edx, r14b
mov ecx, 0x215
call fcn.14005bad0
jmp case.0x14005d095.527
mov r8, qword [rdi + 0xe30]
cmp edx, 7
sete r9b
mov eax, dword [r8 + 0x3f80]
sub eax, 1
js 0x14005ce5f
movsxd rcx, eax
imul rax, rcx, 0x1c
add rax, qword [r8 + 0x3f88]
cmp dword [rax], 6
je 0x14005cec7
sub rax, 0x1c
sub rcx, 1
jns 0x14005ce50
cmp byte [r8 + 0x38d0], 0
sete cl
cmp cl, r9b
je case.0x14005d095.527
cmp byte [rdi + 0x73], 0
je 0x14005ce82
cmp edx, 7
jne case.0x14005d095.527
xor eax, eax
lea rdx, [rbp - 0x40]
mov qword [rbp - 0x30], rax
lea rcx, [r8 + 0x3f80]
mov dword [rbp - 0x28], eax
mov eax, dword [r8 + 0x3fa4]
vpxor xmm0, xmm0, xmm0
vmovups xmmword [rbp - 0x40], xmm0
mov dword [rbp - 0x38], eax
inc eax
mov dword [r8 + 0x3fa4], eax
mov dword [rbp - 0x40], 6
mov byte [rbp - 0x34], r9b
call fcn.1400498f0
jmp case.0x14005d095.527
movzx ecx, byte [rax + 0xc]
jmp 0x14005ce6a
lea rax, [rbx - 1]
cmp rax, 0xfffe
ja case.0x14005d095.527
test bx, bx
jne 0x14005ceef
cmp word [rdi + 0x38cc], bx
je case.0x14005d095.527
cmp byte [rdi + 0x38c9], 0
je case.0x14005d095.527
mov ecx, 0xfc00
movzx eax, bx
and ax, cx
mov edx, 0xd800
movzx ecx, word [rdi + 0x38cc]
cmp ax, dx
jne 0x14005cf73
test cx, cx
je 0x14005cf67
mov rcx, qword [rdi + 0xe30]
lea rdx, [rbp - 0x40]
xor esi, esi
mov dword [rbp - 0x40], 5
mov r14d, 2
mov qword [rbp - 0x30], rsi
mov dword [rbp - 0x28], esi
mov eax, dword [rcx + 0x3fa4]
mov dword [rbp - 0x38], eax
inc eax
mov dword [rcx + 0x3fa4], eax
mov eax, 0xfffd
add rcx, 0x3f80
mov dword [rbp - 0x34], eax
mov dword [rbp - 0x3c], r14d
call fcn.1400498f0
mov word [rdi + 0x38cc], bx
jmp case.0x14005d095.527
test cx, cx
je 0x14005cfda
mov ecx, 0xdc00
xor esi, esi
cmp ax, cx
je 0x14005cfce
mov rcx, qword [rdi + 0xe30]
lea rdx, [rbp - 0x40]
mov r14d, 2
mov qword [rbp - 0x30], rsi
mov dword [rbp - 0x28], esi
mov dword [rbp - 0x40], 5
mov eax, dword [rcx + 0x3fa4]
mov dword [rbp - 0x38], eax
inc eax
mov dword [rcx + 0x3fa4], eax
mov eax, 0xfffd
add rcx, 0x3f80
mov dword [rbp - 0x34], eax
mov dword [rbp - 0x3c], r14d
call fcn.1400498f0
jmp 0x14005cfd3
mov ebx, 0xfffd
mov word [rdi + 0x38cc], si
movzx edx, bx
mov rcx, rdi
call fcn.140030430
jmp case.0x14005d095.527
cmp r12w, 1
jne case.0x14005d095.527
call fcn.14005b960
test al, al
je case.0x14005d095.527
mov eax, 1
jmp 0x14005d207
cmp byte [r15 + 0x10], 0
mov qword [r15 + 8], r13
jne 0x14005d040
xor esi, esi
mov dword [rbp - 0x40], 0x18
mov r14d, 2
mov dword [rbp - 0x30], esi
lea rcx, [rbp - 0x40]
mov dword [rbp - 0x3c], r14d
mov qword [rbp - 0x38], r13
call qword [sym.imp.USER32.dll_TrackMouseEvent]
mov byte [r15 + 0x10], 1
vxorps xmm2, xmm2, xmm2
vxorps xmm1, xmm1, xmm1
mov rax, r12
mov rcx, rdi
shr rax, 0x10
cwde
vcvtsi2ss xmm2, xmm2, eax
movsx eax, r12w
vcvtsi2ss xmm1, xmm1, eax
call fcn.1400305e0
jmp case.0x14005d095.527
lea eax, [rdx - 0x201]
cmp eax, 0xa2
ja case.0x14005d095.527
lea r8, [0x140000000]
movzx eax, byte [r8 + rax + 0x5d358]
mov ecx, dword [r8 + rax*4 + 0x5d33c]
add rcx, r8
jmp rcx
cmp qword [r15 + 8], r13
jne 0x14005d0a3
xor esi, esi
mov qword [r15 + 8], rsi
vmovss xmm1, dword [0x14008706c]
vmovaps xmm2, xmm1
mov rcx, rdi
mov byte [r15 + 0x10], 0
call fcn.1400305e0
jmp case.0x14005d095.527
xor esi, esi
lea eax, [rdx - 0x204]
test eax, 0xfffffffd
mov r12d, esi
mov eax, 1
mov r14d, 2
cmove r12d, eax
lea eax, [rdx - 0x207]
test eax, 0xfffffffd
lea eax, [rdx - 0x20b]
cmove r12d, r14d
test eax, 0xfffffffd
jne 0x14005d10f
shr rbx, 0x10
mov r12d, esi
cmp bx, 1
setne r12b
add r12d, 3
cmp dword [r15 + 0x14], esi
jne 0x14005d129
call qword [sym.imp.USER32.dll_GetCapture]
test rax, rax
jne 0x14005d129
mov rcx, r13
call qword [sym.imp.USER32.dll_SetCapture]
mov eax, dword [r15 + 0x14]
mov r8b, 1
bts eax, r12d
mov edx, r12d
mov rcx, rdi
mov dword [r15 + 0x14], eax
call fcn.140030730
jmp case.0x14005d095.527
xor esi, esi
cmp edx, 0x205
mov r14d, esi
sete r14b
cmp edx, 0x208
jne 0x14005d165
lea r14d, [rsi + 2]
jmp 0x14005d180
cmp edx, 0x20c
jne 0x14005d180
shr rbx, 0x10
mov r14d, esi
cmp bx, 1
setne r14b
add r14d, 3
mov eax, dword [r15 + 0x14]
btr eax, r14d
mov dword [r15 + 0x14], eax
test eax, eax
jne 0x14005d1a1
call qword [sym.imp.USER32.dll_GetCapture]
cmp rax, r13
jne 0x14005d1a1
call qword [sym.imp.USER32.dll_ReleaseCapture]
xor r8d, r8d
mov edx, r14d
mov rcx, rdi
call fcn.140030730
jmp case.0x14005d095.527
shr rbx, 0x10
mov rcx, rdi
movsx eax, bx
vxorps xmm0, xmm0, xmm0
vcvtsi2ss xmm0, xmm0, eax
vmulss xmm2, xmm0, dword [0x140086d30]
vxorps xmm1, xmm1, xmm1
call fcn.1400307f0
jmp case.0x14005d095.527
shr rbx, 0x10
mov rcx, rdi
movsx eax, bx
vxorps xmm0, xmm0, xmm0
vcvtsi2ss xmm0, xmm0, eax
vmulss xmm1, xmm0, dword [0x140086d30]
vxorps xmm2, xmm2, xmm2
call fcn.1400307f0
jmp case.0x14005d095.527
cmp ebx, 7
jne case.0x14005d095.527
mov byte [r15 + 0x2d], 1
xor eax, eax
lea r11, [rsp + 0x60]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret