Function at 0x140115a30
Capabilities:
Log keystrokes via polling

Disassembly:
push r15
push r14
push rsi
push rdi
push rbx
sub rsp, 0x70
movaps xmmword [rsp + 0x60], xmm10
movaps xmmword [rsp + 0x50], xmm9
movaps xmmword [rsp + 0x40], xmm8
movaps xmmword [rsp + 0x30], xmm7
movaps xmmword [rsp + 0x20], xmm6
mov rdi, rdx
mov r15, rcx
mov r14, rdx
shr r14, 0x20
movsd xmm6, qword [0x1406eeef0]
mulsd xmm6, qword [0x140265650]
movsd xmm8, qword [0x1402516b8]
xor ecx, ecx
call qword [sym.imp.api_ms_win_crt_time_l1_1_0.dll__time64]
mov ecx, eax
call qword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_srand]
call qword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_rand]
cdqe
imul rcx, rax, 0x66666667
mov rdx, rcx
shr rdx, 0x3f
sar rcx, 0x21
add ecx, edx
lea ecx, [rcx + rcx*4]
sub eax, ecx
movss xmm0, dword [0x1406eeee8]
cmp eax, 2
jge 0x140115ad8
xorps xmm7, xmm7
cvtss2sd xmm7, xmm0
cmp eax, 1
je 0x140115b04
test eax, eax
jne 0x140115b0e
mulsd xmm7, qword [0x140265670]
jmp 0x140115b73
jne 0x140115aee
xorps xmm7, xmm7
cvtss2sd xmm7, xmm0
mulsd xmm7, qword [0x140265668]
jmp 0x140115b73
cmp eax, 4
jge 0x140115b3e
xorps xmm7, xmm7
cvtss2sd xmm7, xmm0
mulsd xmm7, qword [0x140265660]
jmp 0x140115b73
mulsd xmm7, qword [0x140265678]
jmp 0x140115b73
mov eax, dword [0x1406f13c0]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
sete cl
cmp dword [0x1406f13c4], 0xa
setl al
or al, cl
nop dword [rax]
test al, al
je 0x140115b30
mulsd xmm7, qword [0x140265680]
jmp 0x140115b73
mov eax, dword [0x1406f13c0]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
sete cl
cmp dword [0x1406f13c4], 0xa
setl al
or al, cl
nop dword [rax]
test al, al
je 0x140115b60
xorps xmm7, xmm7
cvtss2sd xmm7, xmm0
mulsd xmm7, qword [0x140265658]
movd xmm10, edi
movd xmm9, r14d
divsd xmm8, xmm6
cmp byte [0x1406eeeca], 0
je 0x140115bfe
mov ebx, dword [0x1406eeefc]
mov ecx, ebx
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
cmp dword [0x1406f13c4], 0xa
jl 0x140115be2
mov ecx, dword [0x1406f13c0]
lea edx, [rcx - 1]
imul edx, ecx
and edx, 1
je 0x140115be2
mov rsi, qword [sym.imp.USER32.dll_GetAsyncKeyState]
nop word [rax + rax]
mov ecx, ebx
call rsi
mov ecx, ebx
call rsi
cmp dword [0x1406f13c4], 0xa
jl 0x140115be2
mov ecx, dword [0x1406f13c0]
lea edx, [rcx - 1]
imul edx, ecx
and edx, 1
jne 0x140115bc0
test ax, ax
jne 0x140115bfe
movss xmm0, dword [0x1406eeee8]
xorps xmm7, xmm7
cvtss2sd xmm7, xmm0
mulsd xmm7, qword [0x140265688]
xorps xmm0, xmm0
cvtss2sd xmm0, xmm10
mulsd xmm0, xmm8
divsd xmm0, xmm7
cvtsd2ss xmm2, xmm0
movss dword [r15], xmm2
xorps xmm0, xmm0
cvtss2sd xmm0, xmm9
mulsd xmm0, xmm8
divsd xmm0, xmm7
cvtsd2ss xmm0, xmm0
movss dword [r15 + 4], xmm0
mov eax, dword [0x1406f13c0]
movss xmm1, dword [0x140250d00]
ucomiss xmm1, xmm2
mov ecx, dword [0x1406f13c4]
jbe 0x140115c54
xorps xmm3, xmm3
ucomiss xmm2, xmm3
ja 0x140115c65
ucomiss xmm2, dword [0x140250d2c]
jbe 0x140115c97
xorps xmm3, xmm3
ucomiss xmm3, xmm2
jbe 0x140115c97
cmp ecx, 0xa
jl 0x140115c75
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
jne 0x140115c92
mov dword [r15], edi
cmp dword [0x1406f13c4], 0xa
jl 0x140115c97
mov eax, dword [0x1406f13c0]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
je 0x140115c97
mov dword [r15], edi
jmp 0x140115c75
ucomiss xmm1, xmm0
jbe 0x140115ca4
xorps xmm1, xmm1
ucomiss xmm0, xmm1
ja 0x140115cb5
ucomiss xmm0, dword [0x140250d2c]
jbe 0x140115cb9
xorps xmm1, xmm1
ucomiss xmm1, xmm0
jbe 0x140115cb9
mov dword [r15 + 4], r14d
movaps xmm6, xmmword [rsp + 0x20]
movaps xmm7, xmmword [rsp + 0x30]
movaps xmm8, xmmword [rsp + 0x40]
movaps xmm9, xmmword [rsp + 0x50]
movaps xmm10, xmmword [rsp + 0x60]
add rsp, 0x70
pop rbx
pop rdi
pop rsi
pop r14
pop r15
ret