Function at 0x1400e9560
Capabilities:
Log keystrokes via polling

Disassembly:
push rbx
push rsi
push rdi
push r13
sub rsp, 0x38
mov eax, dword [rcx + 0x60]
mov rbx, rdx
mov edi, r9d
cdq
movzx r13d, r8b
mov rsi, rcx
xor eax, edx
cmp eax, edx
jne 0x1400e958d
xor eax, eax
add rsp, 0x38
pop r13
pop rdi
pop rsi
pop rbx
ret
mov qword [rsp + 0x60], rbp
mov qword [rsp + 0x68], r12
xor r8d, r8d
xor edx, edx
mov rcx, rbx
mov qword [rsp + 0x70], r14
mov qword [rsp + 0x30], r15
call fcn.1400ca590
mov ecx, 0x11
mov r12d, eax
mov ebp, eax
shr r12d, 0x16
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
xor r14d, r14d
test ax, ax
mov ecx, 0x10
sets r14b
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
xor r15d, r15d
test ax, ax
sets r15b
and r12d, 1
je 0x1400e95f6
test r14d, r14d
jne 0x1400e95f6
test r15d, r15d
jne 0x1400e95f6
mov ebx, dword [rsi + 0x60]
jmp 0x1400e9619
mov eax, dword [rsp + 0x80]
mov r9d, edi
mov r8d, r15d
mov edx, r14d
mov rcx, rsi
mov qword [rsp + 0x28], rbx
mov dword [rsp + 0x20], eax
call fcn.1400e97b0
mov ebx, eax
mov eax, 0x5dc
mov ecx, 1
cmp ebx, eax
cmovg ebx, eax
mov eax, 0xfffffa24
cmp ebx, eax
cmovl ebx, eax
bt ebp, 0x18
jb 0x1400e963d
test r12d, r12d
jne 0x1400e9652
test edi, edi
jne 0x1400e9652
mov eax, dword [rsi + 0x3c]
test al, 2
jne 0x1400e9652
bt eax, 0x13
jb 0x1400e9652
xor ebp, ebp
jmp 0x1400e9654
mov ebp, ecx
test r14d, r14d
mov r14, qword [rsp + 0x70]
jne 0x1400e9663
test r15d, r15d
je 0x1400e9685
test edi, edi
jne 0x1400e9685
test dword [rsi + 0x3c], 0x80000
jne 0x1400e9685
xor ebp, ebp
mov eax, ebx
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x78
jge 0x1400e96df
xor eax, eax
jmp 0x1400e9787
test ebp, ebp
je 0x1400e9672
test r12d, r12d
jne 0x1400e96a9
test edi, edi
je 0x1400e96ad
xor edx, edx
mov rcx, rsi
call fcn.1400eb850
mov ecx, eax
mov eax, ebx
cdq
xor eax, edx
sub eax, edx
cmp eax, ecx
jl 0x1400e967e
test edi, edi
jne 0x1400e96da
mov eax, ebx
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x168
jle 0x1400e96da
test ebx, ebx
jns 0x1400e96cd
or eax, 0xffffffff
imul ebx, eax, 0x168
mov eax, dword [rsi + 0x60]
jmp 0x1400e9714
xor eax, eax
test ebx, ebx
setg al
imul ebx, eax, 0x168
mov eax, dword [rsi + 0x60]
jmp 0x1400e9714
mov eax, 0x88888889
imul ebx
add ebx, edx
sar ebx, 6
mov eax, ebx
shr eax, 0x1f
add ebx, eax
mov eax, ebx
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x7f
jl 0x1400e9711
test ebx, ebx
jns 0x1400e9707
or eax, 0xffffffff
jmp 0x1400e970e
xor eax, eax
test ebx, ebx
setg al
imul ebx, eax, 0x7f
imul eax, ebx, 0x78
cdq
lea rcx, [0x1402af150]
neg ebx
mov edi, eax
xor edi, edx
sub edi, edx
call fcn.14003d0e0
test rax, rax
je 0x1400e977b
xor ecx, ecx
test r13b, r13b
mov edx, 1
cmove ecx, edx
test ebp, ebp
je 0x1400e9742
or ecx, 2
mov r10, qword [rax + 0x58]
test r10, r10
jne 0x1400e974f
lea r10, [rax + 0x70]
mov rax, qword [r10]
mov dword [rsp + 0x28], ecx
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, r10
mov dword [rsp + 0x20], ebx
call qword [rax + 0xe0]
mov eax, dword [rsi + 0x60]
test eax, eax
jle 0x1400e9776
sub eax, edi
jmp 0x1400e9778
add eax, edi
mov dword [rsi + 0x60], eax
mov dword [rsi + 0xa0], 0
mov eax, edi
mov r12, qword [rsp + 0x68]
mov rbp, qword [rsp + 0x60]
mov r15, qword [rsp + 0x30]
add rsp, 0x38
pop r13
pop rdi
pop rsi
pop rbx
ret