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

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
lea rbp, [rsp - 0x47]
sub rsp, 0xd0
mov rax, qword [0x1400b8080]
xor rax, rsp
mov qword [rbp + 0x37], rax
mov rdi, rdx
mov rbx, rcx
xor esi, esi
mov rax, qword [rcx]
call qword [rax + pe_nt_image_headers64]
test al, al
jne 0x140018471
mov eax, dword [rdi]
sub eax, 0xe
cmp eax, 0xa
jbe 0x140018481
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x110]
test al, al
jne 0x1400184a8
mov rcx, qword [rbx + 0x38]
mov rdx, rdi
test rcx, rcx
je 0x14001849b
mov rax, qword [rcx]
call qword [rax + 0x1a0]
jmp 0x140018a85
mov rcx, rbx
call fcn.140038260
jmp 0x140018a85
mov eax, dword [rdi]
cmp eax, 0x28
jne 0x1400184bf
mov rdx, rdi
mov rcx, rbx
call fcn.140018ab0
jmp 0x140018a85
cmp eax, 0xa
jne 0x14001856d
lea ecx, [rax - 1]
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jns 0x14001852f
cmp byte [rbx + 0x359], sil
jne 0x14001852f
mov rax, qword [rbx + 0x30]
test rax, rax
je 0x140018a85
mov word [rbp + 0x1b], si
mov dword [rbp + 0x2f], esi
mov qword [rbp + 7], rbx
mov dword [rbp - 1], 0x2e
mov rax, qword [rax + 0x148]
mov qword [rbp + 0x13], rax
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [rbp + 0xf], eax
mov qword [rbp + 0x1f], rsi
mov qword [rbp + 0x27], rsi
mov rax, qword [rbx]
lea rdx, [rbp - 1]
mov rcx, rbx
call qword [rax + 0x1a0]
jmp 0x140018a85
cmp byte [rbx + 0x360], sil
je 0x14001854a
mov rax, qword [rdi + 0x20]
sub rax, 0x30
cmp rax, 9
ja 0x140018a85
mov rax, qword [rbx]
mov qword [rsp + 0x20], rsi
mov r9, qword [rdi + 0x28]
mov r8, qword [rdi + 0x20]
mov edx, 0x102
mov rcx, rbx
call qword [rax + 0x3b8]
jmp 0x140018a85
cmp eax, 8
jne 0x140018582
mov rdx, rdi
mov rcx, rbx
call fcn.140018c60
jmp 0x140018a85
cmp eax, 0xe
jne 0x140018591
mov edx, 0x200
jmp 0x140018a7a
cmp eax, 0x18
jne 0x1400185b8
lea ecx, [rax - 7]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140018a85
mov rdx, rdi
mov rcx, rbx
call fcn.140033890
jmp 0x140018a85
cmp eax, 0x12
je 0x140018928
cmp eax, 0x20
je 0x140018928
cmp eax, 0x13
je 0x1400188ac
cmp eax, 0x22
je 0x1400188ac
test eax, eax
jne 0x140018623
cmp byte [rbx + 0x35d], sil
je 0x140018619
mov dword [rbp - 0x59], esi
mov dword [rbp - 0x55], 0xffffffff
mov rax, qword [rbx]
lea rcx, [rbp - 0x51]
mov qword [rsp + 0x20], rcx
lea r9, [rbp - 0x59]
xor r8d, r8d
mov edx, 0x437
mov rcx, rbx
call qword [rax + 0x3b8]
jmp 0x140018a85
mov edx, 0x203
jmp 0x140018a7a
cmp eax, 0x14
jne 0x140018632
mov edx, 0x204
jmp 0x140018a7a
cmp eax, 0x15
jne 0x140018641
mov edx, 0x205
jmp 0x140018a7a
cmp eax, 0x30
jne 0x1400186d8
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
mov rdi, qword [rax + 0x10]
test rdi, rdi
je 0x140018a85
mov rcx, rdi
call qword [sym.imp.IMM32.dll_ImmGetContext]
mov rsi, rax
test rax, rax
je 0x140018a85
lea rdx, [rbp - 0x59]
mov rcx, rbx
call fcn.14002d700
mov r8d, dword [rbx + 0x36c]
sub r8d, dword [rbp - 0x59]
mov edx, dword [rbx + 0x370]
sub edx, dword [rbp - 0x55]
mov dword [rbp - 1], 2
mov eax, 1
cmp r8d, eax
cmovl r8d, eax
cmp edx, eax
cmovl edx, eax
mov dword [rbp + 3], r8d
mov dword [rbp + 7], edx
lea rdx, [rbp - 1]
mov rcx, rsi
call qword [sym.imp.IMM32.dll_ImmSetCompositionWindow]
mov rdx, rsi
mov rcx, rdi
call qword [sym.imp.IMM32.dll_ImmReleaseContext]
mov byte [rbx + 0x368], 1
jmp 0x140018a85
cmp eax, 0x31
jne 0x1400186e9
mov byte [rbx + 0x368], sil
jmp 0x140018a85
cmp eax, 2
jne 0x140018754
mov rdi, qword [rbx + 0x350]
test rdi, rdi
je 0x14001873f
or dword [rdi + 0x24], 0x20
mov rcx, qword [rdi + 0x18]
mov rax, qword [rcx]
xor edx, edx
call qword [rax + 0x48]
test eax, eax
jns 0x140018712
and dword [rdi + 0x24], 0xffffffdf
mov rax, qword [rbx + 0x350]
mov rcx, qword [rax + 0x18]
mov rax, qword [rcx]
mov qword [rsp + 0x20], rsi
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 7]
call qword [rax + 0x18]
mov edx, 1
mov rcx, rbx
call fcn.14001ac10
mov byte [rbx + 0xbc], 1
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x58]
jmp 0x140018a85
cmp eax, 3
jne 0x1400185a8
mov rdi, qword [rbx + 0x350]
test rdi, rdi
je 0x1400187fe
or dword [rdi + 0x24], 0x20
mov rcx, qword [rdi + 0x18]
mov rax, qword [rcx]
xor edx, edx
call qword [rax + 0x48]
test eax, eax
jns 0x140018785
and dword [rdi + 0x24], 0xffffffdf
mov rax, qword [rbx + 0x350]
mov rcx, qword [rax + 0x18]
mov rax, qword [rcx]
mov qword [rsp + 0x20], rsi
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 8]
call qword [rax + 0x18]
mov byte [rbx + 0x367], sil
mov qword [rbx + 0x4b8], rsi
mov rdi, qword [rbx + 0x4c0]
mov qword [rbx + 0x4c0], rsi
test rdi, rdi
je 0x1400187f5
mov eax, 0xffffffff
lock xadd dword [rdi + 8], eax
cmp eax, 1
jne 0x1400187f5
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax]
mov eax, 0xffffffff
lock xadd dword [rdi + 0xc], eax
cmp eax, 1
jne 0x1400187f5
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 8]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x58]
mov byte [rbx + 0xbc], sil
mov byte [rbx + 0x363], sil
cmp byte [rbx + 0x364], sil
je 0x140018852
cmp byte [rbx + 0x35d], sil
je 0x140018852
cmp byte [rbx + 0xb9], sil
je 0x140018852
mov dword [rbp - 0x59], 0xffffffff
mov dword [rbp - 0x55], esi
mov rax, qword [rbx]
lea rcx, [rbp - 9]
mov qword [rsp + 0x20], rcx
lea r9, [rbp - 0x59]
xor r8d, r8d
mov edx, 0x437
mov rcx, rbx
call qword [rax + 0x3b8]
cmp byte [rbx + 0x365], sil
je 0x14001888f
cmp byte [rbx + 0xb9], sil
je 0x14001888f
mov dword [rbp - 0x51], 0xffffffff
mov dword [rbp - 0x4d], esi
mov rax, qword [rbx]
lea rcx, [rbp - 0x49]
mov qword [rsp + 0x20], rcx
lea r9, [rbp - 0x51]
xor r8d, r8d
mov edx, 0x437
mov rcx, rbx
call qword [rax + 0x3b8]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x58]
call fcn.140042480
mov rcx, rax
xor edx, edx
call fcn.140042510
jmp 0x140018a85
cmp byte [rbx + 0xb9], sil
je 0x14001891e
cmp byte [rbx + 0x363], sil
jne 0x14001891e
mov byte [rbx + 0x363], 1
cmp byte [rbx + 0x365], sil
je 0x14001891e
mov dword [rbp - 0x51], esi
mov dword [rbp - 0x4d], 0xffffffff
mov rax, qword [rbx]
lea rcx, [rbp - 0x49]
mov qword [rsp + 0x20], rcx
lea r9, [rbp - 0x51]
xor r8d, r8d
mov edx, 0x437
mov rcx, rbx
call qword [rax + 0x3b8]
mov rax, qword [rbx]
mov rcx, rbx
test byte [rbx + 0x3a4], 4
je 0x140018918
call qword [rax + 0x330]
mov edx, 0x202
jmp 0x140018a7a
call qword [rax + 0x350]
mov edx, 0x202
jmp 0x140018a7a
mov rcx, qword [rbx + 0x530]
sub rcx, qword [rbx + 0x528]
movabs rax, 0x6666666666666667
imul rcx
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
add rdx, rax
je 0x140018a61
xorps xmm0, xmm0
movups xmmword [rbp - 1], xmm0
movdqa xmm1, xmmword [0x1400a4610]
movdqu xmmword [rbp + 0xf], xmm1
mov word [rbp - 1], si
mov eax, dword [rdi + 0x14]
mov dword [rbp - 0x51], eax
mov eax, dword [rdi + 0x18]
mov dword [rbp - 0x4d], eax
lea r8, [rbp - 1]
mov rdx, qword [rbp - 0x51]
mov rcx, rbx
call fcn.14001b3c0
test al, al
je 0x140018a25
mov rax, qword [rbx + 0x30]
test rax, rax
je 0x1400189df
mov word [rbp - 0x25], si
mov dword [rbp - 0x11], 0
mov qword [rbp - 0x39], rbx
mov dword [rbp - 0x41], 0x2f
mov rax, qword [rax + 0x148]
mov qword [rbp - 0x2d], rax
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [rbp - 0x31], eax
mov qword [rbp - 0x21], rsi
mov qword [rbp - 0x19], rsi
mov rax, qword [rbx]
lea rdx, [rbp - 0x41]
mov rcx, rbx
call qword [rax + 0x1a0]
nop
mov rdx, qword [rbp + 0x17]
cmp rdx, 7
jbe 0x140018a85
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 1]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140018a1e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140018aa4
call fcn.140061530
jmp 0x140018a85
mov rdx, qword [rbp + 0x17]
cmp rdx, 7
jbe 0x140018a61
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 1]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140018a5c
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140018aa4
call fcn.140061530
cmp dword [rdi], 0x20
jne 0x140018a75
call fcn.140042480
mov rcx, rax
mov dl, 1
call fcn.140042510
mov edx, 0x201
mov r8, rdi
mov rcx, rbx
call fcn.140019120
mov rcx, qword [rbp + 0x37]
xor rcx, rsp
call fcn.140061510
mov rbx, qword [rsp + 0x100]
add rsp, 0xd0
pop rdi
pop rsi
pop rbp
ret
call fcn.14006a6c0
int3