Function at 0x1400af570
Capabilities:
Log keystrokes via polling

Disassembly:
mov dword [rsp + 0x18], r8d
push rbx
push rdi
sub rsp, 0x58
mov rbx, rdx
mov rdi, rcx
cmp rdx, 0x1d
jne 0x1400af5a9
mov ecx, 0xa2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 0xf
je 0x1400af5a9
mov ecx, 0xa5
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 0xf
jne 0x1400af996
cmp word [rdi + 0x128a], 0
jne 0x1400af996
mov rax, qword [rdi + 0x1250]
test rax, rax
je 0x1400af996
add rax, 0x28
je 0x1400af996
mov r8, qword [rax + 8]
mov qword [rsp + 0x20], r8
test r8, r8
je 0x1400af996
mov rdx, qword [r8 + 8]
mov qword [rsp + 0x70], rbp
mov qword [rsp + 0x50], rsi
mov rsi, rbx
mov qword [rsp + 0x48], r12
and esi, 0xfff
mov qword [rsp + 0x40], r13
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x88], rdx
mov byte [rsp + 0x78], 0
cmp rsi, 0x38
ja 0x1400af631
movabs rcx, 0x140040020000000
bt rcx, rsi
jb 0x1400af63f
cmp rsi, 0x138
je 0x1400af63f
movzx esi, bl
jmp 0x1400af644
mov byte [rsp + 0x78], 1
mov eax, dword [rax + 0x80]
xor ebp, ebp
xor cl, cl
add eax, 0xfffffffe
xor r13b, r13b
mov byte [rsp + 0x80], cl
xor r12b, r12b
mov r14d, ebp
mov r15d, ebp
cmp eax, 0xa
ja case.0x1400af67d.4
lea r9, [0x140000000]
cdqe
mov ecx, dword [r9 + rax*4 + 0xaf9a0]
add rcx, r9
jmp rcx
mov ebp, 0x2a
call fcn.14014cc00
cmp eax, 2
sete r13b
mov rdx, qword [rsp + 0x88]
mov r8, qword [rsp + 0x20]
xor al, al
or ebx, 0xffffffff
cmp byte [rsp + 0x78], 0
je 0x1400af8ae
test r13b, r13b
jne 0x1400af6be
cmp rsi, 0x2a
je 0x1400af6e1
cmp rsi, 0x36
je 0x1400af6e1
test al, al
jne 0x1400af6c8
cmp rsi, 0x1d
je 0x1400af6e1
test r12b, r12b
jne 0x1400af84d
lea rax, [rsi - 0x38]
test rax, 0xfffffffffffffeff
jne 0x1400af845
test rbp, rbp
je 0x1400af829
mov rdx, rbp
jmp 0x1400af83b
mov r15d, 0x1d
call fcn.14014cc80
mov rdx, qword [rsp + 0x88]
cmp eax, 5
mov r8, qword [rsp + 0x20]
sete al
mov byte [rsp + 0x80], al
jmp 0x1400af69f
mov r15d, 0x11d
call fcn.14014cc80
mov rdx, qword [rsp + 0x88]
cmp eax, 6
mov r8, qword [rsp + 0x20]
sete al
mov byte [rsp + 0x80], al
jmp 0x1400af69f
mov r14d, 0x38
call fcn.14014cc40
cmp eax, 8
sete r12b
jmp 0x1400af690
mov r14d, 0x138
call fcn.14014cc40
cmp eax, 9
sete r12b
jmp 0x1400af690
mov r14d, 0x138
call fcn.14014cc40
cmp eax, 9
sete r12b
mov ebp, 0x36
call fcn.14014cc00
cmp eax, 3
jmp 0x1400af68c
mov r15d, 0x1d
call fcn.14014cc80
cmp eax, 5
lea r14d, [r15 + 0x1b]
sete cl
mov byte [rsp + 0x80], cl
call fcn.14014cc40
mov rdx, qword [rsp + 0x88]
cmp eax, 8
movzx eax, byte [rsp + 0x80]
mov r8, qword [rsp + 0x20]
sete r12b
jmp 0x1400af69f
mov r15d, 0x1d
call fcn.14014cc80
cmp eax, 5
lea r14d, [r15 + 0x1b]
sete cl
mov byte [rsp + 0x80], cl
call fcn.14014cc40
cmp eax, 8
lea ebp, [r15 + 0x19]
sete r12b
call fcn.14014cc00
mov rdx, qword [rsp + 0x88]
cmp eax, 3
movzx eax, byte [rsp + 0x80]
mov r8, qword [rsp + 0x20]
sete r13b
jmp 0x1400af69f
test r15, r15
je 0x1400af833
mov rdx, r15
jmp 0x1400af83b
test r14, r14
je 0x1400af845
mov rdx, r14
mov rcx, rdi
call fcn.1400b0ac0
mov ebx, eax
movzx eax, byte [rsp + 0x80]
test r13b, r13b
je 0x1400af867
cmp rsi, rbp
jne 0x1400af867
mov rdx, rbp
mov rcx, rdi
call fcn.1400b0a40
jmp 0x1400af96d
test al, al
je 0x1400af880
cmp rsi, r15
jne 0x1400af880
mov rdx, r15
mov rcx, rdi
call fcn.1400b0a40
jmp 0x1400af96d
test r12b, r12b
je 0x1400af89a
cmp rsi, r14
jne 0x1400af89a
mov rdx, r14
mov rcx, rdi
call fcn.1400b0a40
jmp 0x1400af96d
test r13b, r13b
jne 0x1400af91e
test al, al
jne 0x1400af91e
test r12b, r12b
je 0x1400af96f
jmp 0x1400af91e
movzx eax, dl
cmp rax, rsi
jne 0x1400af965
mov r11d, dword [r8 + 0x40]
lea rcx, [rdi + 0xbf0]
cmp r11d, 0xffffffff
cmove r11d, ebx
call fcn.1400b31e0
cmp r11d, eax
je 0x1400af903
cmp rsi, 0x37
je 0x1400af8f9
lea rax, [rsi - 0x47]
cmp rax, 0xc
jbe 0x1400af8f9
cmp rsi, 0x11c
je 0x1400af8f9
cmp rsi, 0x135
jne 0x1400af903
mov rdx, qword [rsp + 0x88]
jmp 0x1400af965
mov rdx, qword [rsp + 0x88]
mov rcx, rdi
call fcn.1400b0a40
cmp dword [rdi + 0xb88], 2
mov ebx, eax
jne 0x1400af96f
test rbp, rbp
je 0x1400af939
call fcn.14014cc00
test eax, eax
jne 0x1400af939
mov rdx, rbp
mov rcx, rdi
call fcn.1400b0ac0
mov ebx, eax
test r15, r15
je 0x1400af954
call fcn.14014cc80
test eax, eax
jne 0x1400af954
mov rdx, r15
mov rcx, rdi
call fcn.1400b0ac0
mov ebx, eax
test r14, r14
je 0x1400af96f
call fcn.14014cc40
test eax, eax
jne 0x1400af96f
mov rdx, r14
mov rcx, rdi
call fcn.1400b0ac0
mov ebx, eax
mov r15, qword [rsp + 0x30]
mov eax, ebx
mov r14, qword [rsp + 0x38]
mov r13, qword [rsp + 0x40]
mov r12, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x70]
add rsp, 0x58
pop rdi
pop rbx
ret
or eax, 0xffffffff
add rsp, 0x58
pop rdi
pop rbx
ret