Function at 0x1800814b0
Capabilities:
Log keystrokes via polling

Disassembly:
push rbx
push rdi
sub rsp, 0x58
mov rax, qword [0x1801d19f0]
mov rdi, rcx
shl rax, 5
mov rbx, rdx
add rax, qword [0x1801ceea0]
cmp qword [rax + 0x10], 8
lea rcx, [rax + 0x18]
jbe 0x1800814dd
mov rcx, qword [rcx]
cmp byte [rcx], 0
je 0x1800819f6
cmp qword [0x1801d1888], 0
je 0x1800819f6
mov rcx, qword [0x1801d1218]
mov rax, qword [rcx]
mov rdx, qword [rax + 0x108]
call rdx
test al, al
je 0x1800819f6
mov rcx, qword [0x1801d1218]
mov rax, qword [rcx]
mov rdx, qword [rax + 0x100]
call rdx
test al, al
je 0x1800819f6
mov qword [rsp + 0x78], rsi
mov rsi, qword [0x1801d12a0]
test rsi, rsi
je 0x1800819f1
mov eax, dword [0x1801d11fc]
test al, 1
jne 0x180081569
or eax, 1
movabs rcx, 0xdccf003ada4c08e3
mov dword [0x1801d11fc], eax
call fcn.180076d90
mov dword [0x1801d1210], eax
jmp 0x18008156f
mov eax, dword [0x1801d1210]
mov eax, eax
cmp byte [rax + rsi], 0
je 0x1800819f1
mov rcx, qword [0x1801d1218]
lea rdx, [rsp + 0x80]
xor r8d, r8d
mov qword [rsp + 0x50], r14
mov dword [rsp + 0x80], 0xffffffff
mov rax, qword [rcx]
call qword [rax + 0x160]
mov rax, qword [0x1801d1228]
mov edx, dword [rsp + 0x80]
inc edx
mov rcx, qword [rax + 0x58]
call fcn.18005f9f0
mov r14, rax
test rax, rax
je 0x1800819ec
mov rcx, qword [0x1801d1228]
mov rsi, qword [rcx + 0x58]
mov ecx, dword [0x1801d1214]
test cl, 1
jne 0x180081601
or ecx, 1
mov dword [0x1801d1214], ecx
movabs rcx, 0x9241b8778dd136bd
call fcn.180076d90
mov dword [0x1801d1484], eax
jmp 0x180081607
mov eax, dword [0x1801d1484]
mov edx, eax
mov edx, dword [rdx + r14]
cmp edx, 0xffffffff
je 0x1800819ec
and edx, 0x7fff
mov rcx, rsi
call fcn.18005f9f0
mov rsi, rax
test rax, rax
je 0x1800819ec
mov eax, dword [0x1801d1790]
test al, 1
jne 0x18008165a
or eax, 1
movabs rcx, 0x9320aed4f2ddf04b
mov dword [0x1801d1790], eax
call fcn.180076d90
mov dword [0x1801d17c0], eax
jmp 0x180081660
mov eax, dword [0x1801d17c0]
mov eax, eax
cmp dword [rax + rsi], 0
jle 0x1800819ec
mov ecx, dword [0x1801d1880]
mov qword [rsp + 0x70], rbp
movabs rbp, 0xd68445ee808de532
test cl, 1
jne 0x1800816a7
or ecx, 1
mov dword [0x1801d1880], ecx
mov rcx, rbp
call fcn.180076d90
mov ecx, dword [0x1801d1880]
mov edx, eax
mov dword [0x1801d1890], eax
jmp 0x1800816ad
mov edx, dword [0x1801d1890]
mov eax, edx
cmp qword [rax + rsi], 0
je 0x1800819e7
test cl, 1
jne 0x1800816d8
or ecx, 1
mov dword [0x1801d1880], ecx
mov rcx, rbp
call fcn.180076d90
mov edx, eax
mov dword [0x1801d1890], eax
mov eax, edx
mov rbp, qword [rax + rsi]
mov eax, dword [0x1801d1868]
test al, 1
jne 0x180081708
or eax, 1
movabs rcx, 0xb61f1dc362857c87
mov dword [0x1801d1868], eax
call fcn.180076d90
mov dword [0x1801d1850], eax
jmp 0x18008170e
mov eax, dword [0x1801d1850]
mov edx, eax
mov edx, dword [rdx + rbp]
cmp edx, 0xffffffff
je 0x1800819e7
mov rax, qword [0x1801d1228]
and edx, 0x7fff
mov rcx, qword [rax + 0x58]
call fcn.18005f9f0
mov rbp, rax
test rax, rax
je 0x1800819e7
mov rcx, qword [rdi]
cmp rcx, qword [rdi + 8]
je 0x18008174b
mov qword [rdi + 8], rcx
mov r8, rbp
mov rdx, rsi
mov rcx, rdi
call fcn.18007fc70
mov rdx, rsi
mov rcx, rdi
call fcn.180081a00
mov rax, qword [rdi + 8]
sub rax, qword [rdi]
sar rax, 4
test rax, rax
je 0x1800819e7
inc dword [0x1801d0bc8]
xor r8d, r8d
mov eax, dword [rbx + 0x20]
movaps xmmword [rsp + 0x40], xmm6
test eax, eax
jle 0x18008182e
movss xmm6, dword [0x18018e260]
mov r9d, r8d
movaps xmmword [rsp + 0x30], xmm7
movss xmm7, dword [0x18018e008]
cmp r8d, eax
jge 0x18008181a
mov rax, qword [rbx + 0x28]
mov rdx, qword [rax + r9 + 8]
test rdx, rdx
je 0x18008181a
mov rcx, qword [rdx + 0x18]
test rcx, rcx
je 0x18008181a
mov rax, qword [rbx + 0x30]
movss xmm5, dword [rdi + 0x34]
movss xmm2, dword [rdi + 0x30]
movaps xmm1, xmm5
movss xmm3, dword [rdi + 0x38]
mov rax, qword [rax + 0x40]
movss xmm4, dword [rax + 0x1c]
subss xmm1, xmm4
movss dword [rcx + 0x18], xmm2
movss dword [rcx + 0x20], xmm3
movaps xmm0, xmm1
andps xmm0, xmm6
comiss xmm0, xmm7
jbe 0x180081808
addss xmm1, xmm4
movss dword [rcx + 0x1c], xmm1
jmp 0x18008180d
movss dword [rcx + 0x1c], xmm5
mov rcx, qword [rdx + 0x18]
add rcx, 0x18
call fcn.18007a880
mov eax, dword [rbx + 0x20]
inc r8d
add r9, 8
cmp r8d, eax
jl 0x1800817ae
movaps xmm7, xmmword [rsp + 0x30]
mov rdx, rbp
mov rcx, r14
call fcn.180088cc0
test al, al
je 0x1800819e2
mov rax, qword [0x1801d1a00]
shl rax, 5
add rax, qword [0x1801ceea0]
cmp qword [rax + 0x10], 8
lea rcx, [rax + 0x18]
jbe 0x180081861
mov rcx, qword [rcx]
cmp byte [rcx], 0
je 0x1800819c6
mov ecx, 0x20
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x1800819c6
mov eax, dword [0x1801d1828]
test al, 1
jne 0x1800818a8
or eax, 1
movabs rcx, 0x46d60edec73b1b83
mov dword [0x1801d1828], eax
call fcn.180076d90
mov dword [0x1801d1824], eax
jmp 0x1800818ae
mov eax, dword [0x1801d1824]
mov eax, eax
movss xmm0, dword [rax + rsi + 4]
movss xmm2, dword [rax + rsi]
movss xmm1, dword [rax + rsi + 8]
mulss xmm2, xmm2
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm2, xmm0
xorps xmm0, xmm0
addss xmm2, xmm1
ucomiss xmm0, xmm2
ja 0x1800818e6
xorps xmm6, xmm6
sqrtss xmm6, xmm2
jmp 0x1800818f1
movaps xmm0, xmm2
call fcn.1801239f8
movaps xmm6, xmm0
mov eax, dword [0x1801d1830]
test al, 1
jne 0x18008191b
or eax, 1
movabs rcx, 0x881099870ff86582
mov dword [0x1801d1830], eax
call fcn.180076d90
mov dword [0x1801d182c], eax
jmp 0x180081921
mov eax, dword [0x1801d182c]
mov eax, eax
mov rbp, qword [rax + rsi]
mov eax, dword [0x1801d183c]
test al, 1
jne 0x180081954
or eax, 1
movabs rcx, 0x79737564f6f2d233
mov dword [0x1801d183c], eax
call fcn.180076d90
add eax, 8
mov dword [0x1801d1840], eax
jmp 0x18008195a
mov eax, dword [0x1801d1840]
mov rbp, qword [rax + rbp]
mov eax, dword [0x1801d186c]
test al, 1
jne 0x180081988
or eax, 1
movabs rcx, 0xe0bf17ad0cf83b95
mov dword [0x1801d186c], eax
call fcn.180076d90
mov dword [0x1801d18a4], eax
jmp 0x18008198e
mov eax, dword [0x1801d18a4]
mov eax, eax
movss xmm0, dword [rax + rbp + 4]
mulss xmm0, dword [0x18018de8c]
subss xmm0, dword [0x18018dfb4]
comiss xmm6, xmm0
jb 0x1800819c6
mov ecx, 0x20
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x1800819c6
mov r8, rsi
mov rdx, rbx
call fcn.180080f70
cmp byte [rdi + 0x3d], 0
je 0x1800819e2
mov rax, qword [rbx + 0x50]
test al, 1
jne 0x1800819da
or rax, 1
jmp 0x1800819de
and rax, 0xfffffffffffffffe
mov qword [rbx + 0x50], rax
movaps xmm6, xmmword [rsp + 0x40]
mov rbp, qword [rsp + 0x70]
mov r14, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x78]
add rsp, 0x58
pop rdi
pop rbx
ret