Function at 0x140192e00
Capabilities:
Log keystrokes via polling

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x1d8
mov ebp, r9d
mov rdi, r8
mov r14, rdx
mov rsi, rcx
mov rax, qword [rsp + 0x240]
lea rcx, [rax + 8]
call fcn.140199090
mov r12, rdx
test edi, 0xff0000
je 0x140192e5a
mov eax, edi
shr eax, 0x10
xor ecx, ecx
test edi, 0x1000000
sete cl
movzx eax, al
shl ecx, 0xd
add eax, ecx
add eax, 0xffffe000
jmp 0x140192e71
movzx ecx, r14w
mov r8, qword [r12 + 0x90]
mov edx, 4
call qword [sym.imp.user32.dll_MapVirtualKeyExW]
mov dword [rsp + 0x4c], eax
movzx ebx, ax
mov ecx, ebx
call fcn.14019f2c0
mov r15, rax
mov rdx, qword [r12 + 0x90]
mov ecx, ebx
call fcn.140194180
mov byte [rsp + 0x46], al
lea rcx, [rsp + 0xd8]
call qword [sym.imp.user32.dll_GetKeyboardState]
movzx eax, byte [rsp + 0xec]
movzx r9d, byte [rsp + 0x168]
movzx ecx, byte [rsp + 0x178]
movzx edx, byte [rsp + 0x17a]
movzx r8d, byte [rsp + 0x17c]
or cl, byte [rsp + 0xe8]
or cl, byte [rsp + 0x179]
shr cl, 7
or dl, byte [rsp + 0xe9]
lea r10d, [rcx + 2]
or dl, byte [rsp + 0x17b]
movzx ecx, cl
movzx edx, r10b
cmovns edx, ecx
or r8b, byte [rsp + 0xea]
lea ecx, [rdx + 4]
or r8b, byte [rsp + 0x17d]
movzx ebx, cl
cmovns ebx, edx
shl al, 3
and al, 8
or al, bl
movzx ecx, al
and al, 0xd
cmp bl, 4
movzx r8d, al
cmovae r8d, ecx
test bl, 2
mov byte [rsp + 0x47], bpl
mov qword [rsp + 0x80], r14
je 0x140192f6c
lea eax, [r15 - 5]
movzx ecx, ax
lea rdx, [rcx + 1]
xor eax, eax
cmp ecx, 0xc2
cmovb rax, rdx
cmp rax, 0x55
je 0x140193043
cmp eax, 0x79
jne 0x140192f6c
mov ebp, 0x30
jmp 0x140193048
and bl, 2
shr bl, 1
and r9b, 1
mov dword [rsp + 0xc0], 0x134
mov qword [rsp + 0x30], r15
mov r13d, dword [rsp + 0x4c]
mov word [rsp + 0x28], r13w
mov word [rsp + 0x20], r14w
lea rcx, [rsp + 0x68]
mov rdx, r12
call fcn.140198b10
mov eax, dword [rsp + 0x68]
mov dword [rsp + 0x48], eax
test eax, eax
mov rcx, r14
setne r14b
or r14b, bpl
or r14b, bl
movups xmm0, xmmword [rsp + 0x6c]
movaps xmmword [rsp + 0x50], xmm0
mov eax, dword [rsp + 0x7c]
mov dword [rsp + 0x60], eax
mov qword [rsp + 0x30], r15
mov word [rsp + 0x28], r13w
mov word [rsp + 0x20], cx
xor ebx, ebx
lea rcx, [rsp + 0x88]
mov rdx, r12
xor r8d, r8d
xor r9d, r9d
call fcn.140198b10
mov ebp, dword [rsp + 0x88]
cmp ebp, 2
jne 0x140193027
mov eax, dword [rsp + 0x8c]
cmp eax, 0x110000
mov rcx, qword [rsp + 0x240]
jne 0x1401930d5
mov ebp, 1
xor r13d, r13d
jmp 0x1401931dc
mov ebx, dword [rsp + 0x8c]
mov r13, qword [rsp + 0x90]
mov r12, qword [rsp + 0x98]
jmp 0x1401931dc
mov ebp, 9
and r9b, 1
mov dword [rsp + 0xc0], ebp
mov qword [rsp + 0x30], r15
mov eax, dword [rsp + 0x4c]
mov word [rsp + 0x28], ax
mov word [rsp + 0x20], r14w
lea rcx, [rsp + 0x68]
mov rdx, r12
call fcn.140198b10
mov ebx, dword [rsp + 0x68]
lea rcx, [rsp + 0xd8]
lea rdx, [rsp + 0xc0]
call fcn.140194630
mov ecx, dword [rsp + 0xd8]
movups xmm0, xmmword [rsp + 0xdc]
movaps xmmword [rsp + 0xa0], xmm0
mov eax, dword [rsp + 0xec]
mov dword [rsp + 0xb0], eax
cmp ecx, 0x134
jne 0x1401930f9
mov eax, dword [rsp + 0x7c]
mov dword [rsp + 0x60], eax
movups xmm0, xmmword [rsp + 0x6c]
movaps xmmword [rsp + 0x50], xmm0
mov r14b, 1
mov dword [rsp + 0x48], ebx
jmp 0x140193118
mov dword [rsp + 0xd8], 0
cmp eax, 0x80
jae 0x14019311d
mov byte [rsp + 0xd8], al
mov r8d, 1
jmp 0x1401931c1
mov dword [rsp + 0x48], ecx
mov eax, dword [rsp + 0xb0]
mov dword [rsp + 0x60], eax
movaps xmm0, xmmword [rsp + 0xa0]
movaps xmmword [rsp + 0x50], xmm0
mov r14b, 1
jmp 0x1401931dc
mov edx, eax
cmp eax, 0x800
jae 0x140193146
shr edx, 6
or dl, 0xc0
mov byte [rsp + 0xd8], dl
and al, 0x3f
or al, 0x80
mov byte [rsp + 0xd9], al
mov r8d, 2
jmp 0x1401931c1
cmp eax, 0x10000
jae 0x14019317f
shr edx, 0xc
or dl, 0xe0
mov byte [rsp + 0xd8], dl
mov edx, eax
shr edx, 6
and dl, 0x3f
or dl, 0x80
mov byte [rsp + 0xd9], dl
and al, 0x3f
or al, 0x80
mov byte [rsp + 0xda], al
mov r8d, 3
jmp 0x1401931c1
shr edx, 0x12
or dl, 0xf0
mov byte [rsp + 0xd8], dl
mov edx, eax
shr edx, 0xc
and dl, 0x3f
or dl, 0x80
mov byte [rsp + 0xd9], dl
mov edx, eax
shr edx, 6
and dl, 0x3f
or dl, 0x80
mov byte [rsp + 0xda], dl
and al, 0x3f
or al, 0x80
mov byte [rsp + 0xdb], al
mov r8d, 4
add rcx, 0x38
lea rdx, [rsp + 0xd8]
call fcn.14019ad00
mov r13, rax
mov r12, rdx
xor ebp, ebp
xor ebx, ebx
movzx eax, byte [0x14071e481]
mov ecx, 0x10
mov edx, 2
call fcn.1401047d0
test rax, rax
je 0x1401932b1
mov ecx, edi
shr ecx, 0x1e
shr edi, 0x1f
xor edi, ecx
mov rcx, r15
shr rcx, 0x10
movzx edx, r14b
mov r8, qword [rsp + 0x80]
mov word [rsi + 0x70], r8w
mov r8d, dword [rsp + 0x4c]
mov word [rsi + 0x72], r8w
movzx r8d, byte [rsp + 0x47]
mov byte [rsi + 0x74], r8b
and dil, 1
mov byte [rsi + 0x75], dil
mov word [rsi + 0x38], r15w
shr r15, 0x30
mov word [rsi + 0x3e], r15w
mov dword [rsi + 0x3a], ecx
movzx ecx, byte [rsp + 0x46]
mov byte [rsi + 0x76], cl
mov qword [rsi], rdx
mov ecx, dword [rsp + 0x48]
mov dword [rsi + 8], ecx
movaps xmm0, xmmword [rsp + 0x50]
movups xmmword [rsi + 0xc], xmm0
mov ecx, dword [rsp + 0x60]
mov dword [rsi + 0x1c], ecx
mov dword [rsi + 0x20], ebp
mov dword [rsi + 0x24], ebx
mov qword [rsi + 0x28], r13
mov qword [rsi + 0x30], r12
mov qword [rsi + 0x40], rax
mov qword [rsi + 0x48], 8
mov qword [rsi + 0x50], 0
mov qword [rsi + 0x58], 2
xorps xmm0, xmm0
movups xmmword [rsi + 0x60], xmm0
add rsp, 0x1d8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov ecx, 2
mov edx, 0x10
call fcn.14026c6c0
ud2