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

Disassembly:
sub rsp, 0x38
mov byte [0x180105260], 0
mov byte [0x180105261], 0
mov byte [0x180105262], 0
call qword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [0x1801071c0]
cmp eax, dword [0x1800f3710]
jbe 0x18002c1de
mov ecx, dword [str.N_hbdfe]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
cwde
test eax, eax
jne 0x18002bf52
mov ecx, 0x6a
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
cwde
test eax, eax
je 0x18002bfa0
cmp dword [0x180105270], 0
jne 0x18002bf6f
mov ecx, 1
call fcn.18002dc20
mov dword [rsp + 0x20], 0
jmp 0x18002bf85
cmp dword [0x180105270], 1
jne 0x18002bf7d
call fcn.18002a090
mov dword [rsp + 0x20], 0
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x1801071c0], eax
mov dword [0x1800f3730], 1
jmp 0x18002c1de
mov ecx, dword [0x1800f3718]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
cwde
test eax, eax
jne 0x18002bfcc
mov edx, 0xca
xor ecx, ecx
call fcn.18002b840
test eax, eax
je 0x18002bffe
movzx eax, byte [0x1800f3601]
test eax, eax
je 0x18002bffe
cmp dword [0x180105270], 0
jle 0x18002bfda
call fcn.18002a090
cmp dword [0x180105270], 0
jle 0x18002bfef
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x1801071c0], eax
mov dword [0x1800f3730], 1
jmp 0x18002c1de
mov ecx, dword [0x1800f371c]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
cwde
test eax, eax
jne 0x18002c02a
mov edx, 0xbc
xor ecx, ecx
call fcn.18002b840
test eax, eax
je 0x18002c07d
movzx eax, byte [0x1800f3601]
test eax, eax
je 0x18002c07d
cmp dword [0x180105264], 1
jle 0x18002c04d
mov eax, dword [0x180105264]
mov dword [rsp + 0x24], eax
mov eax, dword [0x180105264]
dec eax
mov dword [0x180105264], eax
jmp 0x18002c063
mov eax, dword [0x180105268]
mov dword [0x180105264], eax
mov eax, dword [0x180105264]
mov dword [rsp + 0x24], eax
cmp dword [0x180105270], 0
jle 0x18002c078
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x1801071c0], eax
jmp 0x18002c1de
mov ecx, dword [0x1800f3720]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
cwde
test eax, eax
jne 0x18002c0a9
mov edx, 0xbb
xor ecx, ecx
call fcn.18002b840
test eax, eax
je 0x18002c0ff
movzx eax, byte [0x1800f3601]
test eax, eax
je 0x18002c0ff
mov eax, dword [0x180105268]
cmp dword [0x180105264], eax
jge 0x18002c0d1
mov eax, dword [0x180105264]
mov dword [rsp + 0x28], eax
mov eax, dword [0x180105264]
inc eax
mov dword [0x180105264], eax
jmp 0x18002c0e5
mov dword [0x180105264], 1
mov eax, dword [0x180105264]
mov dword [rsp + 0x28], eax
cmp dword [0x180105270], 0
jle 0x18002c0fa
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x1801071c0], eax
jmp 0x18002c1de
mov ecx, dword [0x1800f3724]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
cwde
test eax, eax
jne 0x18002c12b
mov edx, 0xaf
xor ecx, ecx
call fcn.18002b840
test eax, eax
je 0x18002c14c
movzx eax, byte [0x1800f3601]
test eax, eax
je 0x18002c14c
mov byte [0x180105261], 1
cmp dword [0x180105270], 0
jle 0x18002c147
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x1801071c0], eax
jmp 0x18002c1de
mov ecx, dword [0x1800f3728]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
cwde
test eax, eax
jne 0x18002c178
mov edx, 0xae
xor ecx, ecx
call fcn.18002b840
test eax, eax
je 0x18002c196
movzx eax, byte [0x1800f3601]
test eax, eax
je 0x18002c196
mov byte [0x180105262], 1
cmp dword [0x180105270], 0
jle 0x18002c194
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x1801071c0], eax
jmp 0x18002c1de
mov ecx, dword [0x1800f372c]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
cwde
test eax, eax
jne 0x18002c1c2
mov edx, 0xc9
xor ecx, ecx
call fcn.18002b840
test eax, eax
je 0x18002c1de
movzx eax, byte [0x1800f3601]
test eax, eax
je 0x18002c1de
mov byte [0x180105260], 1
cmp dword [0x180105270], 0
jle 0x18002c1de
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x1801071c0], eax
mov dword [0x180105268], 0
add rsp, 0x38
ret