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

Disassembly:
mov rax, rsp
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x5f]
sub rsp, 0xc0
mov qword [rbp - 0x69], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov rax, qword [0x1803bc678]
xor rax, rsp
mov qword [rbp + 0x2f], rax
mov rbx, rcx
add rcx, 0x50
mov rdx, qword [rcx + 0x18]
xor r12d, r12d
cmp qword [rcx + 0x10], r12
je 0x18015681c
cmp rdx, 0x10
jb 0x1801567a6
mov rcx, qword [rcx]
mov dword [0x1803eda50], r12d
movabs rax, 0xd24d37cc275948cc
mov qword [0x1803ebe70], rax
mov qword [0x1803edb18], rcx
mov dword [0x1803eda40], 1
call fcn.18014eb30
mov ecx, dword [rax]
mov dword [0x1803eda50], r12d
movabs rax, 0x557e43c447e700a8
mov qword [0x1803ebe70], rax
mov qword [rbp + 0x27], r12
mov dword [rbp + 0x27], ecx
mov rax, qword [rbp + 0x27]
mov qword [0x1803edb18], rax
mov dword [0x1803eda40], 1
call fcn.18014eb30
cmp dword [rax], r12d
je 0x18015681c
mov rcx, rbx
call fcn.1801572a0
lea r13, [rbx + 0xd8]
lea rdi, [r13 + 0x24]
mov rsi, r13
mov r14d, 7
movzx eax, byte [rdi]
mov byte [rdi + 7], al
mov r15d, dword [rsi]
call qword [sym.imp.USER32.dll_GetForegroundWindow]
lea rdx, [rbp + 0x27]
mov rcx, rax
call qword [sym.imp.USER32.dll_GetWindowThreadProcessId]
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
cmp dword [rbp + 0x27], eax
je 0x18015685b
xor al, al
jmp 0x180156869
mov ecx, r15d
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
and al, 1
mov byte [rdi], al
add rsi, 4
inc rdi
sub r14, 1
jne 0x180156830
mov esi, r12d
lea rdi, [r13 + 0xa8]
movabs r14, 0xe2587f8cbbd87b1d
nop dword [rax]
movzx eax, byte [rdi]
mov byte [rdi + 0x152], al
mov dword [0x1803eda50], r12d
mov qword [0x1803ebe70], r14
mov qword [rbp + 0x27], r12
mov dword [rbp + 0x27], r12d
mov rax, qword [rbp + 0x27]
mov qword [0x1803edb18], rax
mov qword [rbp + 0x27], r12
mov dword [rbp + 0x27], esi
mov rax, qword [rbp + 0x27]
mov qword [0x1803edb20], rax
mov dword [0x1803eda40], 2
call fcn.18014eb30
cmp dword [rax], r12d
setne al
mov byte [rdi], al
inc esi
lea rdi, [rdi + 1]
cmp esi, 0x152
jl 0x180156890
mov byte [rbx + 0x1aa8], r12b
call qword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [rbx + 0x3b6c]
cmp eax, dword [rbx + 0x3b8c]
ja 0x180156bc8
cmp byte [rbx + 0xfc], r12b
je 0x180156926
cmp byte [rbx + 0x103], r12b
je 0x180156bc8
cmp byte [rbx + 0x101], r12b
je 0x18015693c
cmp byte [rbx + 0x108], r12b
je 0x180156bc8
movzx eax, byte [rbx + 0x3b90]
movabs rdi, 0x91aef906bca88877
test al, al
je 0x1801569a7
mov dword [0x1803eda50], r12d
mov qword [0x1803ebe70], rdi
mov qword [rbp + 0x27], r12
mov dword [rbp + 0x27], r12d
mov rax, qword [rbp + 0x27]
mov qword [0x1803edb18], rax
mov qword [rbp + 0x27], r12
mov dword [rbp + 0x27], 0xb0
mov rax, qword [rbp + 0x27]
mov qword [0x1803edb20], rax
mov dword [0x1803eda40], 2
call fcn.18014eb30
cmp dword [rax], r12d
jne 0x180156bc8
movzx eax, byte [rbx + 0x3b90]
cmp byte [rbx + 0x102], r12b
je 0x1801569bd
cmp byte [rbx + 0x109], r12b
je 0x180156bc8
test al, al
je 0x180156a17
mov dword [0x1803eda50], r12d
mov qword [0x1803ebe70], rdi
mov qword [rbp + 0x27], r12
mov dword [rbp + 0x27], r12d
mov rax, qword [rbp + 0x27]
mov qword [0x1803edb18], rax
mov qword [rbp + 0x27], r12
mov dword [rbp + 0x27], 0xb1
mov rax, qword [rbp + 0x27]
mov qword [0x1803edb20], rax
mov dword [0x1803eda40], 2
call fcn.18014eb30
cmp dword [rax], r12d
jne 0x180156bc8
movzx eax, byte [rbx + 0x3b90]
cmp byte [rbx + 0xfd], r12b
je 0x180156a2d
cmp byte [rbx + 0x104], r12b
je 0x180156bc8
test al, al
je 0x180156a87
mov dword [0x1803eda50], r12d
mov qword [0x1803ebe70], rdi
mov qword [rbp + 0x27], r12
mov dword [rbp + 0x27], r12d
mov rax, qword [rbp + 0x27]
mov qword [0x1803edb18], rax
mov qword [rbp + 0x27], r12
mov dword [rbp + 0x27], 0xbc
mov rax, qword [rbp + 0x27]
mov qword [0x1803edb20], rax
mov dword [0x1803eda40], 2
call fcn.18014eb30
cmp dword [rax], r12d
jne 0x180156bc8
movzx eax, byte [rbx + 0x3b90]
cmp byte [rbx + 0xfe], r12b
je 0x180156a9d
cmp byte [rbx + 0x105], r12b
je 0x180156bc8
test al, al
je 0x180156af7
mov dword [0x1803eda50], r12d
mov qword [0x1803ebe70], rdi
mov qword [rbp + 0x27], r12
mov dword [rbp + 0x27], r12d
mov rax, qword [rbp + 0x27]
mov qword [0x1803edb18], rax
mov qword [rbp + 0x27], r12
mov dword [rbp + 0x27], 0xbb
mov rax, qword [rbp + 0x27]
mov qword [0x1803edb20], rax
mov dword [0x1803eda40], 2
call fcn.18014eb30
cmp dword [rax], r12d
jne 0x180156bc8
movzx eax, byte [rbx + 0x3b90]
cmp byte [rbx + 0xff], r12b
je 0x180156b0d
cmp byte [rbx + 0x106], r12b
je 0x180156bc8
test al, al
je 0x180156b63
mov dword [0x1803eda50], r12d
mov qword [0x1803ebe70], rdi
mov qword [rbp + 0x27], r12
mov dword [rbp + 0x27], r12d
mov rax, qword [rbp + 0x27]
mov qword [0x1803edb18], rax
mov qword [rbp + 0x27], r12
mov dword [rbp + 0x27], 0xae
mov rax, qword [rbp + 0x27]
mov qword [0x1803edb20], rax
mov dword [0x1803eda40], 2
call fcn.18014eb30
cmp dword [rax], r12d
jne 0x180156bc8
movzx eax, byte [rbx + 0x3b90]
cmp byte [rbx + 0x100], r12b
je 0x180156b75
cmp byte [rbx + 0x107], r12b
je 0x180156bc8
test al, al
je 0x180156c22
mov dword [0x1803eda50], r12d
mov qword [0x1803ebe70], rdi
mov qword [rbp + 0x27], r12
mov dword [rbp + 0x27], r12d
mov rax, qword [rbp + 0x27]
mov qword [0x1803edb18], rax
mov qword [rbp + 0x27], r12
mov dword [rbp + 0x27], 0xaf
mov rax, qword [rbp + 0x27]
mov qword [0x1803edb20], rax
mov dword [0x1803eda40], 2
call fcn.18014eb30
cmp dword [rax], r12d
je 0x180156c22
lea rax, [rbp - 0x59]
mov qword [rbp + 0x27], rax
lea rax, [rbp - 0x19]
mov qword [rbp - 0x61], rax
mov qword [rbp - 0x21], r12
mov rcx, qword [rbx + 0x19c0]
test rcx, rcx
je 0x180156bf5
mov rax, qword [rcx]
lea rdx, [rbp - 0x59]
call qword [rax]
mov qword [rbp - 0x21], rax
mov qword [rbp + 0x1f], r12
mov rcx, qword [rbx + 0x1980]
test rcx, rcx
je 0x180156c12
mov rax, qword [rcx]
lea rdx, [rbp - 0x19]
call qword [rax]
mov qword [rbp + 0x1f], rax
lea r8, [rbp - 0x59]
lea rdx, [rbp - 0x19]
mov rcx, rbx
call fcn.180159650
movzx eax, byte [rbx + 0xfc]
test al, al
jne 0x180156c3d
cmp byte [rbx + 0x103], al
jne 0x1801570f0
test al, al
je 0x180156c4a
cmp byte [rbx + 0x103], 0
je 0x1801570f0
movzx eax, byte [rbx + 0x101]
test al, al
jne 0x180156c65
cmp byte [rbx + 0x108], al
jne 0x1801570f0
test al, al
je 0x180156c72
cmp byte [rbx + 0x108], 0
je 0x1801570f0
movzx eax, byte [rbx + 0x102]
test al, al
jne 0x180156c8d
cmp byte [rbx + 0x109], al
jne 0x1801570f0
test al, al
je 0x180156c9a
cmp byte [rbx + 0x109], 0
je 0x1801570f0
movzx eax, byte [rbx + 0xfd]
test al, al
jne 0x180156cb5
cmp byte [rbx + 0x104], al
jne 0x1801570f0
test al, al
je 0x180156cc2
cmp byte [rbx + 0x104], 0
je 0x1801570f0
movzx eax, byte [rbx + 0xfe]
test al, al
jne 0x180156cdd
cmp byte [rbx + 0x105], al
jne 0x1801570f0
test al, al
je 0x180156cea
cmp byte [rbx + 0x105], 0
je 0x1801570f0
movzx eax, byte [rbx + 0xff]
test al, al
jne 0x180156d05
cmp byte [rbx + 0x106], al
jne 0x1801570f0
test al, al
je 0x180156d12
cmp byte [rbx + 0x106], 0
je 0x1801570f0
movzx eax, byte [rbx + 0x100]
test al, al
jne 0x180156d2d
cmp byte [rbx + 0x107], al
jne 0x1801570f0
test al, al
je 0x180156d3a
cmp byte [rbx + 0x107], 0
je 0x1801570f0
mov dword [0x1803eda50], r12d
mov qword [0x1803ebe70], r14
mov qword [rbp + 0x27], r12
mov dword [rbp + 0x27], r12d
mov rax, qword [rbp + 0x27]
mov qword [0x1803edb18], rax
mov qword [rbp + 0x27], r12
mov dword [rbp + 0x27], 0xb0
mov rax, qword [rbp + 0x27]
mov qword [0x1803edb20], rax
mov dword [0x1803eda40], 2
call fcn.18014eb30
cmp dword [rax], 0
jne 0x1801570f0
mov dword [0x1803eda50], r12d
movabs rdi, 0x305c8dcd79da8b0f
mov qword [0x1803ebe70], rdi
mov qword [rbp + 0x27], r12
mov dword [rbp + 0x27], r12d
mov rax, qword [rbp + 0x27]
mov qword [0x1803edb18], rax
mov qword [rbp + 0x27], r12
mov dword [rbp + 0x27], 0xb0
mov rax, qword [rbp + 0x27]
mov qword [0x1803edb20], rax
mov dword [0x1803eda40], 2
call fcn.18014eb30
cmp dword [rax], 0
jne 0x1801570f0
mov dword [0x1803eda50], r12d
mov qword [0x1803ebe70], r14
mov qword [rbp + 0x27], r12
mov dword [rbp + 0x27], r12d
mov rax, qword [rbp + 0x27]
mov qword [0x1803edb18], rax
mov qword [rbp + 0x27], r12
mov dword [rbp + 0x27], 0xb1
mov rax, qword [rbp + 0x27]
mov qword [0x1803edb20], rax
mov dword [0x1803eda40], 2
call fcn.18014eb30
cmp dword [rax], 0
jne 0x1801570f0
mov dword [0x1803eda50], r12d
mov qword [0x1803ebe70], rdi
mov qword [rbp + 0x27], r12
mov dword [rbp + 0x27], r12d
mov rax, qword [rbp + 0x27]
mov qword [0x1803edb18], rax
mov qword [rbp + 0x27], r12
mov dword [rbp + 0x27], 0xb1
mov rax, qword [rbp + 0x27]
mov qword [0x1803edb20], rax
mov dword [0x1803eda40], 2
call fcn.18014eb30
cmp dword [rax], 0
jne 0x1801570f0
mov dword [0x1803eda50], r12d
mov qword [0x1803ebe70], r14
mov qword [rbp + 0x27], r12
mov dword [rbp + 0x27], r12d
mov rax, qword [rbp + 0x27]
mov qword [0x1803edb18], rax
mov qword [rbp + 0x27], r12
mov dword [rbp + 0x27], 0xbc
mov rax, qword [rbp + 0x27]
mov qword [0x1803edb20], rax
mov dword [0x1803eda40], 2
call fcn.18014eb30
cmp dword [rax], 0
jne 0x1801570f0
mov dword [0x1803eda50], r12d
mov qword [0x1803ebe70], rdi
mov qword [rbp + 0x27], r12
mov dword [rbp + 0x27], r12d
mov rax, qword [rbp + 0x27]
mov qword [0x1803edb18], rax
mov qword [rbp + 0x27], r12
mov dword [rbp + 0x27], 0xbc
mov rax, qword [rbp + 0x27]
mov qword [0x1803edb20], rax
mov dword [0x1803eda40], 2
call fcn.18014eb30
cmp dword [rax], 0
jne 0x1801570f0
mov dword [0x1803eda50], r12d
mov qword [0x1803ebe70], r14
mov qword [rbp + 0x27], r12
mov dword [rbp + 0x27], r12d
mov rax, qword [rbp + 0x27]
mov qword [0x1803edb18], rax
mov qword [rbp + 0x27], r12
mov dword [rbp + 0x27], 0xbb
mov rax, qword [rbp + 0x27]
mov qword [0x1803edb20], rax
mov dword [0x1803eda40], 2
call fcn.18014eb30
cmp dword [rax], 0
jne 0x1801570f0
mov dword [0x1803eda50], r12d
mov qword [0x1803ebe70], rdi
mov qword [rbp + 0x27], r12
mov dword [rbp + 0x27], r12d
mov rax, qword [rbp + 0x27]
mov qword [0x1803edb18], rax
mov qword [rbp + 0x27], r12
mov dword [rbp + 0x27], 0xbb
mov rax, qword [rbp + 0x27]
mov qword [0x1803edb20], rax
mov dword [0x1803eda40], 2
call fcn.18014eb30
cmp dword [rax], 0
jne 0x1801570f0
mov dword [0x1803eda50], r12d
mov qword [0x1803ebe70], r14
mov qword [rbp + 0x27], r12
mov dword [rbp + 0x27], r12d
mov rax, qword [rbp + 0x27]
mov qword [0x1803edb18], rax
mov qword [rbp + 0x27], r12
mov dword [rbp + 0x27], 0xae
mov rax, qword [rbp + 0x27]
mov qword [0x1803edb20], rax
mov dword [0x1803eda40], 2
call fcn.18014eb30
cmp dword [rax], 0
jne 0x1801570f0
mov dword [0x1803eda50], r12d
mov qword [0x1803ebe70], rdi
mov qword [rbp + 0x27], r12
mov dword [rbp + 0x27], r12d
mov rax, qword [rbp + 0x27]
mov qword [0x1803edb18], rax
mov qword [rbp + 0x27], r12
mov dword [rbp + 0x27], 0xae
mov rax, qword [rbp + 0x27]
mov qword [0x1803edb20], rax
mov dword [0x1803eda40], 2
call fcn.18014eb30
cmp dword [rax], 0
jne 0x1801570f0
mov dword [0x1803eda50], r12d
mov qword [0x1803ebe70], r14
mov qword [rbp + 0x27], r12
mov dword [rbp + 0x27], r12d
mov rax, qword [rbp + 0x27]
mov qword [0x1803edb18], rax
mov qword [rbp + 0x27], r12
mov dword [rbp + 0x27], 0xaf
mov rax, qword [rbp + 0x27]
mov qword [0x1803edb20], rax
mov dword [0x1803eda40], 2
call fcn.18014eb30
cmp dword [rax], 0
jne 0x1801570f0
mov dword [0x1803eda50], r12d
mov qword [0x1803ebe70], rdi
mov qword [rbp + 0x27], r12
mov dword [rbp + 0x27], r12d
mov rax, qword [rbp + 0x27]
mov qword [0x1803edb18], rax
mov qword [rbp + 0x27], r12
mov dword [rbp + 0x27], 0xaf
mov rax, qword [rbp + 0x27]
mov qword [0x1803edb20], rax
mov dword [0x1803eda40], 2
call fcn.18014eb30
cmp dword [rax], 0
je 0x1801570fc
mov eax, dword [rbx + 0x3b88]
mov dword [rbx + 0x3b8c], eax
mov esi, 1
mov rax, qword [rbx + 0x3b78]
sub rax, qword [rbx + 0x3b70]
sar rax, 2
cmp rsi, rax
jae 0x18015723c
nop dword [rax]
lea edi, [rsi + 1]
mov r8d, edi
imul r8d, dword [rbx + 0x3b88]
mov edx, 1
mov rcx, r13
call fcn.18016c8b0
test al, al
jne 0x18015720e
mov r8d, edi
imul r8d, dword [rbx + 0x3b88]
mov edx, 0xbc
mov rcx, r13
call fcn.18016cad0
test al, al
jne 0x18015720e
mov r8d, edi
imul r8d, dword [rbx + 0x3b88]
mov edx, 2
mov rcx, r13
call fcn.18016c8b0
test al, al
jne 0x18015720e
mov r8d, edi
imul r8d, dword [rbx + 0x3b88]
mov edx, 0xbb
mov rcx, r13
call fcn.18016cad0
test al, al
jne 0x18015720e
mov r8d, edi
imul r8d, dword [rbx + 0x3b88]
mov edx, 3
mov rcx, r13
call fcn.18016c8b0
test al, al
jne 0x18015720e
mov r8d, edi
imul r8d, dword [rbx + 0x3b88]
mov edx, 0xbd
mov rcx, r13
call fcn.18016cad0
test al, al
jne 0x18015720e
mov r8d, edi
imul r8d, dword [rbx + 0x3b88]
mov edx, 4
mov rcx, r13
call fcn.18016c8b0
test al, al
jne 0x18015720e
imul edi, dword [rbx + 0x3b88]
mov r8d, edi
mov edx, 0xbe
mov rcx, r13
call fcn.18016cad0
test al, al
je 0x18015721e
mov rax, qword [rbx + 0x3b70]
mov ecx, dword [rax + rsi*4]
mov dword [rbx + 0x3b8c], ecx
inc rsi
mov rax, qword [rbx + 0x3b78]
sub rax, qword [rbx + 0x3b70]
sar rax, 2
cmp rsi, rax
jb 0x180157120
cmp byte [rbx + 0x3b90], 0
jne 0x18015725f
call qword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [rbx + 0x3b6c]
cmp eax, 0x3e8
jbe 0x18015725f
mov byte [rbx + 0x3b90], 1
mov rax, qword [rbx + 0x3ab0]
mov qword [rbx + 0x3ab8], rax
mov rcx, qword [rbp + 0x2f]
xor rcx, rsp
call fcn.1801e5c70
lea r11, [rsp + 0xc0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret