Function at 0x140051c30
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x208]
sub rsp, 0x2e0
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x48], xmm7
movaps xmmword [rax - 0x58], xmm8
movaps xmmword [rax - 0x68], xmm9
movaps xmmword [rax - 0x78], xmm10
movaps xmmword [rax - 0x88], xmm11
movaps xmmword [rax - 0x98], xmm12
movaps xmmword [rax - 0xa8], xmm13
movaps xmmword [rax - 0xb8], xmm14
movaps xmmword [rax - 0xc8], xmm15
mov rax, qword [0x1401d8ec0]
xor rax, rsp
mov qword [rbp + 0x138], rax
movss xmm12, dword [0x14005a000]
lea r15, [0x140000000]
movsd xmm14, qword [0x140061478]
mov r12d, 1
movsd xmm15, qword [0x140061430]
xor r14d, r14d
movss xmm13, dword [0x14005bb84]
movabs r13, 0xb2f4fc0794908cf3
xorps xmm6, xmm6
movss xmm8, dword [0x140059f18]
mov ebx, 2
call fcn.14004c520
mov rcx, qword [0x1401d97e8]
mov rdi, rax
cmp byte [rcx + 2], r14b
je 0x140052066
movsxd rdx, dword [rcx + 0xc]
mov esi, 0xa0
cmp edx, 7
ja case.0x140051d27.4
mov edx, dword [r15 + rdx*4 + 0x527cc]
add rdx, r15
jmp rdx
mov esi, r12d
jmp case.0x140051d27.4
mov esi, ebx
jmp case.0x140051d27.4
mov esi, 6
jmp case.0x140051d27.4
mov esi, 5
jmp case.0x140051d27.4
mov esi, 0xa2
jmp case.0x140051d27.4
mov esi, 0x12
jmp case.0x140051d27.4
mov esi, 0x14
mov rax, qword [0x1401d9800]
lea r8, [rbp + 0xd8]
mov qword [rsp + 0x38], r14
mov r9d, 0x20
mov edx, 0x2200a0
mov qword [rbp + 0x60], r14
mov dword [rbp + 0xdc], r14d
mov rcx, qword [rax + 0x18]
lea rax, [rbp + 0x60]
add rcx, 0x18e8
mov qword [rbp + 0xe8], rax
mov qword [rbp + 0xe0], rcx
mov rcx, qword [0x1401d97d8]
mov qword [rbp + 0xf0], 8
mov eax, dword [rcx + 8]
mov rcx, qword [rcx]
mov dword [rbp + 0xd8], eax
lea rax, [rbp + 0xf8]
mov qword [rsp + 0x30], rax
lea rax, [rbp + 0xd8]
mov dword [rsp + 0x28], 0x20
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
cmp qword [rbp + 0x60], r14
je 0x14005205f
mov rax, qword [0x1401d97e8]
cmp byte [rax + 0x10], r14b
je 0x140051ea0
call sub.MSVCP140.dll__Query_perf_frequency
mov rbx, rax
call sub.MSVCP140.dll__Query_perf_counter
mov rcx, rax
cmp rbx, 0x989680
jne 0x140051e17
imul rax, rcx, 0x64
jmp 0x140051e8a
cmp rbx, 0x16e3600
jne 0x140051e6c
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
add rdx, rcx
sar rdx, 0x18
mov rax, rdx
shr rax, 0x3f
add rdx, rax
imul rax, r8, 0x3b9aca00
add rax, rdx
jmp 0x140051e8a
cqo
idiv rbx
mov rcx, rax
imul rax, rdx, 0x3b9aca00
imul rcx, rcx, 0x3b9aca00
cqo
idiv rbx
add rax, rcx
mov rcx, qword [0x1401d97e8]
mov qword [rcx + 0x18], rax
mov rax, qword [0x1401d97e8]
mov byte [rax + 0x10], r14b
call sub.MSVCP140.dll__Query_perf_frequency
mov rbx, rax
call sub.MSVCP140.dll__Query_perf_counter
mov rcx, rax
cmp rbx, 0x989680
jne 0x140051ebf
imul rcx, rcx, 0x64
jmp 0x140051f2b
cmp rbx, 0x16e3600
jne 0x140051f0a
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
add rdx, rcx
sar rdx, 0x18
mov rcx, rdx
shr rcx, 0x3f
add rcx, rdx
jmp 0x140051f21
cqo
idiv rbx
mov r8, rax
imul rax, rdx, 0x3b9aca00
cqo
idiv rbx
mov rcx, rax
imul rax, r8, 0x3b9aca00
add rcx, rax
mov rax, qword [0x1401d97e8]
mov qword [rax + 0x20], rcx
movabs rax, 0x431bde82d7b634db
mov r8, qword [0x1401d97e8]
sub rcx, qword [r8 + 0x18]
imul rcx
sar rdx, 0x12
mov rax, rdx
shr rax, 0x3f
add rdx, rax
mov dword [r8 + 0x28], edx
test rdi, rdi
je 0x14005205f
mov rcx, qword [0x1401d97e8]
cmp edx, dword [rcx + 8]
jl 0x140052066
cmp byte [rcx + 3], r14b
jne 0x140051f90
mov ecx, esi
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x14005205f
mov rcx, qword [0x1401d97d8]
lea rax, [rbp + 0xfc]
mov qword [rsp + 0x38], r14
lea r8, [rbp + 0x90]
mov qword [rsp + 0x30], rax
mov r9d, 0xc
lea rax, [rbp + 0x90]
mov dword [rsp + 0x28], 0xc
mov rcx, qword [rcx]
mov edx, 0x221554
mov dword [rbp + 0x98], r12d
mov qword [rbp + 0x90], r14
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov ecx, r12d
call qword [sym.imp.KERNEL32.dll_Sleep]
mov rcx, qword [0x1401d97d8]
lea rax, [rbp + 0x100]
mov qword [rsp + 0x38], r14
lea r8, [rbp + 0xa0]
mov qword [rsp + 0x30], rax
mov r9d, 0xc
lea rax, [rbp + 0xa0]
mov dword [rsp + 0x28], 0xc
mov rcx, qword [rcx]
mov edx, 0x221554
mov dword [rbp + 0xa8], 2
mov ebx, 2
mov qword [rbp + 0xa0], r14
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov rax, qword [0x1401d97e8]
mov byte [rax + 0x10], r12b
mov rcx, qword [0x1401d97e8]
jmp 0x14005206b
mov rcx, qword [0x1401d97e8]
mov ebx, 2
cmp byte [rcx + 0x8c], r14b
je 0x140052767
movsxd rax, dword [rcx + 0xa4]
mov edx, 0xa0
cmp eax, 7
ja case.0x140052094.4
mov ecx, dword [r15 + rax*4 + 0x527ec]
add rcx, r15
jmp rcx
mov edx, r12d
jmp case.0x140052094.4
mov edx, ebx
jmp case.0x140052094.4
mov edx, 6
jmp case.0x140052094.4
mov edx, 5
jmp case.0x140052094.4
mov edx, 0xa2
jmp case.0x140052094.4
mov edx, 0x12
jmp case.0x140052094.4
mov edx, 0x14
test rdi, rdi
je 0x140052767
mov ecx, edx
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x140052767
mov rax, qword [0x1401d97e8]
mov rbx, qword [rdi]
mov rsi, qword [rdi + 0x10]
mov rdi, qword [rdi + 0x20]
mov ecx, dword [rax + 0xdc]
cmp byte [rax + 0xf0], r14b
je 0x140052116
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]
mov r9d, r14d
jmp 0x14005215b
test ecx, ecx
je 0x140052155
sub ecx, r12d
je 0x14005214d
sub ecx, r12d
je 0x140052145
sub ecx, r12d
je 0x14005213d
cmp ecx, r12d
jne 0x140052138
mov eax, 0x25
sub rax, r12
jne 0x140052133
mov r9d, r14d
jmp 0x14005215b
mov r9d, 2
jmp 0x14005215b
mov r9d, 0x42
jmp 0x14005215b
mov r9d, 0x43
jmp 0x14005215b
mov r9d, 0x6e
mov r8, rdi
lea rdx, [rsp + 0x60]
mov rcx, rsi
call fcn.1400475e0
mov rcx, qword [0x1401d97d8]
lea rax, [rbx + 0x198]
movsd xmm9, qword [rbp + 0x50]
lea r8, [rbp + 0x70]
movsd xmm10, qword [rbp + 0x40]
mov r9d, 0x20
movsd xmm11, qword [rbp + 0x48]
mov edx, 0x2200a0
mov qword [rbp + 0x78], rax
lea rax, [rbp + 0x60]
mov qword [rbp + 0x80], rax
mov eax, dword [rcx + 8]
mov rcx, qword [rcx]
mov dword [rbp + 0x70], eax
lea rax, [rbp + 0x104]
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x30], rax
lea rax, [rbp + 0x70]
mov dword [rsp + 0x28], 0x20
mov qword [rsp + 0x20], rax
movsd qword [rbp + 0xe8], xmm9
mov qword [rbp + 0x60], r14
mov dword [rbp + 0x74], r14d
mov qword [rbp + 0x88], 8
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov rcx, qword [0x1401d97d8]
lea r8, [rbp + 0x70]
mov rax, qword [rbp + 0x60]
xorps xmm0, xmm0
add rax, 0x168
movsd qword [rbp + 0x130], xmm0
mov qword [rbp + 0x78], rax
mov r9d, 0x20
lea rax, [rbp + 0x120]
mov qword [rsp + 0x38], r14
mov qword [rbp + 0x80], rax
mov edx, 0x2200a0
movups xmmword [rbp + 0x120], xmm0
mov eax, dword [rcx + 8]
mov rcx, qword [rcx]
mov dword [rbp + 0x70], eax
lea rax, [rbp + 0x108]
mov qword [rsp + 0x30], rax
lea rax, [rbp + 0x70]
mov dword [rsp + 0x28], 0x20
mov qword [rsp + 0x20], rax
mov dword [rbp + 0x74], r14d
mov qword [rbp + 0x88], 0x18
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
movaps xmm0, xmm11
movaps xmm1, xmm8
subsd xmm0, qword [0x1401cfa20]
cvtpd2ps xmm0, xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_powf
movaps xmm7, xmm0
movaps xmm1, xmm8
movaps xmm0, xmm10
subsd xmm0, qword [0x1401cfa18]
cvtpd2ps xmm0, xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_powf
movaps xmm1, xmm9
addss xmm7, xmm0
subsd xmm1, qword [0x1401cfa28]
cvtpd2ps xmm0, xmm1
movaps xmm1, xmm8
call sub.api_ms_win_crt_math_l1_1_0.dll_powf
addss xmm7, xmm0
xorps xmm1, xmm1
ucomiss xmm1, xmm7
ja 0x1400522e1
xorps xmm0, xmm0
sqrtss xmm0, xmm7
jmp 0x1400522e9
movaps xmm0, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
mov rax, qword [0x1401d9800]
lea r8, [rbp + 0x70]
mov qword [rsp + 0x38], r14
xorps xmm8, xmm8
mov r9d, 0x20
mov qword [rbp + 0x60], r14
mov edx, 0x2200a0
mov dword [rbp + 0x74], r14d
mov rcx, qword [rax + 0x18]
lea rax, [rbp + 0x60]
add rcx, 0x350
mov qword [rbp + 0x80], rax
mov qword [rbp + 0x78], rcx
mov rcx, qword [0x1401d97d8]
cvtss2sd xmm8, xmm0
mov qword [rbp + 0x88], 8
mov eax, dword [rcx + 8]
mov rcx, qword [rcx]
mov dword [rbp + 0x70], eax
lea rax, [rbp + 0x10c]
mov qword [rsp + 0x30], rax
lea rax, [rbp + 0x70]
mov dword [rsp + 0x28], 0x20
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov rcx, qword [0x1401d97d8]
lea r8, [rbp + 0x70]
mov rax, qword [rbp + 0x60]
mov r9d, 0x20
add rax, 0x9f8
mov qword [rsp + 0x38], r14
mov qword [rbp + 0x78], rax
mov edx, 0x2200a0
lea rax, [rbp + 0xd0]
mov qword [rbp + 0xd0], r14
mov qword [rbp + 0x80], rax
mov eax, dword [rcx + 8]
mov rcx, qword [rcx]
mov dword [rbp + 0x70], eax
lea rax, [rbp + 0x110]
mov qword [rsp + 0x30], rax
lea rax, [rbp + 0x70]
mov dword [rsp + 0x28], 0x20
mov qword [rsp + 0x20], rax
mov dword [rbp + 0x74], r14d
mov qword [rbp + 0x88], 8
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov rax, qword [0x1401d97e8]
cmp byte [rax + 0xe4], r14b
je 0x1400525ff
mov rbx, qword [rbp + 0xd0]
mov rcx, qword [0x1401d97d8]
lea rdx, [rbx + 0x1cc4]
call fcn.140040520
mov rcx, qword [0x1401d97d8]
lea rdx, [rbx + 0x1f34]
movaps xmm7, xmm0
call fcn.140040520
movaps xmm4, xmm0
ucomiss xmm4, xmm6
jp 0x140052438
je 0x1400525ff
ucomiss xmm7, xmm6
jp 0x140052443
je 0x1400525ff
mulss xmm4, dword [0x1400614d0]
lea rdx, [rsp + 0x40]
lea rcx, [rbp + 0x70]
mov qword [rsp + 0x40], r14
mulsd xmm8, qword [0x140061420]
andps xmm4, xmmword [0x14005bcc0]
movsd xmm0, qword [rbp + 0x120]
movsd xmm3, qword [rbp + 0x128]
cvtpd2ps xmm2, xmm8
mulss xmm4, xmm13
divss xmm2, xmm7
cvtps2pd xmm1, xmm2
mulss xmm2, dword [0x14005bbf4]
mulsd xmm0, xmm1
mulsd xmm3, xmm1
mulss xmm4, xmm2
mulsd xmm0, xmm14
mulss xmm4, dword [0x14005bb94]
mulsd xmm3, xmm14
mulsd xmm0, xmm15
mulsd xmm3, xmm15
addsd xmm0, xmm10
movsd qword [rbp + 0x70], xmm0
movaps xmm0, xmm3
addsd xmm0, xmm11
movsd qword [rbp + 0x78], xmm0
xorps xmm0, xmm0
cvtss2sd xmm0, xmm4
addsd xmm0, xmm3
addsd xmm0, xmm9
movsd qword [rbp + 0x80], xmm0
call fcn.140054aa0
mov rax, qword [0x1401d97e8]
xorps xmm2, xmm2
movss xmm4, dword [rsp + 0x40]
xorps xmm3, xmm3
ucomiss xmm4, xmm6
movss xmm5, dword [rax + 0xcc]
movaps xmm1, xmm6
cvtsi2ss xmm2, dword [0x1401d9888]
cvtsi2ss xmm3, dword [0x1401d988c]
movaps xmm0, xmm6
jp 0x140052526
je 0x14005255b
comiss xmm4, xmm2
jbe 0x140052538
movaps xmm1, xmm2
subss xmm1, xmm4
xorps xmm1, xmm12
jmp 0x14005253f
movaps xmm1, xmm4
subss xmm1, xmm2
divss xmm1, xmm5
movaps xmm4, xmm1
addss xmm4, xmm2
addss xmm2, xmm2
comiss xmm4, xmm2
ja 0x140052558
comiss xmm6, xmm4
jbe 0x14005255b
movaps xmm1, xmm6
movss xmm2, dword [rsp + 0x44]
ucomiss xmm2, xmm6
jp 0x140052568
je 0x14005259d
comiss xmm2, xmm3
jbe 0x14005257a
movaps xmm0, xmm3
subss xmm0, xmm2
xorps xmm0, xmm12
jmp 0x140052581
movaps xmm0, xmm2
subss xmm0, xmm3
divss xmm0, xmm5
movaps xmm2, xmm0
addss xmm2, xmm3
addss xmm3, xmm3
comiss xmm2, xmm3
ja 0x14005259a
comiss xmm6, xmm2
jbe 0x14005259d
movaps xmm0, xmm6
mov rcx, qword [0x1401d97d8]
lea r8, [rbp + 0xb0]
cvttss2si eax, xmm1
mov qword [rsp + 0x38], r14
mov r9d, 0xc
mov edx, 0x221554
mov dword [rbp + 0xb8], r14d
mov rcx, qword [rcx]
mov dword [rbp + 0xb0], eax
cvttss2si eax, xmm0
mov dword [rbp + 0xb4], eax
lea rax, [rbp + 0x114]
mov qword [rsp + 0x30], rax
lea rax, [rbp + 0xb0]
mov dword [rsp + 0x28], 0xc
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
movaps xmm0, xmm10
mov qword [rsp + 0x48], r14
unpcklpd xmm0, xmm11
lea rdx, [rsp + 0x48]
movaps xmmword [rbp + 0x70], xmm0
lea rcx, [rbp + 0x70]
movsd xmm0, qword [rbp + 0xe8]
movsd qword [rbp + 0x80], xmm0
call fcn.140054aa0
test al, al
je 0x140052767
mov rax, qword [0x1401d97e8]
movaps xmm1, xmm6
movss xmm4, dword [rsp + 0x48]
movaps xmm0, xmm6
ucomiss xmm4, xmm6
movss xmm5, dword [rax + 0xcc]
movd xmm2, dword [0x1401d9888]
movd xmm3, dword [0x1401d988c]
mulss xmm5, xmm13
cvtdq2ps xmm2, xmm2
cvtdq2ps xmm3, xmm3
jp 0x140052674
je 0x1400526a9
comiss xmm4, xmm2
jbe 0x140052686
movaps xmm1, xmm2
subss xmm1, xmm4
xorps xmm1, xmm12
jmp 0x14005268d
movaps xmm1, xmm4
subss xmm1, xmm2
divss xmm1, xmm5
movaps xmm4, xmm1
addss xmm4, xmm2
addss xmm2, xmm2
comiss xmm4, xmm2
ja 0x1400526a6
comiss xmm6, xmm4
jbe 0x1400526a9
movaps xmm1, xmm6
movss xmm2, dword [rsp + 0x4c]
ucomiss xmm2, xmm6
jp 0x1400526b6
je 0x1400526eb
comiss xmm2, xmm3
jbe 0x1400526c8
movaps xmm0, xmm3
subss xmm0, xmm2
xorps xmm0, xmm12
jmp 0x1400526cf
movaps xmm0, xmm2
subss xmm0, xmm3
divss xmm0, xmm5
movaps xmm2, xmm0
addss xmm2, xmm3
addss xmm3, xmm3
comiss xmm2, xmm3
ja 0x1400526e8
comiss xmm6, xmm2
jbe 0x1400526eb
movaps xmm0, xmm6
cmp byte [rax + 0x1b7], r14b
je 0x140052767
mov rcx, qword [0x1401d97d8]
lea r8, [rbp + 0xc0]
cvttss2si eax, xmm1
mov qword [rsp + 0x38], r14
mov r9d, 0xc
mov edx, 0x221554
mov dword [rbp + 0xc8], r14d
mov rcx, qword [rcx]
mov dword [rbp + 0xc0], eax
cvttss2si eax, xmm0
mov dword [rbp + 0xc4], eax
lea rax, [rbp + 0x118]
mov qword [rsp + 0x30], rax
lea rax, [rbp + 0xc0]
mov dword [rsp + 0x28], 0xc
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
lea rcx, [rsp + 0x50]
call fcn.14004ea80
mov rax, qword [rsp + 0x50]
jmp 0x14005277a
lea rcx, [rsp + 0x50]
call fcn.14004ea80
mov rax, qword [rsp + 0x50]
mov qword [rbp + 0x60], rax
movabs rsi, 0x7ffffffffff0bdbf
cmp rax, rsi
je 0x1400527ae
mov ecx, 0xff
cmovge ecx, r12d
test cl, cl
jns 0x1400527ae
add rax, 0xf4240
lea rcx, [rbp + 0x60]
mov qword [rbp + 0x60], rax
call fcn.140040640
jmp 0x140051ce7
movabs rax, 0x7fffffffffffffff
lea rcx, [rbp + 0x60]
mov qword [rbp + 0x60], rax
call fcn.140040640
jmp 0x140051ce7