Function at 0x140011890
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, rsp
push rbp
mov rbp, rsp
sub rsp, 0x80
mov qword [rbp - 0x38], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov rax, qword [0x1400a1650]
xor rax, rsp
mov qword [rbp - 0x10], rax
mov rbx, rcx
movsxd rdi, dword [rcx + 0x144]
lea rsi, [0x1400ab2c0]
cmp edi, 0xff
jge 0x140011952
mov ecx, edi
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
movzx ecx, ax
shr ecx, 0xf
and cl, 1
je 0x14001194f
cmp byte [rdi + rsi], 0
jne 0x14001194f
mov byte [rdi + rsi], 1
mov rcx, rbx
call fcn.14000fa70
test al, al
je 0x140011952
mov qword [rbp - 0x18], 0xf
xor edi, edi
mov qword [rbp - 0x20], rdi
mov byte [rbp - 0x30], dil
lea r8d, [rdi + 1]
lea rdx, [0x14008bb18]
lea rcx, [rbp - 0x30]
call fcn.140005b10
nop
lea rdx, [rbp - 0x30]
mov rcx, rbx
call fcn.140012170
nop
cmp qword [rbp - 0x18], 0x10
jb 0x140012149
mov rcx, qword [rbp - 0x30]
call fcn.140040640
jmp 0x140012149
mov byte [rdi + rsi], cl
movsxd rdi, dword [rbx + 0x148]
cmp edi, 0xff
jge 0x1400119ce
mov ecx, edi
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
movzx ecx, ax
shr ecx, 0xf
and cl, 1
je 0x1400119cb
cmp byte [rdi + rsi], 0
jne 0x1400119cb
mov byte [rdi + rsi], 1
mov qword [rbp - 0x18], 0xf
xor edi, edi
mov qword [rbp - 0x20], rdi
mov byte [rbp - 0x30], dil
lea r8d, [rdi + 1]
lea rdx, str.2346
lea rcx, [rbp - 0x30]
call fcn.140005b10
nop
lea rdx, [rbp - 0x30]
mov rcx, rbx
call fcn.140012170
nop
cmp qword [rbp - 0x18], 0x10
jb 0x140012149
mov rcx, qword [rbp - 0x30]
call fcn.140040640
jmp 0x140012149
mov byte [rdi + rsi], cl
movsxd rdi, dword [rbx + 0x14c]
cmp edi, 0xff
jge 0x140011a4a
mov ecx, edi
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
movzx ecx, ax
shr ecx, 0xf
and cl, 1
je 0x140011a47
cmp byte [rdi + rsi], 0
jne 0x140011a47
mov byte [rdi + rsi], 1
mov qword [rbp - 0x18], 0xf
xor edi, edi
mov qword [rbp - 0x20], rdi
mov byte [rbp - 0x30], dil
lea r8d, [rdi + 1]
lea rdx, [0x14008c01c]
lea rcx, [rbp - 0x30]
call fcn.140005b10
nop
lea rdx, [rbp - 0x30]
mov rcx, rbx
call fcn.140012170
nop
cmp qword [rbp - 0x18], 0x10
jb 0x140012149
mov rcx, qword [rbp - 0x30]
call fcn.140040640
jmp 0x140012149
mov byte [rdi + rsi], cl
movsxd rdi, dword [rbx + 0x150]
cmp edi, 0xff
jge 0x140011ac6
mov ecx, edi
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
movzx ecx, ax
shr ecx, 0xf
and cl, 1
je 0x140011ac3
cmp byte [rdi + rsi], 0
jne 0x140011ac3
mov byte [rdi + rsi], 1
mov qword [rbp - 0x18], 0xf
xor edi, edi
mov qword [rbp - 0x20], rdi
mov byte [rbp - 0x30], dil
lea r8d, [rdi + 1]
lea rdx, [0x14008c020]
lea rcx, [rbp - 0x30]
call fcn.140005b10
nop
lea rdx, [rbp - 0x30]
mov rcx, rbx
call fcn.140012170
nop
cmp qword [rbp - 0x18], 0x10
jb 0x140012149
mov rcx, qword [rbp - 0x30]
call fcn.140040640
jmp 0x140012149
mov byte [rdi + rsi], cl
mov edx, dword [rbx + 0x154]
call fcn.140012a80
test al, al
je 0x140011b2e
mov rcx, rbx
call fcn.140010c40
test al, al
je 0x140011b2e
mov qword [rbp - 0x18], 0xf
xor edi, edi
mov qword [rbp - 0x20], rdi
mov byte [rbp - 0x30], dil
lea r8d, [rdi + 1]
lea rdx, [0x14008bed0]
lea rcx, [rbp - 0x30]
call fcn.140005b10
nop
lea rdx, [rbp - 0x30]
mov rcx, rbx
call fcn.140012170
nop
cmp qword [rbp - 0x18], 0x10
jb 0x140012149
mov rcx, qword [rbp - 0x30]
call fcn.140040640
jmp 0x140012149
mov edx, dword [rbx + 0x158]
call fcn.140012a80
test al, al
je 0x140011b8a
mov qword [rbp - 0x18], 0xf
xor edi, edi
mov qword [rbp - 0x20], rdi
mov byte [rbp - 0x30], dil
lea r8d, [rdi + 1]
lea rdx, [0x14008c024]
lea rcx, [rbp - 0x30]
call fcn.140005b10
nop
lea rdx, [rbp - 0x30]
mov rcx, rbx
call fcn.140012170
nop
cmp qword [rbp - 0x18], 0x10
jb 0x140012149
mov rcx, qword [rbp - 0x30]
call fcn.140040640
jmp 0x140012149
mov edx, dword [rbx + 0x15c]
call fcn.140012a80
test al, al
je 0x140011bf2
mov rcx, rbx
call fcn.140010440
test al, al
je 0x140011bf2
mov qword [rbp - 0x18], 0xf
xor edi, edi
mov qword [rbp - 0x20], rdi
mov byte [rbp - 0x30], dil
lea r8d, [rdi + 1]
lea rdx, [0x14008bdc8]
lea rcx, [rbp - 0x30]
call fcn.140005b10
nop
lea rdx, [rbp - 0x30]
mov rcx, rbx
call fcn.140012170
nop
cmp qword [rbp - 0x18], 0x10
jb 0x140012149
mov rcx, qword [rbp - 0x30]
call fcn.140040640
jmp 0x140012149
mov edx, dword [rbx + 0x160]
call fcn.140012a80
test al, al
je 0x140011c5a
mov rcx, rbx
call fcn.140010440
test al, al
je 0x140011c5a
mov qword [rbp - 0x18], 0xf
xor edi, edi
mov qword [rbp - 0x20], rdi
mov byte [rbp - 0x30], dil
lea r8d, [rdi + 1]
lea rdx, [0x14008bdcc]
lea rcx, [rbp - 0x30]
call fcn.140005b10
nop
lea rdx, [rbp - 0x30]
mov rcx, rbx
call fcn.140012170
nop
cmp qword [rbp - 0x18], 0x10
jb 0x140012149
mov rcx, qword [rbp - 0x30]
call fcn.140040640
jmp 0x140012149
mov edx, dword [rbx + 0x140]
call fcn.140012a80
test al, al
je 0x140011cc2
mov rcx, rbx
call fcn.14000fa70
test al, al
je 0x140011cc2
mov qword [rbp - 0x18], 0xf
xor edi, edi
mov qword [rbp - 0x20], rdi
mov byte [rbp - 0x30], dil
lea r8d, [rdi + 1]
lea rdx, [0x14008bc30]
lea rcx, [rbp - 0x30]
call fcn.140005b10
nop
lea rdx, [rbp - 0x30]
mov rcx, rbx
call fcn.140012170
nop
cmp qword [rbp - 0x18], 0x10
jb 0x140012149
mov rcx, qword [rbp - 0x30]
call fcn.140040640
jmp 0x140012149
mov ecx, 0x21
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
and al, 1
je 0x140011d31
cmp byte [0x1400ab2e1], 0
jne 0x140011d31
mov byte [0x1400ab2e1], 1
mov qword [rbp - 0x18], 0xf
xor edi, edi
mov qword [rbp - 0x20], rdi
mov byte [rbp - 0x30], dil
lea r8d, [rdi + 6]
lea rdx, [0x14008c028]
lea rcx, [rbp - 0x30]
call fcn.140005b10
nop
lea rdx, [rbp - 0x30]
mov rcx, rbx
call fcn.140012170
nop
cmp qword [rbp - 0x18], 0x10
jb 0x140012149
mov rcx, qword [rbp - 0x30]
call fcn.140040640
jmp 0x140012149
mov byte [0x1400ab2e1], al
mov ecx, 0x22
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
and al, 1
je 0x140011da6
cmp byte [0x1400ab2e2], 0
jne 0x140011da6
mov byte [0x1400ab2e2], 1
mov qword [rbp - 0x18], 0xf
xor edi, edi
mov qword [rbp - 0x20], rdi
mov byte [rbp - 0x30], dil
lea r8d, [rdi + 8]
lea rdx, str.PageDown
lea rcx, [rbp - 0x30]
call fcn.140005b10
nop
lea rdx, [rbp - 0x30]
mov rcx, rbx
call fcn.140012170
nop
cmp qword [rbp - 0x18], 0x10
jb 0x140012149
mov rcx, qword [rbp - 0x30]
call fcn.140040640
jmp 0x140012149
mov byte [0x1400ab2e2], al
mov ecx, 0x70
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
and al, 1
je 0x140011e89
cmp byte [0x1400ab330], 0
jne 0x140011e89
mov byte [0x1400ab330], 1
mov rcx, rbx
call fcn.140011220
test al, al
je 0x140011e8f
movss xmm0, dword [0x14008cb20]
movss dword [rbp - 0x40], xmm0
mov qword [rbp - 0x18], 0xf
xor edi, edi
mov qword [rbp - 0x20], rdi
mov byte [rbp - 0x30], dil
lea r8d, [rdi + 4]
lea rdx, str.MTP1
lea rcx, [rbp - 0x30]
call fcn.140005b10
nop
lea rdx, [rbp - 0x30]
mov rcx, rbx
call fcn.140013830
mov ecx, dword [rbp - 0x40]
mov dword [rax + 0x30], ecx
cmp qword [rbp - 0x18], 0x10
jb 0x140011e3c
mov rcx, qword [rbp - 0x30]
call fcn.140040640
mov qword [rbp - 0x18], 0xf
mov qword [rbp - 0x20], rdi
mov byte [rbp - 0x30], 0
mov r8d, 4
lea rdx, str.MTP1
lea rcx, [rbp - 0x30]
call fcn.140005b10
nop
lea rdx, [rbp - 0x30]
mov rcx, rbx
call fcn.140012170
nop
cmp qword [rbp - 0x18], 0x10
jb 0x140012149
mov rcx, qword [rbp - 0x30]
call fcn.140040640
jmp 0x140012149
mov byte [0x1400ab330], al
mov ecx, 0x71
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
and al, 1
je 0x140011f6c
cmp byte [0x1400ab331], 0
jne 0x140011f6c
mov byte [0x1400ab331], 1
mov rcx, rbx
call fcn.140011220
test al, al
je 0x140011f72
movss xmm0, dword [0x14008cb24]
movss dword [rbp - 0x40], xmm0
mov qword [rbp - 0x18], 0xf
xor edi, edi
mov qword [rbp - 0x20], rdi
mov byte [rbp - 0x30], dil
lea r8d, [rdi + 4]
lea rdx, str.MTP1
lea rcx, [rbp - 0x30]
call fcn.140005b10
nop
lea rdx, [rbp - 0x30]
mov rcx, rbx
call fcn.140013830
mov ecx, dword [rbp - 0x40]
mov dword [rax + 0x30], ecx
cmp qword [rbp - 0x18], 0x10
jb 0x140011f1f
mov rcx, qword [rbp - 0x30]
call fcn.140040640
mov qword [rbp - 0x18], 0xf
mov qword [rbp - 0x20], rdi
mov byte [rbp - 0x30], 0
mov r8d, 4
lea rdx, str.MTP1
lea rcx, [rbp - 0x30]
call fcn.140005b10
nop
lea rdx, [rbp - 0x30]
mov rcx, rbx
call fcn.140012170
nop
cmp qword [rbp - 0x18], 0x10
jb 0x140012149
mov rcx, qword [rbp - 0x30]
call fcn.140040640
jmp 0x140012149
mov byte [0x1400ab331], al
mov ecx, 0x72
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
and al, 1
je 0x14001204f
cmp byte [0x1400ab332], 0
jne 0x14001204f
mov byte [0x1400ab332], 1
mov rcx, rbx
call fcn.140011220
test al, al
je 0x140012055
movss xmm0, dword [0x14008cb28]
movss dword [rbp - 0x40], xmm0
mov qword [rbp - 0x18], 0xf
xor edi, edi
mov qword [rbp - 0x20], rdi
mov byte [rbp - 0x30], dil
lea r8d, [rdi + 4]
lea rdx, str.MTP1
lea rcx, [rbp - 0x30]
call fcn.140005b10
nop
lea rdx, [rbp - 0x30]
mov rcx, rbx
call fcn.140013830
mov ecx, dword [rbp - 0x40]
mov dword [rax + 0x30], ecx
cmp qword [rbp - 0x18], 0x10
jb 0x140012002
mov rcx, qword [rbp - 0x30]
call fcn.140040640
mov qword [rbp - 0x18], 0xf
mov qword [rbp - 0x20], rdi
mov byte [rbp - 0x30], 0
mov r8d, 4
lea rdx, str.MTP1
lea rcx, [rbp - 0x30]
call fcn.140005b10
nop
lea rdx, [rbp - 0x30]
mov rcx, rbx
call fcn.140012170
nop
cmp qword [rbp - 0x18], 0x10
jb 0x140012149
mov rcx, qword [rbp - 0x30]
call fcn.140040640
jmp 0x140012149
mov byte [0x1400ab332], al
mov ecx, 0x73
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
and al, 1
je 0x14001212b
cmp byte [0x1400ab333], 0
jne 0x14001212b
mov byte [0x1400ab333], 1
mov rcx, rbx
call fcn.140011220
test al, al
je 0x140012131
movss xmm0, dword [0x14008cb34]
movss dword [rbp - 0x40], xmm0
mov qword [rbp - 0x18], 0xf
xor edi, edi
mov qword [rbp - 0x20], rdi
mov byte [rbp - 0x30], dil
lea r8d, [rdi + 4]
lea rdx, str.MTP1
lea rcx, [rbp - 0x30]
call fcn.140005b10
nop
lea rdx, [rbp - 0x30]
mov rcx, rbx
call fcn.140013830
mov ecx, dword [rbp - 0x40]
mov dword [rax + 0x30], ecx
cmp qword [rbp - 0x18], 0x10
jb 0x1400120e5
mov rcx, qword [rbp - 0x30]
call fcn.140040640
mov qword [rbp - 0x18], 0xf
mov qword [rbp - 0x20], rdi
mov byte [rbp - 0x30], 0
mov r8d, 4
lea rdx, str.MTP1
lea rcx, [rbp - 0x30]
call fcn.140005b10
nop
lea rdx, [rbp - 0x30]
mov rcx, rbx
call fcn.140012170
nop
cmp qword [rbp - 0x18], 0x10
jb 0x140012149
mov rcx, qword [rbp - 0x30]
call fcn.140040640
jmp 0x140012149
mov byte [0x1400ab333], al
mov edx, 0x24
call fcn.140012a80
test al, al
je 0x140012149
xor edx, edx
mov rcx, rbx
call fcn.140012d80
mov rcx, qword [rbp - 0x10]
xor rcx, rsp
call fcn.140040660
lea r11, [rsp + 0x80]
mov rbx, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
mov rdi, qword [r11 + 0x28]
mov rsp, r11
pop rbp
ret