Function at 0x18000fbe0
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r13
push r14
push r15
lea rbp, [rsp - 0x27]
sub rsp, 0xa0
mov r9, qword [0x18006a120]
mov rbx, r8
mov r13, rdx
mov rsi, rcx
mov rax, qword [r9 + 0x1af0]
mov byte [rax + 0x80], 1
mov rdi, qword [r9 + 0x1af0]
cmp byte [rdi + 0x83], 0
jne 0x18001049f
mov r14, qword [0x18006a120]
mov rdx, rcx
mov rcx, rdi
mov qword [rbp - 0x29], r14
xor r8d, r8d
movaps xmmword [rsp + 0x90], xmm6
call fcn.180029050
movss xmm0, dword [0x18005b44c]
lea rcx, [rbp - 0x31]
mov r9b, 1
movss dword [rsp + 0x20], xmm0
xor r8d, r8d
mov dword [rbp + 0x7f], eax
mov rdx, rsi
mov r15d, eax
call fcn.180025e70
movss xmm6, dword [r14 + 0x1594]
addss xmm6, xmm6
addss xmm6, dword [rbp - 0x2d]
call fcn.180025c10
mov rdx, qword [rbx]
lea rcx, [rbp - 0x39]
movaps xmm3, xmm6
movaps xmm2, xmm0
call fcn.180025b00
movss xmm2, dword [rdi + 0xd0]
lea rcx, [rbp - 0x11]
movss xmm1, dword [rdi + 0xd4]
movaps xmm4, xmm2
movss xmm0, dword [rbp - 0x31]
movaps xmm3, xmm1
addss xmm0, dword [r14 + 0x15a8]
addss xmm4, dword [rbp - 0x39]
addss xmm3, dword [rbp - 0x35]
movss dword [rbp - 0x1d], xmm1
addss xmm0, xmm2
movss dword [rbp - 0x19], xmm4
movss dword [rbp - 0x15], xmm3
movss dword [rbp - 0x21], xmm0
movss xmm0, dword [rdi + 0xd0]
movss dword [rbp - 0x11], xmm0
movss xmm1, dword [rdi + 0xd4]
movss dword [rbp - 0xd], xmm1
movss dword [rbp - 9], xmm4
movss dword [rbp - 5], xmm3
movss xmm1, dword [r14 + 0x1594]
call fcn.18002ac50
xor r8d, r8d
lea rcx, [rbp - 0x11]
mov edx, r15d
call fcn.18002a9c0
movaps xmm6, xmmword [rsp + 0x90]
test al, al
je 0x18001049f
xor edx, edx
mov qword [rsp + 0xf0], r12
cmp dword [r14 + 0x1b38], r15d
mov rcx, rdi
sete dl
call fcn.180028840
mov edx, r15d
lea rcx, [rbp - 0x21]
movzx esi, al
call fcn.18002ab00
test al, al
je 0x18000fd8d
mov ecx, r15d
call fcn.1800323f0
mov dword [r14 + 0x1f78], 1
cmp byte [r14 + 0x420], 0
je 0x18000fd8d
mov al, 1
jmp 0x18000fd8f
xor al, al
test sil, sil
jne 0x18000fdb1
test al, al
jne 0x18000fdb1
cmp byte [r14 + 0x420], al
je 0x18000fdf9
cmp dword [r14 + 0x1b38], r15d
jne 0x18000fdf9
call fcn.180026510
jmp 0x18000fdf9
cmp dword [r14 + 0x1b38], r15d
je 0x18000fde6
xor eax, eax
lea rcx, [r14 + 0x14c]
mov dword [r14 + 0x138], eax
xor edx, edx
mov r8d, 0x200
mov byte [r14 + 0x13c], al
call sub.VCRUNTIME140.dll_memset
mov dword [r13], 0
mov rdx, rdi
mov ecx, r15d
call fcn.180032050
mov rcx, rdi
call fcn.180028650
mov ebx, dword [r13]
xor r12b, r12b
cmp dword [r14 + 0x1b38], r15d
jne 0x18000fef9
xor edi, edi
lea rsi, [r14 + 0x138]
mov r13d, 5
mov r15d, 6
cmp byte [rsi], 0
jne 0x18000fe43
mov ecx, r13d
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x18000fe43
mov ecx, r15d
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x18000fe8e
mov ecx, edi
test edi, edi
je 0x18000fe61
sub ecx, 1
je 0x18000fe5a
cmp ecx, 1
jne 0x18000fe66
mov ebx, 4
jmp 0x18000fe66
mov ebx, 2
jmp 0x18000fe66
mov ebx, 1
mov ecx, r15d
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
mov ecx, r13d
cmovne ebx, r15d
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
mov r12b, 1
cmovne ebx, r13d
call fcn.180026510
inc edi
inc rsi
cmp edi, r15d
jle 0x18000fe22
mov r15d, dword [rbp + 0x7f]
mov r13, qword [rbp + 0x6f]
test r12b, r12b
jne 0x18000fecd
mov edi, 8
lea rsi, [r14 + 0x154]
cmp byte [rsi], 0
je 0x18000fec0
mov ebx, edi
mov r12b, 1
call fcn.180026510
inc edi
inc rsi
cmp edi, 0xa5
jle 0x18000feb1
mov rax, qword [0x18006a120]
mov ecx, dword [rax + 0x74]
test ecx, ecx
js 0x18000fef5
xor edx, edx
call fcn.18002a730
test al, al
je 0x18000fef5
mov dword [r13], 0
call fcn.180026510
jmp 0x18000fef9
mov dword [r13], ebx
mov eax, dword [r13]
lea rdi, str.None
test eax, eax
je 0x180010273
cmp dword [r14 + 0x1b38], r15d
je 0x180010280
dec eax
cmp eax, 0x9f
ja case.0x18000ff41.3
lea rdx, [0x180000000]
cdqe
movzx eax, byte [rdx + rax + 0x105c4]
mov ecx, dword [rdx + rax*4 + 0x104b4]
add rcx, rdx
jmp rcx
lea rdi, str.control
jmp 0x1800103b6
lea rdi, str.shift
jmp 0x1800103b6
lea rdi, [0x18005a280]
jmp 0x1800103b6
lea rdi, [0x18005a284]
jmp 0x1800103b6
lea rdi, str.mouse_1
jmp 0x1800103b6
lea rdi, str.mouse_2
jmp 0x1800103b6
lea rdi, str.mouse_3
jmp 0x1800103b6
lea rdi, str.mouse_4
jmp 0x1800103b6
lea rdi, str.mouse_5
jmp 0x1800103b6
lea rdi, str.page_up
jmp 0x1800103b6
lea rdi, str.page_down
jmp 0x1800103b6
lea rdi, [0x18005a2c4]
jmp 0x1800103b6
lea rdi, str.home
jmp 0x1800103b6
lea rdi, str.left_arrow
jmp 0x1800103b6
lea rdi, str.up_arrow
jmp 0x1800103b6
lea rdi, str.right_arrow
jmp 0x1800103b6
lea rdi, str.down_arrow
jmp 0x1800103b6
lea rdi, str.insert
jmp 0x1800103b6
lea rdi, str.delete
jmp 0x1800103b6
lea rdi, str.abcdefghijklmnopqrstuvwxyz
jmp 0x1800103b6
lea rdi, [0x18005a320]
jmp 0x1800103b6
lea rdi, [0x18005a324]
jmp 0x1800103b6
lea rdi, [0x18005a328]
jmp 0x1800103b6
lea rdi, [0x18005a32c]
jmp 0x1800103b6
lea rdi, [0x18005a330]
jmp 0x1800103b6
lea rdi, [0x18005a334]
jmp 0x1800103b6
lea rdi, [0x18005a338]
jmp 0x1800103b6
lea rdi, [0x18005a33c]
jmp 0x1800103b6
lea rdi, [0x18005a340]
jmp 0x1800103b6
lea rdi, [0x18005a344]
jmp 0x1800103b6
lea rdi, [0x18005a348]
jmp 0x1800103b6
lea rdi, [0x18005a34c]
jmp 0x1800103b6
lea rdi, [0x18005a350]
jmp 0x1800103b6
lea rdi, [0x18005a354]
jmp 0x1800103b6
lea rdi, [0x18005a358]
jmp 0x1800103b6
lea rdi, [0x18005a35c]
jmp 0x1800103b6
lea rdi, [0x18005a360]
jmp 0x1800103b6
lea rdi, [0x18005a364]
jmp 0x1800103b6
lea rdi, [0x18005a368]
jmp 0x1800103b6
lea rdi, [0x18005a36c]
jmp 0x1800103b6
lea rdi, [0x18005a370]
jmp 0x1800103b6
lea rdi, [0x18005a374]
jmp 0x1800103b6
lea rdi, [0x18005a378]
jmp 0x1800103b6
lea rdi, [0x18005a37c]
jmp 0x1800103b6
lea rdi, [0x18005a380]
jmp 0x1800103b6
lea rdi, str.numpad_0
jmp 0x1800103b6
lea rdi, str.numpad_1
jmp 0x1800103b6
lea rdi, str.numpad_2
jmp 0x1800103b6
lea rdi, str.numpad_3
jmp 0x1800103b6
lea rdi, str.numpad_4
jmp 0x1800103b6
lea rdi, str.numpad_5
jmp 0x1800103b6
lea rdi, str.numpad_6
jmp 0x1800103b6
lea rdi, str.numpad_7
jmp 0x1800103b6
lea rdi, str.numpad_8
jmp 0x1800103b6
lea rdi, str.numpad_9
jmp 0x1800103b6
lea rdi, [0x18005a424]
jmp 0x1800103b6
lea rdi, [0x18005a428]
jmp 0x1800103b6
lea rdi, [0x18005a42c]
jmp 0x1800103b6
lea rdi, [0x18005a430]
jmp 0x1800103b6
lea rdi, [0x18005a434]
jmp 0x1800103b6
lea rdi, [0x18005a438]
jmp 0x1800103b6
lea rdi, [0x18005a43c]
jmp 0x1800103b6
lea rdi, [0x18005a440]
jmp 0x1800103b6
lea rdi, [0x18005a444]
jmp 0x1800103b6
lea rdi, [0x18005a448]
jmp 0x1800103b6
lea rdi, [0x18005a44c]
jmp 0x1800103b6
lea rdi, [0x18005a450]
jmp 0x1800103b6
lea rdi, str.unknown
jmp 0x1800103b6
cmp dword [r14 + 0x1b38], r15d
jne 0x1800103b6
lea rcx, [rbp + 0x7f]
lea rdi, str.Press
call fcn.180021a90
mov rbx, qword [rbp + 0x7f]
movabs rax, 0x7ffffffffb3b4bff
cmp rbx, rax
jge 0x1800102ac
add rbx, 0x4c4b400
jmp 0x1800102b6
movabs rbx, 0x7fffffffffffffff
movabs r15, 0xb2f4fc0794908cf3
movabs r13, 0x4e94914f0000
movabs r14, 0x431bde82d7b634db
call sub.MSVCP140.dll__Query_perf_frequency
mov rsi, rax
call sub.MSVCP140.dll__Query_perf_counter
mov rcx, rax
cmp rsi, 0x989680
jne 0x1800102f3
imul rax, rcx, 0x64
jmp 0x180010364
cmp rsi, 0x16e3600
jne 0x180010346
mov rax, r15
imul rcx
lea r8, [rcx + rdx]
sar r8, 0x18
mov rax, r8
shr rax, 0x3f
add r8, rax
imul rax, r8, 0x16e3600
sub rcx, rax
mov rax, r15
imul rcx, rcx, 0x3b9aca00
imul rcx
lea rax, [rcx + rdx]
sar rax, 0x18
mov rcx, rax
shr rcx, 0x3f
add rax, rcx
imul rcx, r8, 0x3b9aca00
jmp 0x180010361
cqo
idiv rsi
mov rcx, rax
imul rax, rdx, 0x3b9aca00
cqo
idiv rsi
imul rcx, rcx, 0x3b9aca00
add rax, rcx
cmp rax, rbx
jge 0x1800103b2
mov rcx, rbx
sub rcx, rax
cmp rcx, r13
jl 0x180010383
mov ecx, 0x5265c00
call sub.KERNEL32.dll_Sleep
jmp 0x1800102d4
mov rax, r14
imul rcx
sar rdx, 0x12
mov rax, rdx
shr rax, 0x3f
add rdx, rax
imul rax, rdx, 0xf4240
cmp rax, rcx
jge 0x1800103a6
inc rdx
mov ecx, edx
call sub.KERNEL32.dll_Sleep
jmp 0x1800102d4
mov r14, qword [rbp - 0x29]
movss xmm4, dword [rbp - 0x21]
lea rcx, [rbp - 1]
movss xmm5, dword [rbp - 0x1d]
lea rax, [r14 + 0x15dc]
movss xmm0, dword [rbp - 0x39]
lea rdx, [rbp + 0x7f]
movss xmm1, dword [rbp - 0x35]
addss xmm0, xmm4
addss xmm1, xmm5
mov qword [rsp + 0x30], rcx
movss dword [rbp - 1], xmm4
lea rcx, [rbp - 0x29]
movss dword [rbp + 3], xmm5
xor r9d, r9d
mov qword [rsp + 0x28], rax
mov r8, rdi
movss dword [rbp + 7], xmm0
movss xmm0, dword [rbp - 0x19]
movss dword [rbp + 0xb], xmm1
movss xmm3, dword [r14 + 0x1590]
movss xmm2, dword [r14 + 0x1594]
subss xmm0, xmm3
movss xmm1, dword [rbp - 0x15]
addss xmm3, xmm4
subss xmm1, xmm2
mov qword [rsp + 0x20], 0
addss xmm2, xmm5
movss dword [rbp + 0x7f], xmm0
movss dword [rbp - 0x29], xmm3
movss dword [rbp + 0x83], xmm1
movss dword [rbp - 0x25], xmm2
call fcn.180030360
movss xmm0, dword [rbp - 0x31]
xorps xmm1, xmm1
comiss xmm0, xmm1
jbe 0x180010491
movss xmm1, dword [rbp - 0x1d]
mov r9b, 1
addss xmm1, dword [r14 + 0x1594]
movss xmm0, dword [rbp - 0x11]
xor r8d, r8d
mov rdx, qword [rbp + 0x67]
unpcklps xmm0, xmm1
movq rcx, xmm0
call fcn.180030240
movzx eax, r12b
mov r12, qword [rsp + 0xf0]
jmp 0x1800104a1
xor al, al
add rsp, 0xa0
pop r15
pop r14
pop r13
pop rdi
pop rsi
pop rbx
pop rbp
ret