Function at 0x180014760
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, 0x100
mov r14, qword [0x180089a48]
mov rdi, r8
movaps xmmword [rax - 0x48], xmm6
mov r13, rdx
movaps xmmword [rax - 0x58], xmm7
mov rsi, rcx
movaps xmmword [rax - 0x68], xmm8
movaps xmmword [rax - 0x78], xmm9
movaps xmmword [rax - 0x88], xmm10
movaps xmmword [rax - 0x98], xmm11
movaps xmmword [rax - 0xa8], xmm12
mov rax, qword [r14 + 0x1af0]
mov qword [rsp + 0x50], r14
mov byte [rax + 0x80], 1
mov rbx, qword [r14 + 0x1af0]
cmp byte [rbx + 0x83], 0
jne 0x180015322
movsxd rax, dword [rbx + 0xc0]
xor edx, edx
mov r8, qword [rbx + 0xc8]
mov r8d, dword [r8 + rax*4 - 4]
call fcn.180023cd0
mov r15d, eax
mov dword [rbp + 0x7f], eax
cmp dword [r14 + 0x1b38], eax
jne 0x180014811
mov dword [r14 + 0x1b3c], eax
cmp dword [r14 + 0x1b78], r15d
jne 0x180014822
mov byte [r14 + 0x1b7c], 1
mov rcx, rsi
cmp rsi, 0xffffffffffffffff
jae 0x18001484d
nop dword [rax + rax]
movzx edx, byte [rcx]
test dl, dl
je 0x18001484d
lea rax, [rcx + 1]
cmp dl, 0x23
jne 0x180014844
cmp byte [rax], dl
je 0x18001484d
mov rcx, rax
cmp rax, 0xffffffffffffffff
jb 0x180014830
movss xmm1, dword [r14 + 0x19a8]
xorps xmm11, xmm11
cmp rsi, rcx
jne 0x180014865
xorps xmm12, xmm12
jmp 0x1800148b2
movss xmm0, dword [0x180065bdc]
lea rdx, [rsp + 0x40]
mov qword [rsp + 0x30], rcx
movaps xmm2, xmm1
mov rcx, qword [r14 + 0x19a0]
mov qword [rsp + 0x28], rsi
movss dword [rsp + 0x20], xmm0
call fcn.1800423e0
movss xmm0, dword [rsp + 0x40]
addss xmm0, dword [0x1800659e8]
movss xmm1, dword [rsp + 0x44]
cvttss2si eax, xmm0
movd xmm12, eax
cvtdq2ps xmm12, xmm12
movss xmm6, dword [r14 + 0x1594]
movaps xmm3, xmm6
addss xmm3, xmm6
addss xmm3, xmm1
call fcn.18002e5a0
mov rdx, qword [rdi]
lea rcx, [rsp + 0x40]
movaps xmm2, xmm0
call fcn.18002e610
movss xmm2, dword [rbx + 0xd0]
lea rcx, [rsp + 0x48]
movss xmm7, dword [rbx + 0xd4]
movaps xmm9, xmm2
addss xmm9, dword [rsp + 0x40]
movss dword [rsp + 0x58], xmm2
movaps xmm10, xmm7
addss xmm10, dword [rsp + 0x44]
movaps xmm8, xmm12
movss dword [rbp - 0x6d], xmm7
addss xmm8, dword [r14 + 0x15a8]
movaps xmm0, xmm9
movss dword [rbp - 0x69], xmm9
subss xmm0, xmm2
movss dword [rbp - 0x7d], xmm7
movaps xmm1, xmm6
movss dword [rbp - 0x65], xmm10
movss dword [rbp - 0x79], xmm9
addss xmm8, xmm2
movss dword [rbp - 0x75], xmm10
movaps xmm2, xmm10
subss xmm2, xmm7
movss dword [rsp + 0x48], xmm0
movss dword [rbp - 0x71], xmm8
movss dword [rsp + 0x4c], xmm2
call fcn.180026700
xor r8d, r8d
lea rcx, [rsp + 0x58]
mov edx, r15d
call fcn.180026820
test al, al
je 0x180015322
xor esi, esi
mov qword [rsp + 0x150], r12
cmp dword [r14 + 0x1b38], r15d
mov edx, esi
mov rcx, rbx
sete dl
call fcn.180026b90
mov edx, r15d
lea rcx, [rbp - 0x71]
movzx edi, al
call fcn.180026a50
test al, al
je 0x1800149f5
mov rcx, qword [0x180089a48]
mov dword [rcx + 0x1b24], r15d
mov byte [rcx + 0x1b28], sil
test r15d, r15d
je 0x1800149dd
cmp dword [rcx + 0x1b2c], r15d
je 0x1800149dd
mov qword [rcx + 0x1b30], rsi
mov dword [r14 + 0x1f78], 1
cmp byte [r14 + 0x420], sil
je 0x1800149f5
mov al, 1
jmp 0x1800149f7
xor al, al
test dil, dil
jne 0x180014a19
test al, al
jne 0x180014a19
cmp byte [r14 + 0x420], sil
je 0x180014a5d
cmp dword [r14 + 0x1b38], r15d
jne 0x180014a5d
call fcn.180026650
jmp 0x180014a5d
cmp dword [r14 + 0x1b38], r15d
je 0x180014a4a
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], esi
mov rdx, rbx
mov ecx, r15d
call fcn.180026580
mov rcx, rbx
call fcn.18002e1f0
mov ebx, dword [r13]
xor r12b, r12b
cmp dword [r14 + 0x1b38], r15d
jne 0x180014cc9
mov r13d, 5
mov edi, esi
lea rsi, [r14 + 0x138]
lea r15d, [r13 + 1]
cmp byte [rsi], 0
jne 0x180014ab4
mov ecx, r13d
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x180014ab4
mov ecx, r15d
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x180014ab4
mov rdx, qword [0x180089a48]
xor r10d, r10d
jmp 0x180014b54
mov ecx, edi
test edi, edi
je 0x180014ad0
sub ecx, 1
je 0x180014ac9
cmp ecx, 1
jne 0x180014ad5
lea ebx, [rcx + 3]
jmp 0x180014ad5
mov ebx, 2
jmp 0x180014ad5
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]
mov rdx, qword [0x180089a48]
mov r12b, 1
test ax, ax
cmovne ebx, r13d
mov ecx, dword [rdx + 0x1b38]
test ecx, ecx
setne al
xor r10d, r10d
mov byte [rdx + 0x1b44], al
test ecx, ecx
je 0x180014b26
mov dword [rdx + 0x1b40], r10d
mov word [rdx + 0x1b46], r10w
mov dword [rdx + 0x1b38], r10d
mov byte [rdx + 0x1b45], 0
mov qword [rdx + 0x1b68], r10
mov byte [rdx + 0x1b48], 0
mov qword [rdx + 0x1b4c], 0
mov qword [rdx + 0x1b58], r10
inc edi
inc rsi
cmp edi, r15d
jle 0x180014a84
mov r15d, dword [rbp + 0x7f]
mov r13, qword [rbp + 0x6f]
test r12b, r12b
jne 0x180014c55
mov r8d, 8
lea r9, [r14 + 0x155]
cmp byte [r9 - 1], 0
je 0x180014be0
mov ecx, dword [rdx + 0x1b38]
mov ebx, r8d
test ecx, ecx
mov r12b, 1
setne al
mov byte [rdx + 0x1b44], al
test ecx, ecx
je 0x180014bb2
mov dword [rdx + 0x1b40], r10d
mov word [rdx + 0x1b46], 0
mov dword [rdx + 0x1b38], r10d
mov byte [rdx + 0x1b45], 0
mov qword [rdx + 0x1b68], r10
mov byte [rdx + 0x1b48], 0
mov qword [rdx + 0x1b4c], 0
mov qword [rdx + 0x1b58], r10
cmp byte [r9], 0
je 0x180014c40
mov ecx, dword [rdx + 0x1b38]
lea ebx, [r8 + 1]
test ecx, ecx
mov r12b, 1
setne al
mov byte [rdx + 0x1b44], al
test ecx, ecx
je 0x180014c12
mov dword [rdx + 0x1b40], r10d
mov word [rdx + 0x1b46], 0
mov dword [rdx + 0x1b38], r10d
mov byte [rdx + 0x1b45], 0
mov qword [rdx + 0x1b68], r10
mov byte [rdx + 0x1b48], 0
mov qword [rdx + 0x1b4c], 0
mov qword [rdx + 0x1b58], r10
add r8d, 2
add r9, 2
cmp r8d, 0xa5
jle 0x180014b80
movsxd rax, dword [rdx + 0x74]
test eax, eax
js 0x180014cc5
movss xmm0, dword [rdx + rax*4 + 0x4a0]
ucomiss xmm0, xmm11
jne 0x180014cc5
mov dword [r13], r10d
mov ecx, dword [rdx + 0x1b38]
test ecx, ecx
setne al
mov byte [rdx + 0x1b44], al
test ecx, ecx
je 0x180014c95
mov dword [rdx + 0x1b40], r10d
mov word [rdx + 0x1b46], 0
mov dword [rdx + 0x1b38], r10d
mov byte [rdx + 0x1b45], 0
mov qword [rdx + 0x1b68], r10
mov byte [rdx + 0x1b48], 0
mov qword [rdx + 0x1b4c], 0
mov qword [rdx + 0x1b58], r10
jmp 0x180014cc9
mov dword [r13], ebx
movaps xmm0, xmmword [0x180065dc0]
lea rcx, [rbp - 0x61]
movups xmmword [rbp - 0x61], xmm0
lea rsi, str.None
call fcn.180024d80
movss xmm0, dword [r14 + 0x1598]
movaps xmm1, xmm9
movaps xmm2, xmm8
unpcklps xmm1, xmm10
unpcklps xmm2, xmm7
movq rdx, xmm1
movq rcx, xmm2
movss dword [rsp + 0x20], xmm0
mov r8d, eax
mov r9b, 1
call fcn.1800253b0
mov eax, dword [r13]
test eax, eax
je 0x18001508a
cmp dword [r14 + 0x1b38], r15d
je 0x180015097
dec eax
cmp eax, 0x9f
ja case.0x180014d58.3
lea rdx, [0x180000000]
cdqe
movzx eax, byte [rdx + rax + 0x15470]
mov ecx, dword [rdx + rax*4 + 0x15360]
add rcx, rdx
jmp rcx
lea rsi, str.control
jmp 0x1800151f1
lea rsi, str.shift
jmp 0x1800151f1
lea rsi, [0x18005fa28]
jmp 0x1800151f1
lea rsi, [0x18005fa2c]
jmp 0x1800151f1
lea rsi, str.mouse_1
jmp 0x1800151f1
lea rsi, str.mouse_2
jmp 0x1800151f1
lea rsi, str.mouse_3
jmp 0x1800151f1
lea rsi, str.mouse_4
jmp 0x1800151f1
lea rsi, str.mouse_5
jmp 0x1800151f1
lea rsi, str.page_up
jmp 0x1800151f1
lea rsi, str.page_down
jmp 0x1800151f1
lea rsi, [0x18005fa6c]
jmp 0x1800151f1
lea rsi, str.home
jmp 0x1800151f1
lea rsi, str.left_arrow
jmp 0x1800151f1
lea rsi, str.up_arrow
jmp 0x1800151f1
lea rsi, str.right_arrow
jmp 0x1800151f1
lea rsi, str.down_arrow
jmp 0x1800151f1
lea rsi, str.insert
jmp 0x1800151f1
lea rsi, str.delete
jmp 0x1800151f1
lea rsi, str.abcdefghijklmnopqrstuvwxyz
jmp 0x1800151f1
lea rsi, [0x18005fac8]
jmp 0x1800151f1
lea rsi, [0x18005facc]
jmp 0x1800151f1
lea rsi, [0x18005fad0]
jmp 0x1800151f1
lea rsi, [0x18005fad4]
jmp 0x1800151f1
lea rsi, [0x18005fad8]
jmp 0x1800151f1
lea rsi, [0x18005fadc]
jmp 0x1800151f1
lea rsi, [0x18005fae0]
jmp 0x1800151f1
lea rsi, [0x18005fae4]
jmp 0x1800151f1
lea rsi, [0x18005fae8]
jmp 0x1800151f1
lea rsi, [0x18005faec]
jmp 0x1800151f1
lea rsi, [0x18005faf0]
jmp 0x1800151f1
lea rsi, [0x18005faf4]
jmp 0x1800151f1
lea rsi, [0x18005faf8]
jmp 0x1800151f1
lea rsi, [0x18005fafc]
jmp 0x1800151f1
lea rsi, [0x18005fb00]
jmp 0x1800151f1
lea rsi, [0x18005fb04]
jmp 0x1800151f1
lea rsi, [0x18005fb08]
jmp 0x1800151f1
lea rsi, [0x18005fb0c]
jmp 0x1800151f1
lea rsi, [0x18005fb10]
jmp 0x1800151f1
lea rsi, [0x18005fb14]
jmp 0x1800151f1
lea rsi, [0x18005fb18]
jmp 0x1800151f1
lea rsi, [0x18005fb1c]
jmp 0x1800151f1
lea rsi, [0x18005fb20]
jmp 0x1800151f1
lea rsi, [0x18005fb24]
jmp 0x1800151f1
lea rsi, [0x18005fb28]
jmp 0x1800151f1
lea rsi, str.numpad_0
jmp 0x1800151f1
lea rsi, str.numpad_1
jmp 0x1800151f1
lea rsi, str.numpad_2
jmp 0x1800151f1
lea rsi, str.numpad_3
jmp 0x1800151f1
lea rsi, str.numpad_4
jmp 0x1800151f1
lea rsi, str.numpad_5
jmp 0x1800151f1
lea rsi, str.numpad_6
jmp 0x1800151f1
lea rsi, str.numpad_7
jmp 0x1800151f1
lea rsi, str.numpad_8
jmp 0x1800151f1
lea rsi, str.numpad_9
jmp 0x1800151f1
lea rsi, [0x18005fbcc]
jmp 0x1800151f1
lea rsi, [0x18005fbd0]
jmp 0x1800151f1
lea rsi, [0x18005fbd4]
jmp 0x1800151f1
lea rsi, [0x18005fbd8]
jmp 0x1800151f1
lea rsi, [0x18005fbdc]
jmp 0x1800151f1
lea rsi, [0x18005fbe0]
jmp 0x1800151f1
lea rsi, [0x18005fbe4]
jmp 0x1800151f1
lea rsi, [0x18005fbe8]
jmp 0x1800151f1
lea rsi, [0x18005fbec]
jmp 0x1800151f1
lea rsi, [0x18005fbf0]
jmp 0x1800151f1
lea rsi, [0x18005fbf4]
jmp 0x1800151f1
lea rsi, [0x18005fbf8]
jmp 0x1800151f1
lea rsi, str.unknown
jmp 0x1800151f1
cmp dword [r14 + 0x1b38], r15d
jne 0x1800151f1
lea rcx, [rbp + 0x7f]
lea rsi, str.Press
call fcn.180001340
mov rdi, qword [rbp + 0x7f]
movabs rax, 0x7ffffffffb3b4bff
cmp rdi, rax
jge 0x1800150c3
add rdi, 0x4c4b400
jmp 0x1800150cd
movabs rdi, 0x7fffffffffffffff
movsd xmm6, qword [0x180065b30]
movabs r13, 0xb2f4fc0794908cf3
movabs r15, 0x311cdad160000
movabs r14, 0x112e0be826d694b3
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rbx, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
mov rcx, rax
cmp rbx, 0x989680
jne 0x180015114
imul rax, rcx, 0x64
jmp 0x180015185
cmp rbx, 0x16e3600
jne 0x180015167
mov rax, r13
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, r13
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 0x180015182
cqo
idiv rbx
mov rcx, rax
imul rax, rdx, 0x3b9aca00
cqo
idiv rbx
imul rcx, rcx, 0x3b9aca00
add rax, rcx
cmp rax, rdi
jge 0x1800151ec
mov rbx, rdi
sub rbx, rax
call qword [sym.imp.MSVCP140.dll__Xtime_get_ticks]
imul rcx, rax, 0x64
xorps xmm0, xmm0
cvtsi2sd xmm0, rbx
comisd xmm0, xmm6
lea rdx, [rcx + r15]
lea rax, [rbx + rcx]
mov rcx, rdx
ja 0x1800151b6
mov rcx, rax
cmovbe rdx, rax
mov rax, r14
imul rdx
sar rdx, 0x1a
mov rax, rdx
shr rax, 0x3f
add rdx, rax
imul eax, edx, 0x3b9aca00
mov qword [rbp - 0x61], rdx
sub ecx, eax
mov dword [rbp - 0x59], ecx
lea rcx, [rbp - 0x61]
call qword [sym.imp.MSVCP140.dll__Thrd_sleep]
jmp 0x1800150f3
mov r14, qword [rsp + 0x50]
movss dword [rbp - 0x71], xmm8
movaps xmm0, xmm8
movss dword [rbp - 0x6d], xmm7
movaps xmm1, xmm7
mov rdi, rsi
addss xmm0, dword [rsp + 0x40]
addss xmm1, dword [rsp + 0x44]
movss dword [rbp - 0x69], xmm0
movss xmm0, dword [r14 + 0x1590]
movss dword [rbp - 0x65], xmm1
subss xmm9, xmm0
movss xmm1, dword [r14 + 0x1594]
addss xmm8, xmm0
subss xmm10, xmm1
movaps xmm0, xmm7
addss xmm0, xmm1
movss dword [rsp + 0x48], xmm9
movss dword [rbp + 0x7f], xmm8
movss dword [rsp + 0x4c], xmm10
movss dword [rbp + 0x83], xmm0
cmp rsi, 0xffffffffffffffff
jae 0x180015283
movzx ecx, byte [rdi]
test cl, cl
je 0x180015283
lea rax, [rdi + 1]
cmp cl, 0x23
jne 0x18001527a
cmp byte [rax], cl
je 0x180015283
mov rdi, rax
cmp rax, 0xffffffffffffffff
jb 0x180015266
cmp edi, esi
je 0x1800152e8
mov rbx, qword [0x180089a48]
lea rdx, [rbp - 0x71]
mov qword [rsp + 0x38], rdx
lea rax, [r14 + 0x15dc]
mov qword [rsp + 0x30], rax
lea r8, [rsp + 0x48]
mov qword [rsp + 0x28], 0
lea rdx, [rbp + 0x7f]
mov rcx, qword [rbx + 0x1af0]
mov r9, rsi
mov qword [rsp + 0x20], rdi
mov rcx, qword [rcx + 0x2b0]
call fcn.180024ff0
cmp byte [rbx + 0x3008], 0
je 0x1800152e8
mov r8, rdi
lea rcx, [rbp + 0x7f]
mov rdx, rsi
call fcn.1800341f0
comiss xmm12, xmm11
jbe 0x180015314
addss xmm7, dword [r14 + 0x1594]
movss xmm0, dword [rsp + 0x58]
mov r9b, 1
mov rdx, qword [rbp + 0x67]
xor r8d, r8d
unpcklps xmm0, xmm7
movq rcx, xmm0
call fcn.180024e60
movzx eax, r12b
mov r12, qword [rsp + 0x150]
jmp 0x180015324
xor al, al
lea r11, [rsp + 0x100]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
movaps xmm11, xmmword [r11 - 0x60]
movaps xmm12, xmmword [r11 - 0x70]
mov rsp, r11
pop r15
pop r14
pop r13
pop rdi
pop rsi
pop rbx
pop rbp
ret