Function at 0x18008a150
Capabilities:
Check for time delay via gettickcount
Log keystrokes via polling

Disassembly:
mov qword [rsp + 0x10], rbx
push rsi
sub rsp, 0xb0
cmp byte [0x1802ec260], 0
je 0x18008a177
call fcn.180007ae0
mov ecx, eax
mov edx, 1
call fcn.18006dbb0
mov rbx, qword [0x1802ec848]
xor esi, esi
cmp byte [0x1802ec261], sil
je 0x18008a1ca
mov rax, qword [rbx + 0x30]
mov rcx, qword [rax]
test rcx, rcx
je 0x18008a19b
mov rax, qword [rcx + 8]
jmp 0x18008a19e
mov rax, rsi
mov rax, qword [rax + 0x10a8]
mov dword [rax + 0x888], esi
mov rcx, qword [rbx + 8]
mov r8, qword [rcx + 0x20]
mov rdx, qword [rcx + 0x10]
mov rcx, qword [rcx + 8]
call fcn.1801ca540
mov rcx, qword [rbx + 0x10]
mov rdx, qword [rcx + 0x10]
jmp 0x18008a1e7
mov rcx, qword [rbx + 8]
mov r8, qword [rcx + 0x20]
mov rdx, qword [rcx + 0x18]
mov rcx, qword [rcx + 8]
call fcn.1801ca540
mov rcx, qword [rbx + 0x10]
mov rdx, qword [rcx + 0x18]
mov r8, qword [rcx + 0x20]
mov rcx, qword [rcx + 8]
call fcn.1801ca540
movzx eax, byte [0x1802ec262]
test al, al
je 0x18008a24b
mov ebx, esi
sete bl
call fcn.180007ae0
mov edx, ebx
mov ecx, eax
call fcn.18007c8a0
mov ebx, esi
cmp byte [0x1802ec262], bl
sete bl
call fcn.180007ae0
mov edx, ebx
mov ecx, eax
call fcn.1800891d0
mov ebx, esi
cmp byte [0x1802ec262], bl
sete bl
call fcn.180007ae0
mov edx, ebx
mov ecx, eax
call fcn.180089050
mov rbx, qword [0x1802ec848]
cmp byte [0x1802ec26b], sil
je 0x18008a27a
mov rax, qword [rbx + 0x30]
mov rax, qword [rax]
test rax, rax
je 0x18008a266
mov rax, qword [rax + 8]
jmp 0x18008a269
mov rax, rsi
mov rax, qword [rax + 0x10a8]
mov dword [rax + 0xcf4], 0x42c80000
movzx edx, byte [0x1802ec264]
test dl, dl
je 0x18008a2bc
mov rax, qword [rbx + 0x30]
mov rcx, qword [rax]
test rcx, rcx
je 0x18008a297
mov rax, qword [rcx + 8]
jmp 0x18008a29a
mov rax, rsi
mov rax, qword [rax + 0x30]
mov byte [0x1802ec928], dl
mov rcx, qword [rax + 0x10]
mov rax, qword [rcx + 0x20]
mov rcx, qword [rax + 0x70]
mov rax, qword [rcx]
mov dword [rax + 0x2c], 0xbf800000
jmp 0x18008a2fb
cmp byte [0x1802ec928], sil
je 0x18008a2fb
mov rax, qword [rbx + 0x30]
mov rcx, qword [rax]
test rcx, rcx
je 0x18008a2d7
mov rax, qword [rcx + 8]
jmp 0x18008a2da
mov rax, rsi
mov rax, qword [rax + 0x30]
mov byte [0x1802ec928], sil
mov rcx, qword [rax + 0x10]
mov rax, qword [rcx + 0x20]
mov rcx, qword [rax + 0x70]
mov rax, qword [rcx]
mov dword [rax + 0x2c], 0x3e800000
movzx ebx, byte [0x1802ec268]
call fcn.180007ae0
mov r8d, ebx
mov edx, 0xdf
mov ecx, eax
call fcn.180089160
movzx ebx, byte [0x1802ec269]
call fcn.180007ae0
mov r8d, ebx
mov edx, 0x41
mov ecx, eax
call fcn.180089160
cmp byte [0x1802ec267], sil
je 0x18008a367
call fcn.180007ae0
mov ecx, eax
xor edx, edx
call fcn.180089220
call fcn.180007ae0
mov ecx, eax
xor edx, edx
call fcn.180089270
call fcn.180007ae0
mov ecx, eax
mov edx, 1
call fcn.1800892c0
cmp byte [0x1802ec265], sil
je 0x18008a38b
call fcn.180007ae0
mov ecx, eax
xor r8d, r8d
xor edx, edx
call fcn.1800458c0
mov ecx, 1
call fcn.180088f50
cmp byte [0x1802ec26d], sil
mov qword [rsp + 0xc0], rdi
je 0x18008a3f6
call fcn.180007ae0
mov ecx, eax
mov ebx, eax
call fcn.180088c50
mov ecx, ebx
mov edi, eax
call fcn.180088ff0
test eax, eax
je 0x18008a3f6
mov ecx, ebx
call fcn.180088fb0
test eax, eax
jne 0x18008a3f6
mov ecx, ebx
call fcn.180088c90
cmp edi, eax
jge 0x18008a3f6
call qword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [0x1802edaa4]
cmp eax, 0xc8
jbe 0x18008a3f6
lea edx, [rdi + 3]
mov ecx, ebx
call fcn.180088d10
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x1802edaa4], eax
cmp byte [0x1802ec26e], sil
movaps xmmword [rsp + 0xa0], xmm6
je 0x18008a462
call fcn.180089450
lea rcx, str.core
test eax, eax
je 0x18008a45d
call fcn.1800373c0
mov ecx, dword [0x1802ec270]
call fcn.180088f10
test eax, eax
jne 0x18008a462
call fcn.180007ae0
mov ecx, eax
mov edx, 0x796e
call fcn.18006b5f0
movd xmm6, eax
cvtdq2ps xmm6, xmm6
call fcn.180007ae0
mov edx, eax
movss dword [rsp + 0x40], xmm6
call fcn.180088d80
mov dword [0x1802ec270], eax
jmp 0x18008a462
call fcn.1800373f0
cmp byte [0x1802ec26c], sil
je 0x18008a4bc
call fcn.180007ab0
mov ecx, eax
call fcn.1800893e0
test eax, eax
jne 0x18008a487
call fcn.180007ab0
mov ecx, eax
call fcn.180089390
cmp byte [0x1802ec26c], sil
je 0x18008a49a
movss xmm0, dword [0x180278eb0]
jmp 0x18008a4a2
movss xmm0, dword [0x180278d3c]
call fcn.180089420
movzx ebx, byte [0x1802ec26c]
call fcn.180007ab0
mov edx, ebx
mov ecx, eax
call fcn.180089340
movzx eax, byte [0x1802ec263]
test al, al
je 0x18008a523
mov ebx, eax
call fcn.180089310
movsxd rcx, eax
mov rax, qword [0x1802ec848]
imul rdx, rcx, 0x1d2
mov rax, qword [rax + 0x1c8]
add rdx, 0x288e08
mov rcx, rdx
and edx, 0x3ffff
shr rcx, 0x12
and ecx, 0x3f
mov rax, qword [rax + rcx*8]
mov dword [rax + rdx*8], ebx
call fcn.180088f80
mov rcx, qword [0x1802ec848]
inc eax
mov rdx, qword [rcx + 0x1c8]
mov rcx, qword [rdx + 0x50]
mov dword [rcx + 0x63d88], eax
cmp byte [0x1802ec266], sil
je 0x18008a788
mov edx, 0xbc
movaps xmmword [rsp + 0x90], xmm7
mov ecx, 2
call fcn.180047930
mov edx, 0xbd
mov ecx, 2
mov edi, eax
call fcn.180047930
mov ebx, eax
call fcn.180007ae0
mov ecx, eax
call fcn.180088cd0
movss xmm7, dword [0x180278dd8]
comiss xmm0, xmm7
jae 0x18008a5ea
call fcn.180007ae0
mov r9d, 1
mov dword [rsp + 0x20], 1
mov ecx, eax
mov edx, 0xfbab5776
lea r8d, [r9 - 2]
call fcn.18006ddd0
call fcn.180007ae0
mov edx, eax
lea rcx, [rsp + 0x70]
mov r8d, 1
call fcn.1800074f0
movss xmm6, dword [rsp + 0x80]
addss xmm6, dword [0x180278e3c]
call fcn.180007ae0
movss xmm2, dword [rsp + 0x78]
mov ecx, eax
movss xmm1, dword [rsp + 0x70]
movaps xmm3, xmm6
mov dword [rsp + 0x38], esi
mov dword [rsp + 0x30], esi
mov dword [rsp + 0x20], esi
call fcn.18006f8d0
jmp 0x18008a780
xorps xmm6, xmm6
cmp ebx, 0xfe
je 0x18008a605
mov ecx, 0x53
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x18008a641
call fcn.180007ae0
movss xmm0, dword [0x180278df8]
mov ecx, eax
mov dword [rsp + 0x60], esi
movaps xmm3, xmm7
mov dword [rsp + 0x48], 1
xorps xmm2, xmm2
mov dword [rsp + 0x40], esi
movss dword [rsp + 0x30], xmm6
movss dword [rsp + 0x28], xmm6
movss dword [rsp + 0x20], xmm0
call fcn.180030e00
test ebx, ebx
je 0x18008a655
mov ecx, 0x57
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x18008a689
call fcn.180007ae0
mov dword [rsp + 0x60], esi
mov ecx, eax
mov dword [rsp + 0x48], 1
movaps xmm3, xmm7
mov dword [rsp + 0x40], esi
xorps xmm2, xmm2
movss dword [rsp + 0x30], xmm6
movss dword [rsp + 0x28], xmm6
movss dword [rsp + 0x20], xmm6
call fcn.180030e00
mov ecx, reloc.WS2_32.dll_recv
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x18008a6da
call fcn.180007ae0
movss xmm0, dword [0x180278c74]
mov ecx, eax
movss xmm3, dword [0x180278e08]
xorps xmm2, xmm2
mov dword [rsp + 0x60], esi
mov dword [rsp + 0x48], 1
mov dword [rsp + 0x40], esi
movss dword [rsp + 0x30], xmm6
movss dword [rsp + 0x28], xmm6
movss dword [rsp + 0x20], xmm0
call fcn.180030e00
movss xmm7, dword [0x180278c18]
cmp edi, 0xfe
je 0x18008a6fa
mov ecx, 0x44
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x18008a733
call fcn.180007ae0
movss xmm2, dword [0x180278d60]
mov ecx, eax
mov dword [rsp + 0x60], esi
xorps xmm3, xmm3
mov dword [rsp + 0x48], 1
mov dword [rsp + 0x40], esi
movss dword [rsp + 0x30], xmm7
movss dword [rsp + 0x28], xmm6
movss dword [rsp + 0x20], xmm6
call fcn.180030e00
test edi, edi
je 0x18008a747
mov ecx, 0x41
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x18008a780
call fcn.180007ae0
movss xmm2, dword [0x180278ed0]
mov ecx, eax
mov dword [rsp + 0x60], esi
xorps xmm3, xmm3
mov dword [rsp + 0x48], 1
mov dword [rsp + 0x40], esi
movss dword [rsp + 0x30], xmm7
movss dword [rsp + 0x28], xmm6
movss dword [rsp + 0x20], xmm6
call fcn.180030e00
movaps xmm7, xmmword [rsp + 0x90]
movaps xmm6, xmmword [rsp + 0xa0]
mov rdi, qword [rsp + 0xc0]
mov rbx, qword [rsp + 0xc8]
add rsp, 0xb0
pop rsi
ret