Function at 0x18001c350
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, rsp
push rbp
push r15
lea rbp, [rax - 0x98]
sub rsp, 0x188
movss xmm0, dword [0x180141f38]
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov esi, dword [0x180141c70]
mov qword [rax + 0x18], rdi
mov qword [rax + 0x20], r12
mov qword [rax - 0x18], r14
movaps xmmword [rax - 0x28], xmm6
xorps xmm6, xmm6
ucomiss xmm0, xmm6
mov r12d, 4
jne 0x18001c3d6
call fcn.180016430
mov rbx, rax
test rax, rax
je 0x18001c3ce
mov rax, qword gs:[0x58]
mov rcx, qword [rax + rsi*8]
mov eax, dword [r12 + rcx]
cmp dword [0x180178370], eax
jg 0x18001c898
mov rax, qword [0x180178238]
movss xmm6, dword [rax + rbx]
movss dword [0x180141f38], xmm6
call fcn.180016430
mov rcx, rax
call fcn.180016340
xor edi, edi
mov r14, rax
movabs r15, 0x7fffffff0000
lea rdx, [rax + 0x18]
cmp rdx, 0x40000
jbe 0x18001c5f7
lea rcx, [rdx + 8]
cmp rcx, r15
jae 0x18001c42d
mov rcx, qword [rdx]
add rcx, 0x18
cmp rcx, 0x40000
jbe 0x18001c42d
lea rax, [rcx + 4]
cmp rax, r15
jae 0x18001c42d
cmp dword [rcx], 0x40547fde
je 0x18001c474
cmp rdx, 0x40000
jbe 0x18001c5f7
lea rax, [rdx + 8]
cmp rax, r15
jae 0x18001c5f7
mov rcx, qword [rdx]
add rcx, 0x18
cmp rcx, 0x40000
jbe 0x18001c5f7
lea rax, [rcx + 4]
cmp rax, r15
jae 0x18001c5f7
cmp dword [rcx], 0x847b9bf0
jne 0x18001c5f7
cmp byte [0x180141eb0], dil
je 0x18001c5f7
call fcn.180016430
mov rbx, rax
test rax, rax
je 0x18001c4c4
mov rcx, qword gs:[0x58]
mov rdx, qword [rcx + rsi*8]
mov ecx, dword [r12 + rdx]
cmp dword [0x180178814], ecx
jg 0x18001c8d3
mov rax, qword [0x180178608]
movss xmm0, dword [rax + rbx]
comiss xmm0, dword [0x18011ad2c]
jae 0x18001c5f7
lea rcx, [r14 + 0xa8]
cmp rcx, 0x40000
jbe 0x18001c5ea
lea rax, [rcx + 8]
cmp rax, r15
jae 0x18001c5ea
mov rsi, qword [rcx]
lea rcx, [rsi + 0x190]
cmp rcx, 0x40000
jbe 0x18001c5ea
lea rax, [rcx + 1]
cmp rax, r15
jae 0x18001c5ea
movzx ebx, byte [rcx]
call fcn.180016430
mov rcx, rax
call fcn.1800159d0
movss xmm6, dword [rax]
test bl, bl
je 0x18001c5f7
movss xmm0, dword [0x180141f38]
addss xmm0, dword [0x18011a870]
comiss xmm6, xmm0
jbe 0x18001c5f7
mov r8, qword [0x180141dc8]
lea r9, str.UseSelf
add r8, 0x583210
mov dword [rsp + 0x3c], 7
mov edx, edi
mov rcx, rdi
movzx eax, word [rcx + r9]
inc edx
mov word [rsp + rcx + 0x40], ax
lea rcx, [rcx + 2]
movsxd rax, dword [rsp + 0x3c]
cmp edx, eax
jl 0x18001c560
mov word [rsp + rax*2 + 0x40], di
lea rdx, [rbp - 0x30]
movups xmm0, xmmword [rsp + 0x2c]
mov rcx, rsi
movups xmm1, xmmword [rsp + 0x3c]
movaps xmmword [rbp - 0x30], xmm0
movups xmm0, xmmword [rsp + 0x4c]
movaps xmmword [rbp - 0x20], xmm1
movups xmm1, xmmword [rsp + 0x5c]
movaps xmmword [rbp - 0x10], xmm0
movups xmm0, xmmword [rsp + 0x6c]
movaps xmmword [rbp], xmm1
movups xmm1, xmmword [rsp + 0x7c]
movaps xmmword [rbp + 0x10], xmm0
movups xmm0, xmmword [rbp - 0x74]
movaps xmmword [rbp + 0x20], xmm1
movups xmm1, xmmword [rbp - 0x64]
movaps xmmword [rbp + 0x30], xmm0
movups xmm0, xmmword [rbp - 0x54]
movaps xmmword [rbp + 0x40], xmm1
movsd xmm1, qword [rbp - 0x44]
movaps xmmword [rbp + 0x50], xmm0
movsd qword [rbp + 0x60], xmm1
call r8
movss dword [0x180141f38], xmm6
jmp 0x18001c5f7
call fcn.180016430
mov rcx, rax
call fcn.1800159d0
mov rcx, qword [0x180141dc8]
movaps xmm6, xmmword [rsp + 0x170]
add rcx, 0x338f418
mov r14, qword [rsp + 0x180]
mov r12, qword [rsp + 0x1b8]
mov rsi, qword [rsp + 0x1a8]
cmp rcx, 0x40000
jbe 0x18001c658
lea rax, [rcx + 8]
cmp rax, r15
jae 0x18001c658
mov rcx, qword [rcx]
add rcx, 0xb8
cmp rcx, 0x40000
jbe 0x18001c658
lea rax, [rcx + 8]
cmp rax, r15
jae 0x18001c658
mov rbx, qword [rcx]
jmp 0x18001c65b
mov rbx, rdi
cmp byte [0x180141e63], dil
je 0x18001c693
mov ecx, dword [0x180141ecc]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x18001c693
lea rcx, [rbx + 0x18]
cmp rcx, 0x40000
jbe 0x18001c6b5
lea rax, [rcx + 4]
cmp rax, r15
jae 0x18001c6b5
mov dword [rcx], 0x41200000
jmp 0x18001c6b5
add rbx, 0x18
cmp rbx, 0x40000
jbe 0x18001c6b5
lea rax, [rbx + 4]
cmp rax, r15
jae 0x18001c6b5
movss xmm0, dword [0x18012d0e4]
movss dword [rbx], xmm0
cmp byte [0x180141eaa], dil
mov rbx, qword [rsp + 0x1a0]
je 0x18001c6f8
mov rax, qword [0x180141dc8]
add rax, 0x284a7f0
call rax
movss xmm1, dword [0x18012d0f4]
mov rcx, rax
mov rdx, qword [0x180141dc8]
mulss xmm1, dword [0x18011a6e8]
add rdx, 0x284b020
call rdx
cmp byte [0x180141eb3], dil
je 0x18001c75a
call fcn.180016430
add rax, 0x610
cmp rax, 0x40000
jbe 0x18001c75a
lea rcx, [rax + 8]
cmp rcx, r15
jae 0x18001c75a
mov rcx, qword [rax]
mov rdx, rcx
lea r8, [rcx + 0xc4]
cmp r8, 0x40000
jbe 0x18001c73f
lea rax, [r8 + 4]
cmp rax, r15
jae 0x18001c73f
mov dword [r8], edi
lea rcx, [rdx + 0xc8]
cmp rcx, 0x40000
jbe 0x18001c75a
lea rax, [rcx + 4]
cmp rax, r15
jae 0x18001c75a
mov dword [rcx], edi
cmp byte [0x180141eb5], dil
je 0x18001c79c
call fcn.180016430
lea rcx, [rax + 0x820]
cmp rcx, 0x40000
jbe 0x18001c79c
lea rax, [rcx + 4]
cmp rax, r15
jae 0x18001c785
mov edi, dword [rcx]
jmp 0x18001c797
cmp rcx, 0x40000
jbe 0x18001c79c
lea rax, [rcx + 4]
cmp rax, r15
jae 0x18001c79c
or edi, 4
mov dword [rcx], edi
cmp byte [0x180141eab], 0
mov rdi, qword [rsp + 0x1b0]
je 0x18001c80f
call fcn.180016430
mov rcx, qword [0x180141dc8]
add rcx, 0x3347b18
cmp rcx, 0x40000
jbe 0x18001c80f
lea rax, [rcx + 8]
cmp rax, r15
jae 0x18001c80f
mov rcx, qword [rcx]
add rcx, 0xb8
cmp rcx, 0x40000
jbe 0x18001c80f
lea rax, [rcx + 8]
cmp rax, r15
jae 0x18001c80f
mov rdx, qword [rcx]
cmp rdx, 0x40000
jbe 0x18001c80f
lea rax, [rdx + 4]
cmp rax, r15
jae 0x18001c80f
movss xmm0, dword [0x18012d0b4]
movss dword [rdx], xmm0
cmp byte [0x180141ec0], 0
je 0x18001c88d
mov ecx, dword [0x180141edc]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x18001c88d
call fcn.180016430
add rax, 0x828
cmp rax, 0x40000
jbe 0x18001c88d
lea rcx, [rax + 8]
cmp rcx, r15
jae 0x18001c88d
mov rcx, qword [rax]
movss xmm0, dword [0x18011aab8]
add rcx, 0x38
movss dword [rsp + 0x24], xmm0
mov dword [rsp + 0x20], 0
mov dword [rsp + 0x28], 0
cmp rcx, 0x40000
jbe 0x18001c88d
lea rax, [rcx + 0xc]
cmp rax, r15
jae 0x18001c88d
movsd xmm0, qword [rsp + 0x20]
mov eax, dword [rsp + 0x28]
movsd qword [rcx], xmm0
mov dword [rcx + 8], eax
add rsp, 0x188
pop r15
pop rbp
ret
lea rcx, [0x180178370]
call fcn.1800d6814
cmp dword [0x180178370], 0xffffffff
jne 0x18001c3c2
mov ecx, 0xc566d10
call fcn.180010280
lea rcx, [0x180178370]
mov qword [0x180178238], rax
call fcn.1800d67b4
jmp 0x18001c3c2
lea rcx, [0x180178814]
call fcn.1800d6814
cmp dword [0x180178814], 0xffffffff
jne 0x18001c4ab
mov ecx, 0x43f29029
call fcn.180010280
lea rcx, [0x180178814]
mov qword [0x180178608], rax
call fcn.1800d67b4
jmp 0x18001c4ab