Function at 0x1400e8c04
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x60
mov rax, qword [0x14025f760]
xor rax, rsp
mov qword [rbp - 0x10], rax
and dword [rbp - 0x3c], 0
mov esi, edx
movsxd rax, dword [rcx + 0x1138]
mov rbx, rcx
test eax, eax
jns 0x1400e8c42
xor r14d, r14d
jmp 0x1400e8c59
mov rdx, rax
add rcx, 0x1188
call fcn.14003b084
mov r14, rax
test rax, rax
jne 0x1400e8c5d
xor eax, eax
jmp 0x1400e8c61
mov rax, qword [rax + 0x10]
and dword [rbp - 0x40], 0
mov r13, rax
mov r15d, dword [rbx + 0x1138]
mov r12d, 0x28
mov qword [rbp - 0x30], rax
cmp esi, 9
jne 0x1400e8c9f
lea ecx, [rsi + 7]
call qword [sym.imp.USER32.dll_GetKeyState]
test al, al
jns 0x1400e8c98
lea esi, [r12 - 2]
mov rcx, r14
jmp 0x1400e8e1a
mov rax, qword [rbp - 0x30]
mov esi, r12d
mov rcx, r14
cmp esi, 0xd
je 0x1400e905e
cmp esi, 0x20
jbe 0x1400e8cdd
cmp esi, 0x22
jbe 0x1400e8ed9
cmp esi, 0x23
je 0x1400e8e17
cmp esi, 0x24
je 0x1400e8d4f
mov eax, 0x26
cmp esi, eax
je 0x1400e8e1a
cmp esi, r12d
je 0x1400e8d52
cmp dword [0x14026a04c], 0
jne 0x1400e91b0
mov ecx, 0x11
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, 0x8000
test cx, ax
jne 0x1400e91b0
mov ecx, esi
call fcn.1400b7938
test eax, eax
je 0x1400e9013
mov ecx, esi
call fcn.1400b7c5c
lea rcx, [rbx + 0x1318]
mov dword [rbp - 0x38], eax
lea r8, [rbp - 0x20]
mov esi, eax
lea rdx, [rbp - 0x38]
call fcn.14007d274
test eax, eax
je 0x1400e9013
mov r13, qword [rbp - 0x20]
xor ecx, ecx
mov rax, qword [rbx + 0x1190]
lea edi, [rcx + 1]
jmp 0x1400e8f79
xor r14d, r14d
cmp dword [rbx + 0x1398], 0
je 0x1400e8d73
cmp rcx, qword [rbx + 0x1198]
jne 0x1400e8d73
cmp esi, 0x24
je 0x1400e8d73
mov eax, 1
jmp 0x1400e91b3
cmp qword [rbx + 0x11a0], 0
mov edi, 1
mov dword [rbp - 0x3c], edi
je 0x1400e91b0
test r14, r14
je 0x1400e8d9b
mov rsi, qword [r14]
test rsi, rsi
je 0x1400e8d9b
add r15d, edi
jmp 0x1400e8da5
mov rsi, qword [rbx + 0x1190]
xor r15d, r15d
cmp rsi, r14
je 0x1400e91b0
mov r12, rsi
mov r13, rsi
test rsi, rsi
je 0x1400e91d7
mov r13, qword [r13 + 0x10]
mov rsi, qword [rsi]
test byte [r13 + 0x28], dil
jne 0x1400e8ddf
lea rcx, [r13 + 0x68]
call qword [sym.imp.USER32.dll_IsRectEmpty]
test eax, eax
jne 0x1400e8ddf
cmp dword [r13 + 0x24], 0xfffffffe
jne 0x1400e8e02
add r15d, edi
test rsi, rsi
jne 0x1400e8dfd
cmp dword [rbx + 0x1398], esi
jne 0x1400e8f50
mov rsi, qword [rbx + 0x1190]
xor r15d, r15d
cmp rsi, r14
jne 0x1400e8dae
test r12, r12
je 0x1400e91b0
mov r13, qword [r12 + 0x10]
mov eax, edi
jmp 0x1400e90f0
xor r14d, r14d
cmp dword [rbx + 0x1398], 0
je 0x1400e8e35
cmp rcx, qword [rbx + 0x1190]
jne 0x1400e8e35
cmp esi, 0x23
jne 0x1400e8d69
cmp qword [rbx + 0x11a0], 0
mov edi, 1
mov dword [rbp - 0x3c], edi
je 0x1400e91b0
test r14, r14
je 0x1400e8e59
mov rsi, qword [r14 + 8]
test rsi, rsi
jne 0x1400e8e67
mov rsi, qword [rbx + 0x1198]
mov r15d, dword [rbx + 0x11a0]
sub r15d, edi
cmp rsi, r14
je 0x1400e91b0
mov r12, rsi
mov r13, rsi
test rsi, rsi
je 0x1400e91dd
mov r13, qword [r13 + 0x10]
mov rsi, qword [rsi + 8]
test byte [r13 + 0x28], dil
jne 0x1400e8ea9
lea rcx, [r13 + 0x68]
call qword [sym.imp.USER32.dll_IsRectEmpty]
test eax, eax
jne 0x1400e8ea9
cmp dword [r13 + 0x24], 0xfffffffe
jne 0x1400e8e02
sub r15d, edi
test rsi, rsi
jne 0x1400e8ece
cmp dword [rbx + 0x1398], esi
jne 0x1400e8f50
mov r15d, dword [rbx + 0x11a0]
mov rsi, qword [rbx + 0x1198]
sub r15d, edi
cmp rsi, r14
je 0x1400e8e02
jmp 0x1400e8e73
cmp dword [rbx + 0x1398], 0
je 0x1400e91b0
mov eax, dword [rbx + 0x139c]
test eax, eax
jle 0x1400e91b0
mov r15d, dword [rbx + 0x1138]
xor r14d, r14d
mov edi, 1
mov dword [rbx + 0x13a0], edi
test eax, eax
jle 0x1400e8f32
cmp esi, 0x21
lea eax, [rdi + 0x25]
cmove r12d, eax
mov rax, qword [rbx]
mov edx, r12d
mov rcx, rbx
call qword [rax + 0x800]
add r14d, edi
cmp r14d, dword [rbx + 0x139c]
jl 0x1400e8f17
and dword [rbx + 0x13a0], 0
mov edx, dword [rbx + 0x1138]
cmp r15d, edx
je 0x1400e8f50
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x4b8]
mov eax, edi
jmp 0x1400e91b3
mov rdx, rax
test rax, rax
je 0x1400e91e9
cmp qword [rdx + 0x10], 0
mov rax, qword [rax]
je 0x1400e91e3
cmp qword [rdx + 0x10], r13
je 0x1400e8fd6
add ecx, edi
test rax, rax
jne 0x1400e8f57
mov rdx, r13
lea rcx, [0x14025ecf8]
call fcn.14001b868
mov rsi, rax
test rax, rax
je 0x1400e90ed
mov rax, qword [rax]
xor edx, edx
mov rcx, rsi
call qword [rax + 0x198]
test eax, eax
je 0x1400e8fdb
mov rcx, qword [rsi + 0xc0]
test rcx, rcx
je 0x1400e90ed
mov rcx, qword [rcx + 0x40]
xor r9d, r9d
mov edx, 0x100
lea r8d, [r9 + 0x24]
call qword [sym.imp.USER32.dll_SendMessageA]
jmp 0x1400e90ed
mov r15d, ecx
jmp 0x1400e8f7e
test dword [r13 + 0x28], 0x40000
mov rcx, rbx
je 0x1400e8ff7
mov r8, r13
xor edx, edx
call fcn.1400e7f6c
jmp 0x1400e8f50
mov rax, qword [rbx]
mov rdx, rsi
call qword [rax + 0x7d0]
mov dword [rbp - 0x3c], eax
test eax, eax
je 0x1400e90ed
jmp 0x1400e8f50
cmp dword [0x14025ee5c], 0
je 0x1400e91b0
cmp dword [rbx + 0x1380], 0
jne 0x1400e91b0
and dword [rbp - 0x40], 0
lea rcx, [rbx + 0x13e8]
lea r8, [rbp - 0x40]
mov edx, esi
call fcn.14005ac0c
test eax, eax
je 0x1400e91b0
mov edx, dword [rbp - 0x40]
xor r8d, r8d
mov rcx, rbx
call fcn.1400e7f6c
jmp 0x1400e8d69
mov edi, 1
lea rcx, [0x14025ecf8]
mov rdx, rax
mov dword [rbp - 0x3c], edi
call fcn.14001b868
mov rsi, rax
test rax, rax
je 0x1400e91b0
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x1e0]
test eax, eax
jne 0x1400e90a8
mov r8, qword [rsi]
xor edx, edx
mov rcx, rsi
call qword [r8 + 0x198]
test eax, eax
jne 0x1400e91b0
mov rcx, qword [rbx + 0xa0]
test rcx, rcx
jne 0x1400e90c1
mov rcx, qword [rbx + 0x40]
call qword [sym.imp.USER32.dll_GetParent]
mov rcx, rax
call fcn.14001430c
xor r9d, r9d
mov edx, 0x362
mov r8d, 0xe001
mov rcx, qword [rax + 0x40]
call qword [sym.imp.USER32.dll_SendMessageA]
mov rax, qword [rbx]
mov rdx, rsi
mov rcx, rbx
call qword [rax + 0x7d0]
mov eax, dword [rbp - 0x40]
mov rsi, qword [rbp - 0x30]
cmp r13, rsi
je 0x1400e91b0
test eax, eax
je 0x1400e9119
cmp dword [rbx + 0x13a0], 0
jne 0x1400e9119
mov rax, qword [rbx]
mov edx, r15d
mov rcx, rbx
call qword [rax + 0x4b8]
cmp dword [0x14026a04c], 0
je 0x1400e9129
mov dword [rbx + 0x113c], r15d
mov rcx, qword [rbx + 0x40]
lea rdx, [rbp - 0x20]
xorps xmm0, xmm0
mov dword [rbx + 0x1138], r15d
movdqu xmmword [rbp - 0x20], xmm0
call qword [sym.imp.USER32.dll_GetClientRect]
movups xmm0, xmmword [r13 + 0x68]
movq rax, xmm0
shr rax, 0x20
movups xmmword [rbp - 0x30], xmm0
cmp eax, dword [rbp - 0x1c]
jl 0x1400e919b
mov rax, qword [rbp - 0x28]
shr rax, 0x20
cmp eax, dword [rbp - 0x14]
jg 0x1400e919b
test rsi, rsi
je 0x1400e9180
mov rcx, qword [rbx + 0x40]
lea rdx, [rsi + 0x68]
mov r8d, edi
call qword [sym.imp.USER32.dll_InvalidateRect]
mov rcx, qword [rbx + 0x40]
lea rdx, [rbp - 0x30]
mov r8d, edi
call qword [sym.imp.USER32.dll_InvalidateRect]
mov rcx, qword [rbx + 0x40]
call qword [sym.imp.USER32.dll_UpdateWindow]
mov edx, dword [r13 + 0x24]
cmp edx, 0xffffffff
je 0x1400e91b0
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x830]
mov eax, dword [rbp - 0x3c]
mov rcx, qword [rbp - 0x10]
xor rcx, rsp
call fcn.140192540
mov rbx, qword [rsp + 0xb0]
add rsp, 0x60
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.14000daf0
int3
call fcn.14000daf0
int3
call fcn.14000daf0
int3
call fcn.14000daf0
int3