Function at 0x14000fa00
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, rsp
push rbp
mov rbp, rsp
sub rsp, 0x70
mov qword [rbp - 0x30], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov rax, qword [0x1400a1640]
xor rax, rsp
mov qword [rbp - 8], rax
mov rbx, rcx
movsxd rdi, dword [rcx + 0x10c]
lea rsi, [0x1400ab2d0]
cmp edi, 0xff
jge 0x14000fabf
mov ecx, edi
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
movzx edx, ax
shr edx, 0xf
and dl, 1
je 0x14000fabc
cmp byte [rdi + rsi], 0
jne 0x14000fabc
mov byte [rdi + rsi], 1
mov rcx, rbx
call fcn.14000db90
test al, al
je 0x14000fabf
mov qword [rbp - 0x10], 0xf
xor edi, edi
mov qword [rbp - 0x18], rdi
mov byte [rbp - 0x28], dil
lea r8d, [rdi + 1]
lea rdx, [0x14008b978]
lea rcx, [rbp - 0x28]
call fcn.140001920
nop
lea rdx, [rbp - 0x28]
mov rcx, rbx
call fcn.1400103f0
nop
cmp qword [rbp - 0x10], 0x10
jb 0x1400103c6
mov rcx, qword [rbp - 0x28]
call fcn.14003fb44
jmp 0x1400103c6
mov byte [rdi + rsi], dl
movsxd rdi, dword [rbx + 0x110]
cmp edi, 0xff
jge 0x14000fb3b
mov ecx, edi
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
movzx edx, ax
shr edx, 0xf
and dl, 1
je 0x14000fb38
cmp byte [rdi + rsi], 0
jne 0x14000fb38
mov byte [rdi + rsi], 1
mov qword [rbp - 0x10], 0xf
xor edi, edi
mov qword [rbp - 0x18], rdi
mov byte [rbp - 0x28], dil
lea r8d, [rdi + 1]
lea rdx, str.235678
lea rcx, [rbp - 0x28]
call fcn.140001920
nop
lea rdx, [rbp - 0x28]
mov rcx, rbx
call fcn.1400103f0
nop
cmp qword [rbp - 0x10], 0x10
jb 0x1400103c6
mov rcx, qword [rbp - 0x28]
call fcn.14003fb44
jmp 0x1400103c6
mov byte [rdi + rsi], dl
movsxd rdi, dword [rbx + 0x114]
cmp edi, 0xff
jge 0x14000fbb7
mov ecx, edi
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
movzx edx, ax
shr edx, 0xf
and dl, 1
je 0x14000fbb4
cmp byte [rdi + rsi], 0
jne 0x14000fbb4
mov byte [rdi + rsi], 1
mov qword [rbp - 0x10], 0xf
xor edi, edi
mov qword [rbp - 0x18], rdi
mov byte [rbp - 0x28], dil
lea r8d, [rdi + 1]
lea rdx, [0x14008bf10]
lea rcx, [rbp - 0x28]
call fcn.140001920
nop
lea rdx, [rbp - 0x28]
mov rcx, rbx
call fcn.1400103f0
nop
cmp qword [rbp - 0x10], 0x10
jb 0x1400103c6
mov rcx, qword [rbp - 0x28]
call fcn.14003fb44
jmp 0x1400103c6
mov byte [rdi + rsi], dl
movsxd rdi, dword [rbx + 0x118]
cmp edi, 0xff
jge 0x14000fc3f
mov ecx, edi
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
movzx edx, ax
shr edx, 0xf
and dl, 1
je 0x14000fc3c
cmp byte [rdi + rsi], 0
jne 0x14000fc3c
mov byte [rdi + rsi], 1
mov rcx, rbx
call fcn.14000e170
test al, al
je 0x14000fc3f
mov qword [rbp - 0x10], 0xf
xor edi, edi
mov qword [rbp - 0x18], rdi
mov byte [rbp - 0x28], dil
lea r8d, [rdi + 1]
lea rdx, [0x14008bb00]
lea rcx, [rbp - 0x28]
call fcn.140001920
nop
lea rdx, [rbp - 0x28]
mov rcx, rbx
call fcn.1400103f0
nop
cmp qword [rbp - 0x10], 0x10
jb 0x1400103c6
mov rcx, qword [rbp - 0x28]
call fcn.14003fb44
jmp 0x1400103c6
mov byte [rdi + rsi], dl
mov edx, dword [rbx + 0x11c]
call fcn.140010bd0
test al, al
je 0x14000fc9b
mov qword [rbp - 0x10], 0xf
xor edi, edi
mov qword [rbp - 0x18], rdi
mov byte [rbp - 0x28], dil
lea r8d, [rdi + 1]
lea rdx, [0x14008bf14]
lea rcx, [rbp - 0x28]
call fcn.140001920
nop
lea rdx, [rbp - 0x28]
mov rcx, rbx
call fcn.1400103f0
nop
cmp qword [rbp - 0x10], 0x10
jb 0x1400103c6
mov rcx, qword [rbp - 0x28]
call fcn.14003fb44
jmp 0x1400103c6
mov edx, dword [rbx + 0x120]
call fcn.140010bd0
test al, al
je 0x14000fcf7
mov qword [rbp - 0x10], 0xf
xor edi, edi
mov qword [rbp - 0x18], rdi
mov byte [rbp - 0x28], dil
lea r8d, [rdi + 1]
lea rdx, [0x14008bf18]
lea rcx, [rbp - 0x28]
call fcn.140001920
nop
lea rdx, [rbp - 0x28]
mov rcx, rbx
call fcn.1400103f0
nop
cmp qword [rbp - 0x10], 0x10
jb 0x1400103c6
mov rcx, qword [rbp - 0x28]
call fcn.14003fb44
jmp 0x1400103c6
mov edx, dword [rbx + 0x124]
call fcn.140010bd0
test al, al
je 0x14000fd53
mov qword [rbp - 0x10], 0xf
xor edi, edi
mov qword [rbp - 0x18], rdi
mov byte [rbp - 0x28], dil
lea r8d, [rdi + 1]
lea rdx, [0x14008bf1c]
lea rcx, [rbp - 0x28]
call fcn.140001920
nop
lea rdx, [rbp - 0x28]
mov rcx, rbx
call fcn.1400103f0
nop
cmp qword [rbp - 0x10], 0x10
jb 0x1400103c6
mov rcx, qword [rbp - 0x28]
call fcn.14003fb44
jmp 0x1400103c6
mov edx, dword [rbx + 0x128]
call fcn.140010bd0
test al, al
je 0x14000fdaf
mov qword [rbp - 0x10], 0xf
xor edi, edi
mov qword [rbp - 0x18], rdi
mov byte [rbp - 0x28], dil
lea r8d, [rdi + 1]
lea rdx, [0x14008bf20]
lea rcx, [rbp - 0x28]
call fcn.140001920
nop
lea rdx, [rbp - 0x28]
mov rcx, rbx
call fcn.1400103f0
nop
cmp qword [rbp - 0x10], 0x10
jb 0x1400103c6
mov rcx, qword [rbp - 0x28]
call fcn.14003fb44
jmp 0x1400103c6
mov edx, dword [rbx + 0x12c]
call fcn.140010bd0
test al, al
je 0x14000fe17
mov rcx, rbx
call fcn.14000edd0
test al, al
je 0x14000fe17
mov qword [rbp - 0x10], 0xf
xor edi, edi
mov qword [rbp - 0x18], rdi
mov byte [rbp - 0x28], dil
lea r8d, [rdi + 1]
lea rdx, [0x14008bdd8]
lea rcx, [rbp - 0x28]
call fcn.140001920
nop
lea rdx, [rbp - 0x28]
mov rcx, rbx
call fcn.1400103f0
nop
cmp qword [rbp - 0x10], 0x10
jb 0x1400103c6
mov rcx, qword [rbp - 0x28]
call fcn.14003fb44
jmp 0x1400103c6
mov edx, dword [rbx + 0x108]
call fcn.140010bd0
test al, al
je 0x14000fe7f
mov rcx, rbx
call fcn.14000f440
test al, al
je 0x14000fe7f
mov qword [rbp - 0x10], 0xf
xor edi, edi
mov qword [rbp - 0x18], rdi
mov byte [rbp - 0x28], dil
lea r8d, [rdi + 1]
lea rdx, [0x14008bec8]
lea rcx, [rbp - 0x28]
call fcn.140001920
nop
lea rdx, [rbp - 0x28]
mov rcx, rbx
call fcn.1400103f0
nop
cmp qword [rbp - 0x10], 0x10
jb 0x1400103c6
mov rcx, qword [rbp - 0x28]
call fcn.14003fb44
jmp 0x1400103c6
mov edx, dword [rbx + 0x130]
call fcn.140010bd0
test al, al
je 0x14000fedb
mov qword [rbp - 0x10], 0xf
xor edi, edi
mov qword [rbp - 0x18], rdi
mov byte [rbp - 0x28], dil
lea r8d, [rdi + 1]
lea rdx, [0x140089b2c]
lea rcx, [rbp - 0x28]
call fcn.140001920
nop
lea rdx, [rbp - 0x28]
mov rcx, rbx
call fcn.1400103f0
nop
cmp qword [rbp - 0x10], 0x10
jb 0x1400103c6
mov rcx, qword [rbp - 0x28]
call fcn.14003fb44
jmp 0x1400103c6
mov edx, dword [rbx + 0x134]
call fcn.140010bd0
test al, al
je 0x14000ff43
mov rcx, rbx
call fcn.14000e730
test al, al
je 0x14000ff43
mov qword [rbp - 0x10], 0xf
xor edi, edi
mov qword [rbp - 0x18], rdi
mov byte [rbp - 0x28], dil
lea r8d, [rdi + 1]
lea rdx, [0x14008bc20]
lea rcx, [rbp - 0x28]
call fcn.140001920
nop
lea rdx, [rbp - 0x28]
mov rcx, rbx
call fcn.1400103f0
nop
cmp qword [rbp - 0x10], 0x10
jb 0x1400103c6
mov rcx, qword [rbp - 0x28]
call fcn.14003fb44
jmp 0x1400103c6
mov edx, dword [rbx + 0x138]
call fcn.140010bd0
test al, al
je 0x14000ffab
mov rcx, rbx
call fcn.14000e730
test al, al
je 0x14000ffab
mov qword [rbp - 0x10], 0xf
xor edi, edi
mov qword [rbp - 0x18], rdi
mov byte [rbp - 0x28], dil
lea r8d, [rdi + 1]
lea rdx, [0x14008bc24]
lea rcx, [rbp - 0x28]
call fcn.140001920
nop
lea rdx, [rbp - 0x28]
mov rcx, rbx
call fcn.1400103f0
nop
cmp qword [rbp - 0x10], 0x10
jb 0x1400103c6
mov rcx, qword [rbp - 0x28]
call fcn.14003fb44
jmp 0x1400103c6
mov ecx, 0x21
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
and al, 1
je 0x14001001a
cmp byte [0x1400ab2f1], 0
jne 0x14001001a
mov byte [0x1400ab2f1], 1
mov qword [rbp - 0x10], 0xf
xor edi, edi
mov qword [rbp - 0x18], rdi
mov byte [rbp - 0x28], dil
lea r8d, [rdi + 6]
lea rdx, [0x14008bf24]
lea rcx, [rbp - 0x28]
call fcn.140001920
nop
lea rdx, [rbp - 0x28]
mov rcx, rbx
call fcn.1400103f0
nop
cmp qword [rbp - 0x10], 0x10
jb 0x1400103c6
mov rcx, qword [rbp - 0x28]
call fcn.14003fb44
jmp 0x1400103c6
mov byte [0x1400ab2f1], al
mov ecx, 0x22
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
and al, 1
je 0x14001008f
cmp byte [0x1400ab2f2], 0
jne 0x14001008f
mov byte [0x1400ab2f2], 1
mov qword [rbp - 0x10], 0xf
xor edi, edi
mov qword [rbp - 0x18], rdi
mov byte [rbp - 0x28], dil
lea r8d, [rdi + 8]
lea rdx, str.PageDown
lea rcx, [rbp - 0x28]
call fcn.140001920
nop
lea rdx, [rbp - 0x28]
mov rcx, rbx
call fcn.1400103f0
nop
cmp qword [rbp - 0x10], 0x10
jb 0x1400103c6
mov rcx, qword [rbp - 0x28]
call fcn.14003fb44
jmp 0x1400103c6
mov byte [0x1400ab2f2], al
mov ecx, 0x70
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
and al, 1
je 0x140010166
cmp byte [0x1400ab340], 0
jne 0x140010166
mov byte [0x1400ab340], 1
mov rcx, rbx
call fcn.14000e170
test al, al
je 0x14001016c
mov qword [rbp - 0x10], 0xf
xor edi, edi
mov qword [rbp - 0x18], rdi
mov byte [rbp - 0x28], dil
lea r8d, [rdi + 4]
lea rdx, str.MTP1
lea rcx, [rbp - 0x28]
call fcn.140001920
nop
lea rdx, [rbp - 0x28]
mov rcx, rbx
call fcn.140012090
mov dword [rax + 0x38], 2
cmp qword [rbp - 0x10], 0x10
jb 0x140010119
mov rcx, qword [rbp - 0x28]
call fcn.14003fb44
mov qword [rbp - 0x10], 0xf
mov qword [rbp - 0x18], rdi
mov byte [rbp - 0x28], 0
mov r8d, 4
lea rdx, str.MTP1
lea rcx, [rbp - 0x28]
call fcn.140001920
nop
lea rdx, [rbp - 0x28]
mov rcx, rbx
call fcn.1400103f0
nop
cmp qword [rbp - 0x10], 0x10
jb 0x1400103c6
mov rcx, qword [rbp - 0x28]
call fcn.14003fb44
jmp 0x1400103c6
mov byte [0x1400ab340], al
mov ecx, 0x71
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
and al, 1
je 0x14001023d
cmp byte [0x1400ab341], 0
jne 0x14001023d
mov byte [0x1400ab341], 1
mov rcx, rbx
call fcn.14000e170
test al, al
je 0x140010243
mov qword [rbp - 0x10], 0xf
xor edi, edi
mov qword [rbp - 0x18], rdi
mov byte [rbp - 0x28], dil
lea r8d, [rdi + 4]
lea rdx, str.MTP1
lea rcx, [rbp - 0x28]
call fcn.140001920
nop
lea rdx, [rbp - 0x28]
mov rcx, rbx
call fcn.140012090
mov dword [rax + 0x38], 4
cmp qword [rbp - 0x10], 0x10
jb 0x1400101f0
mov rcx, qword [rbp - 0x28]
call fcn.14003fb44
mov qword [rbp - 0x10], 0xf
mov qword [rbp - 0x18], rdi
mov byte [rbp - 0x28], 0
mov r8d, 4
lea rdx, str.MTP1
lea rcx, [rbp - 0x28]
call fcn.140001920
nop
lea rdx, [rbp - 0x28]
mov rcx, rbx
call fcn.1400103f0
nop
cmp qword [rbp - 0x10], 0x10
jb 0x1400103c6
mov rcx, qword [rbp - 0x28]
call fcn.14003fb44
jmp 0x1400103c6
mov byte [0x1400ab341], al
mov edx, 0x72
call fcn.140010bd0
test al, al
je 0x1400102fc
mov rcx, rbx
call fcn.14000e170
test al, al
je 0x1400102fc
mov qword [rbp - 0x10], 0xf
xor edi, edi
mov qword [rbp - 0x18], rdi
mov byte [rbp - 0x28], dil
lea r8d, [rdi + 4]
lea rdx, str.MTP1
lea rcx, [rbp - 0x28]
call fcn.140001920
nop
lea rdx, [rbp - 0x28]
mov rcx, rbx
call fcn.140012090
mov dword [rax + 0x38], 8
cmp qword [rbp - 0x10], 0x10
jb 0x1400102af
mov rcx, qword [rbp - 0x28]
call fcn.14003fb44
mov qword [rbp - 0x10], 0xf
mov qword [rbp - 0x18], rdi
mov byte [rbp - 0x28], 0
mov r8d, 4
lea rdx, str.MTP1
lea rcx, [rbp - 0x28]
call fcn.140001920
nop
lea rdx, [rbp - 0x28]
mov rcx, rbx
call fcn.1400103f0
nop
cmp qword [rbp - 0x10], 0x10
jb 0x1400103c6
mov rcx, qword [rbp - 0x28]
call fcn.14003fb44
jmp 0x1400103c6
mov edx, 0x73
call fcn.140010bd0
test al, al
je 0x1400103ae
mov rcx, rbx
call fcn.14000e170
test al, al
je 0x1400103ae
mov qword [rbp - 0x10], 0xf
xor edi, edi
mov qword [rbp - 0x18], rdi
mov byte [rbp - 0x28], dil
lea r8d, [rdi + 4]
lea rdx, str.MTP1
lea rcx, [rbp - 0x28]
call fcn.140001920
nop
lea rdx, [rbp - 0x28]
mov rcx, rbx
call fcn.140012090
mov dword [rax + 0x38], 0x10
cmp qword [rbp - 0x10], 0x10
jb 0x140010368
mov rcx, qword [rbp - 0x28]
call fcn.14003fb44
mov qword [rbp - 0x10], 0xf
mov qword [rbp - 0x18], rdi
mov byte [rbp - 0x28], 0
mov r8d, 4
lea rdx, str.MTP1
lea rcx, [rbp - 0x28]
call fcn.140001920
nop
lea rdx, [rbp - 0x28]
mov rcx, rbx
call fcn.1400103f0
nop
cmp qword [rbp - 0x10], 0x10
jb 0x1400103c6
mov rcx, qword [rbp - 0x28]
call fcn.14003fb44
jmp 0x1400103c6
mov edx, 0x24
call fcn.140010bd0
test al, al
je 0x1400103c6
xor edx, edx
mov rcx, rbx
call fcn.140010eb0
mov rcx, qword [rbp - 8]
xor rcx, rsp
call fcn.14003fb60
lea r11, [rsp + 0x70]
mov rbx, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
mov rdi, qword [r11 + 0x28]
mov rsp, r11
pop rbp
ret