Function at 0x18000fa60
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rdx
mov qword [rax + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r13
push r14
push r15
lea rbp, [rax - 0x5f]
sub rsp, 0xa0
mov r9, qword [0x18010eee8]
mov rbx, r8
movaps xmmword [rax - 0x48], xmm6
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 0x1800102fa
mov r14, qword [0x18010eee8]
mov rdx, rcx
mov rcx, rdi
xor r8d, r8d
call fcn.18002c730
movss xmm0, dword [0x18005f6a0]
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.180029440
movss xmm6, dword [r14 + 0x1594]
addss xmm6, xmm6
addss xmm6, dword [rbp - 0x2d]
call fcn.1800291d0
mov rdx, qword [rbx]
lea rcx, [rbp - 0x39]
movaps xmm3, xmm6
movaps xmm2, xmm0
call fcn.1800290e0
movss xmm2, dword [rdi + 0xd0]
lea rcx, [rbp - 9]
movss xmm1, dword [rdi + 0xd4]
movss xmm0, dword [rbp - 0x31]
addss xmm0, dword [r14 + 0x15a8]
movss xmm4, dword [rbp - 0x39]
movss xmm3, dword [rbp - 0x35]
addss xmm4, xmm2
addss xmm3, xmm1
movss dword [rbp - 0x15], xmm1
addss xmm0, xmm2
movss dword [rbp - 0x11], xmm4
movss dword [rbp - 0xd], xmm3
movss dword [rbp - 0x19], xmm0
movss xmm0, dword [rdi + 0xd0]
movss dword [rbp - 9], xmm0
movss xmm1, dword [rdi + 0xd4]
movss dword [rbp - 5], xmm1
movss dword [rbp - 1], xmm4
movss dword [rbp + 3], xmm3
movss xmm1, dword [r14 + 0x1594]
call fcn.18002e4b0
xor r8d, r8d
lea rcx, [rbp - 9]
mov edx, r15d
call fcn.18002e220
test al, al
je 0x1800102fa
xor edx, edx
mov qword [rsp + 0xf0], r12
cmp dword [r14 + 0x1b38], r15d
mov rcx, rdi
sete dl
call fcn.18002bf40
mov edx, r15d
lea rcx, [rbp - 0x19]
movzx esi, al
call fcn.18002e360
test al, al
je 0x18000fbff
mov ecx, r15d
call fcn.180035f20
mov dword [r14 + 0x1f78], 1
cmp byte [r14 + 0x420], 0
je 0x18000fbff
mov al, 1
jmp 0x18000fc01
xor al, al
test sil, sil
jne 0x18000fc23
test al, al
jne 0x18000fc23
cmp byte [r14 + 0x420], al
je 0x18000fc6b
cmp dword [r14 + 0x1b38], r15d
jne 0x18000fc6b
call fcn.180029b70
jmp 0x18000fc6b
cmp dword [r14 + 0x1b38], r15d
je 0x18000fc58
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.180035b70
mov rcx, rdi
call fcn.18002bd40
mov ebx, dword [r13]
xor r12b, r12b
cmp dword [r14 + 0x1b38], r15d
jne 0x18000fd68
xor edi, edi
lea rsi, [r14 + 0x138]
lea r13d, [rdi + 5]
lea r15d, [rdi + 6]
cmp byte [rsi], 0
jne 0x18000fcb1
mov ecx, r13d
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x18000fcb1
mov ecx, r15d
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x18000fcfa
mov ecx, edi
test edi, edi
je 0x18000fccd
sub ecx, 1
je 0x18000fcc6
cmp ecx, 1
jne 0x18000fcd2
lea ebx, [rcx + 3]
jmp 0x18000fcd2
mov ebx, 2
jmp 0x18000fcd2
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.180029b70
inc edi
inc rsi
cmp edi, r15d
jle 0x18000fc90
mov r15d, dword [rbp + 0x7f]
mov r13, qword [rbp + 0x6f]
test r12b, r12b
jne 0x18000fd3c
mov edi, 8
lea rsi, [r14 + 0x154]
nop dword [rax]
cmp byte [rsi], 0
je 0x18000fd2f
mov ebx, edi
mov r12b, 1
call fcn.180029b70
inc edi
inc rsi
cmp edi, 0xa5
jle 0x18000fd20
mov rax, qword [0x18010eee8]
mov ecx, dword [rax + 0x74]
test ecx, ecx
js 0x18000fd64
xor edx, edx
call fcn.18002df90
test al, al
je 0x18000fd64
mov dword [r13], 0
call fcn.180029b70
jmp 0x18000fd68
mov dword [r13], ebx
mov eax, dword [r13]
lea rsi, str.None
test eax, eax
je 0x1800101c9
cmp dword [r14 + 0x1b38], r15d
je 0x1800101d6
dec eax
cmp eax, 0x9f
ja case.0x18000fdb0.3
lea rdx, [0x180000000]
cdqe
movzx eax, byte [rdx + rax + 0x10428]
mov ecx, dword [rdx + rax*4 + 0x10318]
add rcx, rdx
jmp rcx
lea rsi, str.control
movss xmm4, dword [rbp - 0x19]
lea rcx, [rbp + 7]
movss xmm5, dword [rbp - 0x15]
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 + 7], xmm4
lea rcx, [rbp - 0x29]
movss dword [rbp + 0xb], xmm5
xor r9d, r9d
mov qword [rsp + 0x28], rax
mov r8, rsi
movss dword [rbp + 0xf], xmm0
movss xmm0, dword [rbp - 0x11]
movss dword [rbp + 0x13], xmm1
movss xmm3, dword [r14 + 0x1590]
movss xmm2, dword [r14 + 0x1594]
subss xmm0, xmm3
movss xmm1, dword [rbp - 0xd]
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.180033e60
movss xmm0, dword [rbp - 0x31]
xorps xmm1, xmm1
comiss xmm0, xmm1
jbe 0x18000fe94
movss xmm1, dword [rbp - 0x15]
mov r9b, 1
addss xmm1, dword [r14 + 0x1594]
movss xmm0, dword [rbp - 9]
xor r8d, r8d
mov rdx, qword [rbp + 0x67]
unpcklps xmm0, xmm1
movq rcx, xmm0
call fcn.180033d40
movzx eax, r12b
mov r12, qword [rsp + 0xf0]
jmp 0x1800102fc
lea rsi, str.shift
jmp 0x18000fdb9
lea rsi, [0x18005e320]
jmp 0x18000fdb9
lea rsi, [0x18005e324]
jmp 0x18000fdb9
lea rsi, str.mouse_1
jmp 0x18000fdb9
lea rsi, str.mouse_2
jmp 0x18000fdb9
lea rsi, str.mouse_3
jmp 0x18000fdb9
lea rsi, str.mouse_4
jmp 0x18000fdb9
lea rsi, str.mouse_5
jmp 0x18000fdb9
lea rsi, str.page_up
jmp 0x18000fdb9
lea rsi, str.page_down
jmp 0x18000fdb9
lea rsi, [0x18005e364]
jmp 0x18000fdb9
lea rsi, str.home
jmp 0x18000fdb9
lea rsi, str.left_arrow
jmp 0x18000fdb9
lea rsi, str.up_arrow
jmp 0x18000fdb9
lea rsi, str.right_arrow
jmp 0x18000fdb9
lea rsi, str.down_arrow
jmp 0x18000fdb9
lea rsi, str.insert
jmp 0x18000fdb9
lea rsi, str.delete
jmp 0x18000fdb9
lea rsi, str.abcdefghijklmnopqrstuvwxyz
jmp 0x18000fdb9
lea rsi, [0x18005e3c0]
jmp 0x18000fdb9
lea rsi, [0x18005e3c4]
jmp 0x18000fdb9
lea rsi, [0x18005e3c8]
jmp 0x18000fdb9
lea rsi, [0x18005e3cc]
jmp 0x18000fdb9
lea rsi, [0x18005e3d0]
jmp 0x18000fdb9
lea rsi, [0x18005e3d4]
jmp 0x18000fdb9
lea rsi, [0x18005e3d8]
jmp 0x18000fdb9
lea rsi, [0x18005e3dc]
jmp 0x18000fdb9
lea rsi, [0x18005e3e0]
jmp 0x18000fdb9
lea rsi, [0x18005e3e4]
jmp 0x18000fdb9
lea rsi, [0x18005e3e8]
jmp 0x18000fdb9
lea rsi, [0x18005e3ec]
jmp 0x18000fdb9
lea rsi, [0x18005e3f0]
jmp 0x18000fdb9
lea rsi, [0x18005e3f4]
jmp 0x18000fdb9
lea rsi, [0x18005e3f8]
jmp 0x18000fdb9
lea rsi, [0x18005e3fc]
jmp 0x18000fdb9
lea rsi, [0x18005e400]
jmp 0x18000fdb9
lea rsi, [0x18005e404]
jmp 0x18000fdb9
lea rsi, [0x18005e408]
jmp 0x18000fdb9
lea rsi, [0x18005e40c]
jmp 0x18000fdb9
lea rsi, [0x18005e410]
jmp 0x18000fdb9
lea rsi, [0x18005e414]
jmp 0x18000fdb9
lea rsi, [0x18005e418]
jmp 0x18000fdb9
lea rsi, [0x18005e41c]
jmp 0x18000fdb9
lea rsi, [0x18005e420]
jmp 0x18000fdb9
lea rsi, str.numpad_0
jmp 0x18000fdb9
lea rsi, str.numpad_1
jmp 0x18000fdb9
lea rsi, str.numpad_2
jmp 0x18000fdb9
lea rsi, str.numpad_3
jmp 0x18000fdb9
lea rsi, str.numpad_4
jmp 0x18000fdb9
lea rsi, str.numpad_5
jmp 0x18000fdb9
lea rsi, str.numpad_6
jmp 0x18000fdb9
lea rsi, str.numpad_7
jmp 0x18000fdb9
lea rsi, str.numpad_8
jmp 0x18000fdb9
lea rsi, str.numpad_9
jmp 0x18000fdb9
lea rsi, [0x18005e4c4]
jmp 0x18000fdb9
lea rsi, [0x18005e4c8]
jmp 0x18000fdb9
lea rsi, [0x18005e4cc]
jmp 0x18000fdb9
lea rsi, [0x18005e4d0]
jmp 0x18000fdb9
lea rsi, [0x18005e4d4]
jmp 0x18000fdb9
lea rsi, [0x18005e4d8]
jmp 0x18000fdb9
lea rsi, [0x18005e4dc]
jmp 0x18000fdb9
lea rsi, [0x18005e4e0]
jmp 0x18000fdb9
lea rsi, [0x18005e4e4]
jmp 0x18000fdb9
lea rsi, [0x18005e4e8]
jmp 0x18000fdb9
lea rsi, [0x18005e4ec]
jmp 0x18000fdb9
lea rsi, [0x18005e4f0]
jmp 0x18000fdb9
lea rsi, str.unknown
jmp 0x18000fdb9
cmp dword [r14 + 0x1b38], r15d
jne 0x18000fdb9
lea rsi, str.Press
call sub.MSVCP140.dll__Query_perf_frequency
mov rbx, rax
call sub.MSVCP140.dll__Query_perf_counter
cmp rbx, 0x989680
jne 0x1800101f9
imul rax, rax, 0x64
jmp 0x180010217
cqo
idiv rbx
mov rcx, rax
imul rax, rdx, 0x3b9aca00
imul rcx, rcx, 0x3b9aca00
cqo
idiv rbx
add rax, rcx
movabs rcx, 0x7ffffffffb3b4bff
lea rdi, [rax + 0x4c4b400]
cmp rax, rcx
jl 0x180010237
movabs rdi, 0x7fffffffffffffff
movsd xmm6, qword [0x18005f648]
movabs r15, 0x311cdad160000
movabs r13, 0x112e0be826d694b3
call sub.MSVCP140.dll__Query_perf_frequency
mov rbx, rax
call sub.MSVCP140.dll__Query_perf_counter
cmp rbx, 0x989680
jne 0x18001026f
imul rax, rax, 0x64
jmp 0x18001028d
cqo
idiv rbx
mov rcx, rax
imul rax, rdx, 0x3b9aca00
imul rcx, rcx, 0x3b9aca00
cqo
idiv rbx
add rax, rcx
cmp rax, rdi
jge 0x18000fdb9
mov rbx, rdi
sub rbx, rax
call sub.MSVCP140.dll__Xtime_get_ticks
imul rcx, rax, 0x64
xorps xmm0, xmm0
cvtsi2sd xmm0, rbx
comisd xmm0, xmm6
lea r8, [rcx + r15]
ja 0x1800102bb
lea r8, [rbx + rcx]
lea rax, [rcx + rbx]
lea rdx, [rcx + r15]
cmovbe rdx, rax
lea rcx, [rbp - 0x29]
mov rax, r13
imul rdx
sar rdx, 0x1a
mov rax, rdx
shr rax, 0x3f
add rdx, rax
imul eax, edx, 0x3b9aca00
mov qword [rbp - 0x29], rdx
sub r8d, eax
mov dword [rbp - 0x21], r8d
call sub.MSVCP140.dll__Thrd_sleep
jmp 0x180010253
xor al, al
movaps xmm6, xmmword [rsp + 0x90]
add rsp, 0xa0
pop r15
pop r14
pop r13
pop rdi
pop rsi
pop rbx
pop rbp
ret