Function at 0x140002ab0
Capabilities:
Log keystrokes via polling

Disassembly:
mov r11, rsp
push rbp
push rbx
lea rbp, [r11 - 0x7f8]
sub rsp, 0x8e8
mov rax, qword [0x140010040]
xor rax, rsp
mov qword [rbp + 0x720], rax
mov rbx, qword [0x140010f48]
test rbx, rbx
je 0x1400037fa
cmp byte [rbx + 0x4d], 0
je 0x1400037fa
cmp qword [rbx + 8], 0
movaps xmmword [r11 - 0xc8], xmm15
movss xmm15, dword [0x14000bc18]
mov qword [rbp + 0x3f0], 0
mov dword [rbp + 0x3f8], 0
je 0x1400037f1
cmp qword [rbx + 0x10], 0
mov qword [r11 + 8], rsi
mov qword [r11 + 0x10], rdi
mov qword [r11 - 0x28], r15
jne 0x140002b7c
mov rsi, qword [rbx]
mov rdi, qword [rsi + 8]
cmp byte [rdi + 0x19], 0
jne 0x140002b65
nop
mov r8, qword [rdi + 0x10]
mov rdx, rbx
mov rcx, rbx
call fcn.140003820
mov rcx, rdi
mov edx, 0x30
mov rdi, qword [rdi]
call fcn.140008bec
cmp byte [rdi + 0x19], 0
je 0x140002b40
xor r15d, r15d
mov qword [rsi + 8], rsi
mov qword [rsi], rsi
mov qword [rsi + 0x10], rsi
mov qword [rbx + 8], r15
jmp 0x1400037d9
cmp byte [0x140010f3b], 0
mov qword [rsp + 0x910], r12
movabs r12, 0x300000001f048
je 0x140002cc6
cmp byte [0x140010f44], 0
jne 0x140002baf
cmp qword [rbx + 0x20], 0
je 0x1400037d1
movzx eax, byte [rbx + 0x4c]
test al, 0xfa
jne 0x140002cc6
cmp al, 5
je 0x140002cc6
mov rcx, qword [0x140010f50]
lea r8, [rbp + 0x428]
xor eax, eax
mov qword [rbp + 0x448], 0x28
mov qword [rbp - 0x18], rax
xorps xmm0, xmm0
mov edx, 8
mov rax, qword [rcx + 0x18]
mov qword [rbp + 0x428], rax
mov rax, qword [rbx + 0x18]
mov qword [rbp + 0x430], rax
mov rax, qword [rcx + 0x10]
mov rcx, qword [rcx]
mov qword [rbp + 0x438], rax
lea rax, [rbp - 0x38]
mov qword [rbp + 0x440], rax
movups xmmword [rbp - 0x38], xmm0
movups xmmword [rbp - 0x28], xmm0
call fcn.140008ab3
test eax, eax
jne 0x140002cbf
mov rdx, qword [rbp - 0x38]
test rdx, rdx
je 0x140002cbf
mov rcx, qword [0x140010f50]
lea r8, [rbp + 0x450]
mov byte [rbp + 0x3e1], 0xff
mov qword [rbp + 0x470], 1
mov rax, qword [rcx + 0x18]
mov qword [rbp + 0x450], rax
lea rax, [rdx + 0x120]
mov qword [rbp + 0x458], rax
mov edx, 8
mov rax, qword [rcx + 0x10]
mov rcx, qword [rcx]
mov qword [rbp + 0x460], rax
lea rax, [rbp + 0x3e1]
mov qword [rbp + 0x468], rax
call fcn.140008ab3
test eax, eax
jne 0x140002cbf
movzx eax, byte [rbp + 0x3e1]
cmp al, 0x31
ja 0x140002cbf
bt r12, rax
jae 0x140002cbf
mov rcx, qword [rbp - 0x38]
lea rdx, [rbp + 0x3f0]
call fcn.140002340
mov rbx, qword [0x140010f48]
mov rcx, qword [rbx + 0x40]
xor edx, edx
mov r8d, 0x1000
call sub.VCRUNTIME140.dll_memset
mov rax, qword [rbx]
mov rbx, qword [rax]
cmp rbx, rax
je 0x1400037d1
mov qword [rsp + 0x8e0], r13
xor r15d, r15d
movaps xmmword [rsp + 0x8b0], xmm7
movss xmm7, dword [rbp + 0x3e4]
movaps xmmword [rsp + 0x890], xmm9
movss xmm9, dword [rbp + 0x3e4]
lea r13d, [r15 + 0x1d]
movaps xmmword [rsp + 0x880], xmm10
movss xmm10, dword [rbp + 0x3e4]
movaps xmmword [rsp + 0x870], xmm11
movss xmm11, dword [rbp + 0x3e4]
movaps xmmword [rsp + 0x860], xmm12
movss xmm12, dword [0x14000bc04]
movaps xmmword [rsp + 0x850], xmm13
movss xmm13, dword [rbp + 0x3e4]
movaps xmmword [rsp + 0x840], xmm14
movss xmm14, dword [rbp + 0x3e4]
mov qword [rsp + 0x8d8], r14
movaps xmmword [rsp + 0x8c0], xmm6
movaps xmmword [rsp + 0x8a0], xmm8
nop word [rax + rax]
mov rdi, qword [0x140010f50]
lea rcx, [rbp - 0x10]
xor edx, edx
mov r8d, 0x3e8
call sub.VCRUNTIME140.dll_memset
mov rax, qword [rdi + 0x18]
lea r8, [rbp + 0x478]
mov rdx, qword [rdi + 0x10]
mov qword [rbp + 0x478], rax
mov rax, qword [rbx + 0x28]
mov qword [rbp + 0x480], rax
lea rax, [rbp - 0x10]
mov qword [rbp + 0x488], rdx
mov edx, 8
mov qword [rbp + 0x490], rax
mov qword [rbp + 0x498], 0x3e8
mov rcx, qword [rdi]
call fcn.140008ab3
test eax, eax
je 0x140002e08
xor edx, edx
lea rcx, [rbp - 0x10]
mov r8d, 0x3e8
call sub.VCRUNTIME140.dll_memset
cmp qword [rbp], r15
je 0x140003708
mov rcx, qword [0x140010f50]
lea r8, [rbp + 0x4a0]
mov rax, qword [0x140010f48]
mov edx, 8
mov rsi, qword [rbx + 0x28]
mov dword [rbp + 0x3e8], r15d
mov qword [rbp + 0x4c0], 4
mov rdi, qword [rax + 0x10]
mov rax, qword [rcx + 0x18]
mov qword [rbp + 0x4a0], rax
lea rax, [rsi + 0x3e4]
mov qword [rbp + 0x4a8], rax
mov rax, qword [rcx + 0x10]
mov rcx, qword [rcx]
mov qword [rbp + 0x4b0], rax
lea rax, [rbp + 0x3e8]
mov qword [rbp + 0x4b8], rax
call fcn.140008ab3
mov rcx, qword [0x140010f50]
lea r8, [rbp + 0x4c8]
test eax, eax
mov dword [rbp + 0x3ec], r15d
mov r14d, r15d
mov qword [rbp + 0x4e8], 4
cmove r14d, dword [rbp + 0x3e8]
mov edx, 8
mov rax, qword [rcx + 0x18]
mov qword [rbp + 0x4c8], rax
lea rax, [rdi + 0x3e4]
mov qword [rbp + 0x4d0], rax
mov rax, qword [rcx + 0x10]
mov rcx, qword [rcx]
mov qword [rbp + 0x4d8], rax
lea rax, [rbp + 0x3ec]
mov qword [rbp + 0x4e0], rax
call fcn.140008ab3
test eax, eax
mov ecx, r15d
cmove ecx, dword [rbp + 0x3ec]
cmp rsi, rdi
je 0x140003708
cmp ecx, r14d
jne 0x140002f0f
test r14d, r14d
jne 0x140003708
mov ecx, dword [rbp + 0x54]
test ecx, ecx
je 0x140003708
mov eax, dword [rbp + 0x50]
xor eax, ecx
je 0x140003708
cmp eax, 0xbf800000
je 0x140003708
mov rcx, qword [0x140010f50]
lea r8, [rbp + 0x4f0]
xor eax, eax
mov qword [rbp + 0x510], 0xc0
mov qword [rbp + 0x5f0], rax
xorps xmm0, xmm0
mov dword [rbp + 0x5f8], eax
xorps xmm1, xmm1
mov dword [rbp + 0x61c], eax
mov edx, 8
mov qword [rbp + 0x688], rax
movups xmmword [rbp + 0x5e0], xmm0
movups xmmword [rbp + 0x5fc], xmm0
movups xmmword [rbp + 0x60c], xmm0
movups xmmword [rbp + 0x668], xmm1
movups xmmword [rbp + 0x678], xmm1
movups xmmword [rbp + 0x690], xmm0
mov rax, qword [rcx + 0x18]
mov qword [rbp + 0x4f0], rax
mov rax, qword [rbp]
mov qword [rbp + 0x4f8], rax
mov rax, qword [rcx + 0x10]
mov rcx, qword [rcx]
mov qword [rbp + 0x500], rax
lea rax, [rbp + 0x5e0]
mov qword [rbp + 0x508], rax
call fcn.140008ab3
test eax, eax
jne 0x140003708
mov rdx, qword [rbp + 0x698]
add rdx, 0x60
call fcn.1400015c0
test rax, rax
je 0x140003708
mov rdx, rax
call fcn.1400015c0
test rax, rax
je 0x140003708
lea rdx, [rax + 0x78]
call fcn.1400015c0
test rax, rax
je 0x140003708
lea rdx, [rax + 0xc38]
call fcn.1400015c0
test rax, rax
je 0x140003708
mov rcx, qword [0x140010f50]
lea r8, [rbp + 0x518]
mov qword [rbp + 0x520], rax
mov qword [rbp + 0x538], 0x1000
mov rax, qword [rcx + 0x10]
mov rdx, qword [rcx + 0x18]
mov rcx, qword [rcx]
mov qword [rbp + 0x518], rdx
mov qword [rbp + 0x528], rax
mov rax, qword [0x140010f48]
mov rdx, qword [rax + 0x40]
mov qword [rbp + 0x530], rdx
mov edx, 8
call fcn.140008ab3
test eax, eax
jne 0x140003708
cmp byte [0x140010f44], r15b
jne 0x1400030a1
mov rax, qword [0x140010f48]
cmp qword [rax + 0x20], r15
je 0x140003708
mov rcx, qword [0x140010f50]
lea r8, [rbp + 0x540]
xor eax, eax
mov qword [rbp + 0x560], 0x28
mov qword [rbp - 0x40], rax
xorps xmm0, xmm0
movups xmmword [rbp - 0x60], xmm0
movups xmmword [rbp - 0x50], xmm0
mov rax, qword [rcx + 0x18]
mov qword [rbp + 0x540], rax
mov rax, qword [0x140010f48]
mov rdx, qword [rax + 0x18]
mov rax, qword [rcx + 0x10]
mov rcx, qword [rcx]
mov qword [rbp + 0x550], rax
lea rax, [rbp - 0x60]
mov qword [rbp + 0x548], rdx
mov edx, 8
mov qword [rbp + 0x558], rax
call fcn.140008ab3
test eax, eax
jne 0x140003708
cmp qword [rbp - 0x60], r15
je 0x140003708
mov rdx, qword [0x140010f48]
movzx eax, byte [rdx + 0x4c]
sub al, 2
cmp al, 1
ja 0x1400032a7
mov rcx, qword [0x140010f50]
lea r8, [rbp + 0x568]
mov dword [rbp + 0x3e4], r15d
mov qword [rbp + 0x588], 4
mov rax, qword [rcx + 0x18]
mov qword [rbp + 0x568], rax
mov rax, qword [rdx + 0x20]
mov edx, 8
add rax, 0x170
mov qword [rbp + 0x570], rax
mov rax, qword [rcx + 0x10]
mov rcx, qword [rcx]
mov qword [rbp + 0x578], rax
lea rax, [rbp + 0x3e4]
mov qword [rbp + 0x580], rax
call fcn.140008ab3
test eax, eax
mov ecx, r15d
cmove ecx, dword [rbp + 0x3e4]
cmp dword [rbx + 0x20], ecx
jne 0x1400032a7
mov ecx, 0x14
call qword [sym.imp.USER32.dll_GetKeyState]
test al, 1
je 0x140003297
mov rcx, qword [0x140010f50]
lea r8, [rbp + 0x400]
mov byte [rbp + 0x3e0], 1
mov qword [rbp + 0x420], 1
mov rax, qword [rcx + 0x10]
mov qword [rbp + 0x400], rax
lea rax, [rbp + 0x3e0]
mov qword [rbp + 0x408], rax
mov rax, qword [rcx + 0x18]
mov rcx, qword [rcx]
mov qword [rbp + 0x410], rax
mov rax, qword [0x140010f48]
mov rdx, qword [rax + 0x18]
add rdx, 0x19
mov qword [rbp + 0x418], rdx
mov edx, 8
call fcn.140008ab3
mov ecx, 0x19
call qword [sym.imp.KERNEL32.dll_Sleep]
mov rcx, qword [0x140010f50]
lea r8, [rbp + 0x400]
mov byte [rbp + 0x3e0], r15b
mov qword [rbp + 0x420], 1
mov rax, qword [rcx + 0x10]
mov qword [rbp + 0x400], rax
lea rax, [rbp + 0x3e0]
mov qword [rbp + 0x408], rax
mov rax, qword [rcx + 0x18]
mov rcx, qword [rcx]
mov qword [rbp + 0x410], rax
mov rax, qword [0x140010f48]
mov rdx, qword [rax + 0x18]
add rdx, 0x19
mov qword [rbp + 0x418], rdx
mov edx, 8
call fcn.140008ab3
jmp 0x1400032a7
mov edx, 0xa
mov ecx, 0xfa
call qword [sym.imp.KERNEL32.dll_Beep]
cmp byte [0x140010f3b], r15b
je 0x140003708
rdtsc
shl rdx, 0x20
or rax, rdx
mov rcx, rax
call qword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_srand]
cmp byte [0x140010f44], r15b
je 0x1400032dc
mov rcx, qword [rbp]
call fcn.140001c70
mov ecx, eax
jmp 0x1400032ec
cmp byte [0x140010f3a], r15b
mov ecx, 1
cmovne ecx, r13d
mov rax, qword [0x140010f48]
mov rdx, qword [rax + 0x40]
test rdx, rdx
je 0x1400033b4
movsx rax, cx
imul rcx, rax, 0x1c
movss xmm2, dword [rcx + rdx + 0x10]
movss xmm11, dword [rcx + rdx + 0x14]
movaps xmm0, xmm2
mulss xmm0, dword [rbp + 0x640]
movaps xmm13, xmm11
mulss xmm13, dword [rbp + 0x644]
movaps xmm14, xmm2
movss xmm3, dword [rcx + rdx + 0x18]
mulss xmm14, dword [rbp + 0x620]
movaps xmm1, xmm3
mulss xmm1, dword [rbp + 0x648]
addss xmm13, xmm0
mulss xmm2, dword [rbp + 0x630]
movaps xmm0, xmm11
mulss xmm11, dword [rbp + 0x634]
mulss xmm0, dword [rbp + 0x624]
addss xmm13, xmm1
movaps xmm1, xmm3
mulss xmm3, dword [rbp + 0x638]
mulss xmm1, dword [rbp + 0x628]
addss xmm11, xmm2
addss xmm13, dword [rbp + 0x64c]
addss xmm14, xmm0
addss xmm11, xmm3
addss xmm14, xmm1
addss xmm11, dword [rbp + 0x63c]
addss xmm14, dword [rbp + 0x62c]
cvttss2si eax, dword [0x140010f3c]
mov rcx, qword [0x140010f50]
lea r8, [rbp + 0x590]
mov edx, 8
mov qword [rsp + 0x50], r15
mov edi, r15d
mov qword [rsp + 0x64], r15
mov qword [rsp + 0x6c], r15
mov qword [rsp + 0x78], r15
mov qword [rbp - 0x80], r15
mov qword [rbp - 0x74], r15
xorps xmm0, xmm0
movss dword [rsp + 0x30], xmm14
mov dword [rsp + 0x58], eax
cvttss2si eax, dword [0x140010f40]
mov qword [rbp - 0x6c], r15
mov dword [rsp + 0x60], 0x3f800000
mov dword [rsp + 0x74], 0x3f800000
mov dword [rbp - 0x78], 0x3f800000
mov dword [rbp - 0x64], 0x3f800000
mov qword [rbp + 0x5b0], 0x80
movss dword [rsp + 0x34], xmm11
mov dword [rsp + 0x5c], eax
mov rax, qword [rcx + 0x18]
mov qword [rbp + 0x590], rax
movabs rax, 0x142407818
mov qword [rbp + 0x598], rax
mov rax, qword [rcx + 0x10]
mov rcx, qword [rcx]
mov qword [rbp + 0x5a0], rax
lea rax, [rbp + 0x6a0]
mov qword [rbp + 0x5a8], rax
movss dword [rsp + 0x38], xmm13
movups xmmword [rbp + 0x6a0], xmm0
movups xmmword [rbp + 0x6b0], xmm0
movups xmmword [rbp + 0x6c0], xmm0
movups xmmword [rbp + 0x6d0], xmm0
movups xmmword [rbp + 0x6e0], xmm0
movups xmmword [rbp + 0x6f0], xmm0
movups xmmword [rbp + 0x700], xmm0
movups xmmword [rbp + 0x710], xmm0
call fcn.140008ab3
test eax, eax
jne 0x140003708
lea rax, [rsp + 0x60]
mov qword [rsp + 0x28], rax
lea r9, [rbp + 0x6e0]
lea rax, [rbp + 0x6a0]
lea r8, [rsp + 0x50]
mov qword [rsp + 0x20], rax
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x40]
call fcn.1400018c0
ucomiss xmm0, dword [0x14000bc00]
jp 0x1400034fc
je 0x140003515
movss xmm9, dword [rsp + 0x40]
mov edi, 1
movss xmm7, dword [rsp + 0x44]
movss xmm10, dword [rsp + 0x48]
movaps xmm3, xmm9
movaps xmm2, xmm7
test edi, edi
je 0x140003708
movss xmm0, dword [0x14000bc08]
comiss xmm0, xmm10
jbe 0x140003708
cmp byte [0x140010f44], r15b
movss xmm6, dword [0x140010f3c]
movss xmm8, dword [0x140010f40]
jne 0x1400035e8
cmp byte [0x140010f38], r15b
je 0x140003568
movss xmm9, dword [0x14000bc14]
jmp 0x140003571
movss xmm9, dword [0x14000bc10]
movaps xmm7, xmm6
movaps xmm5, xmm8
mulss xmm7, xmm12
mulss xmm5, xmm12
comiss xmm7, xmm3
jb 0x1400035aa
movaps xmm1, xmm9
mulss xmm1, xmm12
movaps xmm0, xmm1
addss xmm0, xmm3
comiss xmm0, xmm7
jb 0x1400035aa
comiss xmm5, xmm2
jb 0x1400035aa
addss xmm1, xmm2
comiss xmm1, xmm5
jae 0x1400035e1
movaps xmm0, xmm2
movaps xmm1, xmm3
subss xmm0, xmm5
subss xmm1, xmm7
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm1, xmm0
xorps xmm0, xmm0
movss xmm0, xmm1
sqrtss xmm0, xmm0
comiss xmm9, xmm0
jae 0x1400035e1
movaps xmm7, xmm2
movaps xmm9, xmm3
jmp 0x140003708
movaps xmm7, xmm2
movaps xmm9, xmm3
mulss xmm6, xmm12
mulss xmm8, xmm12
comiss xmm9, xmm6
jbe 0x140003602
movaps xmm1, xmm9
subss xmm1, xmm6
jmp 0x14000360a
movaps xmm1, xmm6
subss xmm1, xmm9
comiss xmm7, xmm8
jbe 0x14000361a
movaps xmm0, xmm7
subss xmm0, xmm8
jmp 0x140003622
movaps xmm0, xmm8
subss xmm0, xmm7
xorps xmm2, xmm2
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm0, xmm1
movss xmm2, xmm0
sqrtss xmm2, xmm2
comiss xmm15, xmm2
jb 0x14000365e
movss dword [rbp + 0x3f0], xmm14
movaps xmm15, xmm2
movss dword [rbp + 0x3f4], xmm11
movss dword [rbp + 0x3f8], xmm13
mov rdx, qword [rbp - 0x60]
test rdx, rdx
je 0x140003708
mov rcx, qword [0x140010f50]
lea r8, [rbp + 0x5b8]
mov byte [rbp + 0x3e2], 0xff
mov qword [rbp + 0x5d8], 1
mov rax, qword [rcx + 0x18]
mov qword [rbp + 0x5b8], rax
lea rax, [rdx + 0x120]
mov qword [rbp + 0x5c0], rax
mov edx, 8
mov rax, qword [rcx + 0x10]
mov rcx, qword [rcx]
mov qword [rbp + 0x5c8], rax
lea rax, [rbp + 0x3e2]
mov qword [rbp + 0x5d0], rax
call fcn.140008ab3
test eax, eax
jne 0x140003708
movzx eax, byte [rbp + 0x3e2]
cmp al, 0x31
ja 0x1400036ef
bt r12, rax
jae 0x1400036ef
mov rcx, qword [rbp - 0x60]
lea rdx, [rbp + 0x3f0]
call fcn.140002340
cmp byte [0x140010f39], r15b
je 0x140003708
mov edx, 0x23
mov ecx, 0x1e0
call qword [sym.imp.KERNEL32.dll_Beep]
mov rax, qword [rbx + 0x10]
cmp byte [rax + 0x19], r15b
je 0x140003738
mov rax, qword [rbx + 8]
cmp byte [rax + 0x19], r15b
jne 0x140003733
nop dword [rax]
cmp rbx, qword [rax + 0x10]
jne 0x140003733
mov rbx, rax
mov rax, qword [rax + 8]
cmp byte [rax + 0x19], r15b
je 0x140003720
mov rbx, rax
jmp 0x14000375f
mov rcx, qword [rax]
mov rbx, rax
cmp byte [rcx + 0x19], r15b
jne 0x14000375f
nop dword [rax]
nop dword [rax + rax]
mov rax, qword [rcx]
mov rbx, rcx
mov rcx, rax
cmp byte [rax + 0x19], r15b
je 0x140003750
mov rax, qword [0x140010f48]
mov rax, qword [rax]
cmp rbx, rax
jne 0x140002d90
movaps xmm14, xmmword [rsp + 0x840]
movaps xmm13, xmmword [rsp + 0x850]
movaps xmm12, xmmword [rsp + 0x860]
movaps xmm11, xmmword [rsp + 0x870]
movaps xmm10, xmmword [rsp + 0x880]
movaps xmm9, xmmword [rsp + 0x890]
movaps xmm8, xmmword [rsp + 0x8a0]
movaps xmm7, xmmword [rsp + 0x8b0]
movaps xmm6, xmmword [rsp + 0x8c0]
mov r14, qword [rsp + 0x8d8]
mov r13, qword [rsp + 0x8e0]
mov r12, qword [rsp + 0x910]
mov r15, qword [rsp + 0x8d0]
mov rdi, qword [rsp + 0x908]
mov rsi, qword [rsp + 0x900]
movaps xmm15, xmmword [rsp + 0x830]
mov rcx, qword [rbp + 0x720]
xor rcx, rsp
call fcn.140008b90
add rsp, 0x8e8
pop rbx
pop rbp
ret