Function at 0x180018a1c
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], r8
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1f]
sub rsp, 0xb0
mov r14, r9
mov rsi, rdx
mov rdi, rcx
xor r12d, r12d
mov rcx, qword [rcx]
cmp rcx, 0x20
jae 0x180019007
mov al, cl
and al, 0x1f
movzx r8d, al
shr rcx, 5
mov r9, qword [rbp + 0x7f]
mov eax, dword [r9 + rcx*4]
bt eax, r8d
jae 0x180018b10
call fcn.18001f5c8
mov rdx, rax
mov rcx, rsi
call fcn.180020938
test al, al
je 0x180018af5
mov r10, qword [rsi + 0x330]
mov rcx, qword [rsi + 0x328]
add rcx, 0x110
movss xmm2, dword [0x1800bacfc]
lea rdx, [rbp + 0x6f]
call fcn.180020174
lea r9, [rdi + 0x158]
mov r8, rax
lea rdx, [rbp + 0x5f]
lea rcx, [r10 + 0x90]
call fcn.180020124
mov rdx, rax
mov rcx, r9
call fcn.180020194
movss xmm1, dword [rdi + 0x7c]
movaps xmm0, xmm1
mulss xmm0, dword [r9]
movss dword [r9], xmm0
mulss xmm1, dword [rdi + 0x15c]
movss dword [rdi + 0x15c], xmm1
mov rbx, qword [rsp + 0xf8]
add rsp, 0xb0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov rdx, qword [rdi + 8]
cmp rdx, 0x20
jae 0x180019007
mov al, dl
and al, 0x1f
movzx ecx, al
shr rdx, 5
mov eax, dword [r9 + rdx*4]
bt eax, ecx
jae 0x180018d82
call fcn.1800213bc
cmp qword [rsi + 0x10], rax
jne 0x180018af5
mov rax, qword [rsi + 0x30]
movss xmm1, dword [rdi + 0x104]
mulss xmm1, dword [rax + 0xe98]
movss dword [rax + 0xe98], xmm1
movss xmm0, dword [0x1800bae30]
divss xmm0, xmm1
mulss xmm0, dword [rdi + 0x7c]
movss dword [rdi + 0x80], xmm0
mov r14d, 0xe80
cmp byte [rdi + 0xf6], r12b
je 0x180018c37
cmp qword [rdi + 0x148], r12
je 0x180018c37
mov rax, qword [rsi + 0x30]
test rax, rax
je 0x180018c37
movss xmm0, dword [rax + 0xe90]
addss xmm0, dword [0x1800bae40]
movss dword [rax + 0xe90], xmm0
mov rax, qword [rsi + 0x30]
mov dword [rax + 0xe8c], r12d
mov rax, qword [rsi + 0x30]
lea rdx, [rbp - 0x59]
mov rcx, qword [rax + 0x228]
call fcn.180020d4c
movss xmm2, dword [0x1800baf00]
lea rdx, [rbp + 3]
mov rcx, rax
call fcn.18001febc
mov rbx, rax
mov rcx, qword [rsi + 0x30]
lea rdx, [rbp + 0xf]
mov rcx, qword [rcx + 0x228]
call fcn.180020c38
movss xmm2, dword [0x1800bae2c]
lea rdx, [rbp - 9]
mov rcx, rax
call fcn.18001febc
mov r8, rax
lea rdx, [rbp - 0x71]
mov rcx, rbx
call fcn.18001fe40
mov rcx, qword [rsi + 0x30]
add rcx, r14
mov rdx, rax
call fcn.18001ff4c
mov ebx, 2
cmp byte [rdi + 0x5c], r12b
je 0x180018d38
mov ecx, ebx
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x180018d38
mov rax, qword [rdi + 0xd0]
test rax, rax
je 0x180018d38
cmp qword [rax + 0x3e0], r12
je 0x180018d38
mov byte [rdi + 0x12b], 1
mov ecx, dword [0x1800cb208]
mov rax, qword gs:[0x58]
mov edx, 8
mov rax, qword [rax + rcx*8]
mov eax, dword [rdx + rax]
cmp dword [0x1800cc1a8], eax
jg 0x18001900d
mov rcx, qword [rdi + 0xd0]
lea r8, [0x1800cc198]
lea rdx, [rbp - 0x59]
mov rcx, qword [rcx + 0x3e0]
call fcn.180020b24
mov rax, qword [rdi + 0xd0]
mov rcx, qword [rax + 0x130]
add rcx, 0x140
movss xmm2, dword [0x1800bacac]
lea rdx, [rbp - 0x71]
call fcn.18001febc
mov rdx, rax
lea rcx, [rbp - 0x59]
call fcn.18001ff4c
mov rcx, qword [rsi + 0x30]
lea rdx, [rbp - 0x71]
mov rcx, qword [rcx + 0x228]
call fcn.180020d4c
movss xmm2, dword [0x1800bae34]
lea rdx, [rbp - 9]
mov rcx, rax
call fcn.18001febc
mov rdx, rax
lea rcx, [rbp - 0x59]
call fcn.18001ff7c
lea rcx, [rdi + 0x12c]
lea rdx, [rbp - 0x59]
call fcn.18001fe74
jmp 0x180018d4c
mov ecx, ebx
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x180018d4c
mov byte [rdi + 0x12b], r12b
cmp byte [rdi + 0x12b], r12b
je 0x180018af5
mov dword [rdi + 0x104], 0x3f800000
mov dword [rdi + 0x100], r12d
lea rdx, [rdi + 0x12c]
mov rcx, qword [rsi + 0x30]
add rcx, r14
call fcn.18001fe74
jmp 0x180018af5
mov rdx, qword [rdi + 0x10]
cmp rdx, 0x20
jae 0x180019007
mov al, dl
and al, 0x1f
movzx ecx, al
shr rdx, 5
mov eax, dword [r9 + rdx*4]
bt eax, ecx
jae 0x180018e00
lea rcx, [rbp + 0x6f]
call fcn.180002f24
mov rcx, qword [rax]
sub rcx, qword [rdi + 0xb8]
cmp rcx, 0x47868bf
jg 0x180018af5
call fcn.180022b2c
mov rdx, rax
mov rcx, rsi
call fcn.180020938
test al, al
je 0x180018af5
lea rdx, [rdi + 0x9d]
mov rcx, r14
call fcn.18001fe74
lea rdx, [rdi + 0xa9]
lea rcx, [r14 + 0xc]
call fcn.18001fe74
jmp 0x180018af5
cmp byte [rdi + 0x5b], r12b
je 0x180018af5
mov rdx, qword [rdi + 0x20]
cmp rdx, 0x20
jae 0x180019007
mov al, dl
and al, 0x1f
movzx ecx, al
shr rdx, 5
mov eax, dword [r9 + rdx*4]
bt eax, ecx
jae 0x180018af5
movsxd rax, dword [r14 + 0x10]
lea rbx, [rax + rax]
mov rsi, qword [r14 + 8]
lea r15, [rsi + rbx]
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x71], xmm0
mov qword [rbp - 0x61], r12
movabs rcx, 0x7fffffffffffffff
mov r13d, 0x1000
test rax, rax
je 0x180018ec3
cmp rax, rcx
ja 0x180019055
cmp rbx, r13
jb 0x180018e79
mov rcx, rbx
call fcn.180002ea4
jmp 0x180018e8b
test rbx, rbx
je 0x180018e88
mov rcx, rbx
call fcn.1800a21c0
jmp 0x180018e8b
mov rax, r12
mov qword [rbp - 0x71], rax
mov qword [rbp - 0x69], rax
add rbx, rax
mov qword [rbp - 0x61], rbx
mov r8, rax
mov rdx, r15
mov rcx, rsi
call fcn.180009bf4
mov qword [rbp - 0x69], rbx
mov qword [rbp + 0x6f], r12
lea rcx, [rbp + 0x6f]
call fcn.180019cd0
movabs rcx, 0x7fffffffffffffff
movups xmm0, xmmword [r14]
movups xmmword [rbp - 0x49], xmm0
movups xmm1, xmmword [r14 + 0x10]
movups xmmword [rbp - 0x39], xmm1
mov eax, dword [r14 + 0x20]
mov dword [rbp - 0x29], eax
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x21], xmm0
mov qword [rbp - 0x11], r12
mov rbx, qword [rbp - 0x69]
mov rax, rbx
mov r15, qword [rbp - 0x71]
sub rax, r15
sar rax, 1
je 0x180018f68
cmp rax, rcx
ja 0x180019001
lea r14, [rax + rax]
cmp r14, r13
jb 0x180018f21
mov rcx, r14
call fcn.180002ea4
mov rsi, rax
mov rbx, qword [rbp - 0x69]
mov r15, qword [rbp - 0x71]
jmp 0x180018f33
test r14, r14
je 0x180018f30
mov rcx, r14
call fcn.1800a21c0
jmp 0x180018f14
mov rsi, r12
mov qword [rbp - 0x21], rsi
lea rax, [r14 + rsi]
mov qword [rbp - 0x11], rax
mov r8, rsi
mov rdx, rbx
mov rcx, r15
call fcn.180009bf4
sub rbx, r15
sar rbx, 1
lea rax, [rsi + rbx*2]
mov qword [rbp - 0x19], rax
mov qword [rbp + 0x6f], r12
lea rcx, [rbp + 0x6f]
call fcn.180019cd0
lea rcx, [rdi + 0x1d0]
lea rdx, [rbp - 0x49]
call fcn.180019718
mov rcx, qword [rbp - 0x21]
test rcx, rcx
je 0x180018fb9
mov rax, qword [rbp - 0x11]
sub rax, rcx
sar rax, 1
lea rdx, [rax + rax]
mov rax, rcx
cmp rdx, r13
jb 0x180018fb3
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x180018fb3
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1800a2204
nop
mov rcx, qword [rbp - 0x71]
test rcx, rcx
je 0x180018af5
mov rdx, qword [rbp - 0x61]
sub rdx, rcx
sar rdx, 1
add rdx, rdx
mov rax, rcx
cmp rdx, r13
jb 0x180018ff7
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x180018ff7
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1800a2204
jmp 0x180018af5
call fcn.180009c28
nop
call fcn.180002404
int3
lea rcx, [0x1800cc1a8]
call fcn.1800a22e0
cmp dword [0x1800cc1a8], 0xffffffff
jne 0x180018ca2
mov rax, qword [rdi + 0xd0]
xor r8d, r8d
lea rdx, [0x1800cc198]
mov rcx, qword [rax + 0x3e0]
call fcn.180020f74
nop
lea rcx, [0x1800cc1a8]
call fcn.1800a2274
jmp 0x180018ca2
call fcn.180009c28
int3