Function at 0x140230140
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push r14
sub rsp, 0x30
mov edi, edx
mov rsi, rcx
call fcn.14022d7f0
mov rcx, qword [rsi + 8]
mov edx, 0xffffffec
call qword [0x14039e658]
nop dword [rax + rax]
mov ebp, 1
lea rcx, [rsi + 0x30]
mov ebx, eax
shr ebx, 0x16
and ebx, ebp
call fcn.14022a090
mov edx, eax
mov r8d, ebx
mov ecx, edi
call fcn.140208ff8
mov edx, eax
lea r14d, [rbp + 4]
sub edx, 0xd
je 0x14023035a
sub edx, 0xe
je 0x140230300
sub edx, r14d
je 0x14023035a
lea edi, [rbp + 2]
sub edx, edi
je 0x1402302ab
sub edx, ebp
je 0x140230267
xor ebx, ebx
sub edx, ebp
je 0x140230249
sub edx, ebp
je 0x1402301e3
sub edx, ebp
je 0x140230249
cmp edx, ebp
jne 0x1402303ba
mov rcx, qword [rsi + 0x118]
test rcx, rcx
je 0x140230249
mov rax, qword [rcx]
mov rax, qword [rax + 0x20]
call qword [case.0x14006c37f.0]
cmp eax, edi
jne 0x140230208
xor r9d, r9d
jmp 0x14023039c
mov rcx, qword [rsi + 0x118]
mov rax, qword [rcx]
mov rax, qword [rax + 0x20]
call qword [case.0x14006c37f.0]
cmp eax, ebp
jne 0x1402303ba
mov r8d, dword [rsi + 0x120]
mov r9d, 2
mov rdx, qword [rsi + 0x118]
mov rcx, rsi
mov dword [rsp + 0x20], ebp
call fcn.14022de28
jmp 0x1402303ba
add eax, 0xffffffdb
lea rcx, [rsi + 0x28]
cmp eax, ebp
cmovbe ebp, ebx
xor r9d, r9d
mov r8d, ebp
xor edx, edx
call fcn.14022b0e0
jmp 0x1402303ba
lea rcx, [rsi + 0x28]
mov edx, ebp
call fcn.1400088c0
mov rdx, qword [rsi + 0xd8]
xor ebx, ebx
test rdx, rdx
je 0x140230284
mov eax, dword [rdx]
jmp 0x140230286
mov eax, ebx
test eax, eax
jle 0x1402303ba
mov rdx, qword [rdx + 8]
xor r8d, r8d
mov rdx, qword [rdx]
mov r9d, 2
mov rcx, rsi
call fcn.140231598
jmp 0x1402303ba
lea rcx, [rsi + 0x28]
mov edx, ebp
call fcn.1400088c0
mov rax, qword [rsi + 0xd8]
xor ebx, ebx
test rax, rax
je 0x1402302c8
mov ecx, dword [rax]
jmp 0x1402302ca
mov ecx, ebx
test ecx, ecx
jle 0x1402303ba
test rax, rax
je 0x1402302d9
mov ebx, dword [rax]
mov rax, qword [rax + 8]
movsxd rcx, ebx
mov rbx, qword [rax + rcx*8 - 8]
mov rcx, rbx
mov rax, qword [rbx]
mov rax, qword [rax + 0x138]
call qword [case.0x14006c37f.0]
mov r8d, eax
mov rdx, rbx
jmp 0x140230298
xor ebx, ebx
cmp dword [rsi + 0x248], ebx
jne 0x140230312
cmp dword [rsi + 0xf0], ebx
jne 0x140230341
mov dword [rsp + 0x20], ebx
xor r9d, r9d
or ebx, 0xffffffff
xor edx, edx
mov r8d, ebx
mov rcx, rsi
call fcn.140232028
xor r9d, r9d
mov dword [rsp + 0x20], 4
mov r8d, ebx
xor edx, edx
mov rcx, rsi
call fcn.140232028
lea rcx, [rsi + 0x28]
mov edx, ebp
call fcn.1400088c0
lea rcx, [rsi + 0x138]
call fcn.14003a0fc
jmp 0x1402303ba
xor ebx, ebx
cmp qword [rsi + 0x118], rbx
je 0x1402303ba
mov edi, ebx
cmp eax, 0xd
jne 0x140230399
lea ecx, [rbx + 0x10]
call qword [sym.imp.USER32.dll_GetKeyState]
nop dword [rax + rax]
test ax, ax
jns 0x140230399
lea ecx, [rbx + 0x11]
call qword [sym.imp.USER32.dll_GetKeyState]
nop dword [rax + rax]
test ax, ax
lea edi, [rbx + 3]
cmovs edi, r14d
mov r9d, edi
mov r8d, dword [rsi + 0x120]
mov rcx, rsi
mov rdx, qword [rsi + 0x118]
mov dword [rsp + 0x28], ebx
mov dword [rsp + 0x20], ebp
call fcn.14022f71c
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x58]
add rsp, 0x30
pop r14
ret