Function at 0x140108b70
Capabilities:
Log keystrokes via polling

Disassembly:
push rbp
push rbx
push rdi
mov rbp, rsp
sub rsp, 0x60
mov edi, edx
mov rbx, rcx
cmp edx, 0x27
ja 0x140108b95
movabs rcx, 0xa100000000
bt rcx, rdi
jb 0x140108bac
cmp edi, 0x6b
je 0x140108bac
cmp edi, 0xbb
je 0x140108bac
xor al, al
add rsp, 0x60
pop rdi
pop rbx
pop rbp
ret
cmp qword [rbx + 0xa0], 0
je 0x1401093ff
mov qword [rsp + 0x80], rsi
mov ecx, 0x11
mov qword [rsp + 0x90], r14
mov qword [rsp + 0x98], r15
call qword [sym.imp.USER32.dll_GetKeyState]
movzx esi, ax
mov ecx, 0x10
shr si, 0xf
call qword [sym.imp.USER32.dll_GetKeyState]
shr ax, 0xf
mov ecx, edi
sub ecx, 0x20
je 0x14010913f
sub ecx, 5
je 0x140108eb4
sub ecx, 2
je 0x140108cae
sub ecx, 0x44
je 0x140108c1e
cmp ecx, 0x50
jne 0x1401093e7
cmp edi, 0x6b
jne 0x140108c2d
test sil, sil
jne 0x140108c4a
jmp 0x1401093e7
cmp edi, 0xbb
jne 0x1401093e7
test sil, sil
je 0x1401093e7
test al, al
je 0x1401093e7
test byte [rbx + 0x40], 0x10
je 0x140108c66
mov r8, qword [rbx + 0x100]
xor r9d, r9d
mov rdx, qword [rbx + 0x10]
mov rcx, rbx
call fcn.140106bc0
xor r14d, r14d
cmp dword [rbx + 0xf4], r14d
jbe 0x1401093e7
nop word [rax + rax]
mov r8, qword [rbx + 0xe8]
xor r9d, r9d
mov rdx, qword [rbx + 0x18]
mov rcx, rbx
mov eax, r14d
mov r8, qword [r8 + rax*8]
call fcn.140106bc0
inc r14d
cmp r14d, dword [rbx + 0xf4]
jb 0x140108c80
jmp 0x1401093e7
mov rdi, qword [rbx + 0xa0]
test byte [rdi + 0x34], 1
jne 0x1401093e7
test byte [rdi], 4
jne 0x140108d2b
mov rcx, qword [rbx]
lea r9, [rbp - 0x20]
xor eax, eax
xorps xmm0, xmm0
mov qword [rbp - 0x10], rax
mov r8, rdi
mov rax, qword [rbx + 0xc8]
mov edx, 8
mov qword [rsp + 0x20], rax
movups xmmword [rbp - 0x20], xmm0
call qword [rbx + 0xc0]
cmp byte [rbp - 0x20], 0
jne 0x1401093e7
or dword [rdi], 4
mov rcx, rbx
call fcn.140106dd0
mov rcx, qword [rbx]
xor r8d, r8d
xor edx, edx
call qword [sym.imp.USER32.dll_InvalidateRect]
mov rcx, qword [rbx]
call qword [sym.imp.USER32.dll_UpdateWindow]
mov rcx, rbx
call fcn.140105ca0
jmp 0x1401093e7
mov rdx, qword [rbx + 0x130]
mov eax, dword [rdi + 0x2c]
inc eax
cmp eax, dword [rdx]
jae 0x1401093e7
mov ecx, eax
mov rax, qword [rdx + 8]
mov rsi, qword [rax + rcx*8]
mov eax, dword [rdi + 0x30]
inc eax
cmp dword [rsi + 0x30], eax
jne 0x1401093e7
mov qword [rbx + 0xa0], rsi
mov rcx, rbx
mov eax, dword [rsi + 0x2c]
mov dword [rbx + 0xac], eax
mov edx, dword [rsi + 0x2c]
inc edx
call fcn.1401080d0
xor r8d, r8d
mov rdx, rsi
mov rcx, rbx
call fcn.1401078b0
mov rax, qword [rbx + 0xa0]
xor r14d, r14d
mov ecx, dword [rax + 0x2c]
mov rax, qword [rbx + 0x130]
mov r8d, dword [rax]
test r8d, r8d
je 0x14010907d
lea r15d, [r8 - 1]
mov r11d, r14d
cmp ecx, r15d
mov eax, r15d
mov edi, r15d
mov esi, r14d
cmovbe eax, ecx
mov edx, r14d
cmp ecx, eax
cmovbe r8d, ecx
cmovbe r11d, eax
test r8d, r8d
je 0x140108e06
mov r9d, r14d
nop dword [rax]
mov rax, qword [rbx + 0x130]
mov rcx, qword [rax + 8]
mov r10, qword [r9 + rcx]
mov eax, dword [r10]
test al, 2
je 0x140108dfb
and eax, 0xfffffffd
cmp edi, edx
mov dword [r10], eax
mov eax, edx
cmovbe eax, edi
mov edi, eax
cmp esi, edx
jae 0x140108dfb
mov esi, edx
inc edx
add r9, 8
cmp edx, r8d
jb 0x140108dd0
cmp r8d, r11d
ja 0x140108e46
nop dword [rax + rax]
mov rax, qword [rbx + 0x130]
mov rcx, qword [rax + 8]
mov r9, qword [rcx + r8*8]
mov eax, dword [r9]
test al, 0x20
jne 0x140108e3e
test al, 2
jne 0x140108e3e
xor eax, 2
cmp edi, r8d
mov dword [r9], eax
cmova edi, r8d
cmp esi, r8d
cmovb esi, r8d
inc r8d
cmp r8d, r11d
jbe 0x140108e10
lea r8d, [r11 + 1]
cmp r8d, r15d
ja 0x140108e87
nop
mov rax, qword [rbx + 0x130]
mov rcx, qword [rax + 8]
mov r9, qword [rcx + r8*8]
mov eax, dword [r9]
test al, 2
je 0x140108e7f
and eax, 0xfffffffd
cmp edi, r8d
mov dword [r9], eax
mov eax, r8d
cmovbe eax, edi
mov edi, eax
cmp esi, r8d
jae 0x140108e7f
mov esi, r8d
inc r8d
cmp r8d, r15d
jbe 0x140108e50
cmp edi, esi
ja 0x140109083
mov rax, qword [rbx + 0xc8]
xor r9d, r9d
mov rcx, qword [rbx]
xor r8d, r8d
mov edx, 0xb
mov qword [rsp + 0x20], rax
call qword [rbx + 0xc0]
jmp 0x140109083
mov rdi, qword [rbx + 0xa0]
test byte [rdi + 0x34], 1
jne 0x140108ed9
test byte [rdi], 4
je 0x140108ed9
xor r8d, r8d
mov rdx, rdi
mov rcx, rbx
call fcn.140107040
jmp 0x1401093e7
mov ecx, dword [rdi + 0x30]
test ecx, ecx
je 0x1401093e7
mov edi, dword [rdi + 0x2c]
dec ecx
test edi, edi
je 0x1401093e7
mov rax, qword [rbx + 0x130]
mov rdx, qword [rax + 8]
nop dword [rax]
dec edi
mov rsi, qword [rdx + rdi*8]
cmp dword [rsi + 0x30], ecx
je 0x140108f14
test edi, edi
jne 0x140108f00
jmp 0x1401093e7
mov qword [rbx + 0xa0], rsi
mov edx, edi
mov eax, dword [rsi + 0x2c]
mov rcx, rbx
mov dword [rbx + 0xac], eax
call fcn.1401080d0
xor r8d, r8d
mov rdx, rsi
mov rcx, rbx
call fcn.1401078b0
mov rax, qword [rbx + 0x130]
xor r14d, r14d
mov r8d, edi
mov ecx, dword [rax]
test ecx, ecx
je 0x14010907d
lea r11d, [rcx - 1]
cmp edi, r11d
jbe 0x140108f67
mov r8d, ecx
mov eax, r11d
mov ecx, r11d
jmp 0x140108f6b
mov ecx, edi
mov eax, edi
cmp edi, eax
mov r15d, r14d
mov edi, r11d
mov esi, r14d
cmovbe r15d, ecx
mov edx, r14d
test r8d, r8d
je 0x140108fc6
mov r9, r14
nop word [rax + rax]
mov rax, qword [rbx + 0x130]
mov rcx, qword [rax + 8]
mov r10, qword [r9 + rcx]
mov eax, dword [r10]
test al, 2
je 0x140108fbb
and eax, 0xfffffffd
cmp edi, edx
mov dword [r10], eax
mov eax, edx
cmovbe eax, edi
mov edi, eax
cmp esi, edx
jae 0x140108fbb
mov esi, edx
inc edx
add r9, 8
cmp edx, r8d
jb 0x140108f90
cmp r8d, r15d
ja 0x140109009
nop dword [rax + rax]
mov rax, qword [rbx + 0x130]
mov edx, r8d
mov rcx, qword [rax + 8]
mov r9, qword [rcx + rdx*8]
mov eax, dword [r9]
test al, 0x20
jne 0x140109001
test al, 2
jne 0x140109001
xor eax, 2
cmp edi, r8d
mov dword [r9], eax
cmova edi, r8d
cmp esi, r8d
cmovb esi, r8d
inc r8d
cmp r8d, r15d
jbe 0x140108fd0
lea r8d, [r15 + 1]
cmp r8d, r11d
ja 0x140109057
nop dword [rax]
nop word [rax + rax]
mov rax, qword [rbx + 0x130]
mov rcx, qword [rax + 8]
mov r9, qword [rcx + r8*8]
mov eax, dword [r9]
test al, 2
je 0x14010904f
and eax, 0xfffffffd
cmp edi, r8d
mov dword [r9], eax
mov eax, r8d
cmovbe eax, edi
mov edi, eax
cmp esi, r8d
jae 0x14010904f
mov esi, r8d
inc r8d
cmp r8d, r11d
jbe 0x140109020
cmp edi, esi
ja 0x140109083
mov rax, qword [rbx + 0xc8]
xor r9d, r9d
mov rcx, qword [rbx]
xor r8d, r8d
mov edx, 0xb
mov qword [rsp + 0x20], rax
call qword [rbx + 0xc0]
jmp 0x140109083
mov esi, dword [rbp + 0x28]
mov edi, dword [rbp + 0x28]
mov rax, qword [rbx + 0x130]
cmp esi, dword [rax]
jae 0x140109107
cmp edi, esi
ja 0x140109107
mov eax, dword [rbx + 0x88]
sub esi, eax
mov r9d, dword [rbx + 0x78]
inc esi
imul esi, dword [rbx + 0x7c]
sub edi, eax
imul edi, dword [rbx + 0x7c]
mov edx, dword [rbx + 0xf8]
sub edx, dword [rbx + 0x8c]
add edx, dword [rbx + 0x98]
add esi, r9d
mov dword [rbp - 0x30], r14d
test byte [rbx + 0x40], 4
lea r8d, [rdi + r9]
je 0x1401090d4
mov r14d, dword [rbx + 0x80]
mov eax, dword [rbx + 0x70]
mov rcx, qword [rbx]
sub eax, r14d
cmp edx, eax
cmovg edx, eax
cmp r8d, r9d
mov dword [rbp - 0x28], edx
lea rdx, [rbp - 0x30]
cmovl r8d, r9d
cmp esi, dword [rbx + 0x74]
mov dword [rbp - 0x2c], r8d
cmovg esi, dword [rbx + 0x74]
xor r8d, r8d
mov dword [rbp - 0x24], esi
call qword [sym.imp.USER32.dll_InvalidateRect]
mov rcx, qword [rbx + 0x38]
test rcx, rcx
je 0x1401093e7
xor r9d, r9d
xor r8d, r8d
mov edx, 0x41c
call qword [sym.imp.USER32.dll_SendMessageW]
mov qword [rbx + 0x160], 0xffffffffffffffff
mov dword [rbx + 0x190], 0xffffffff
jmp 0x1401093e7
test sil, sil
je 0x140109213
mov rcx, qword [rbx + 0xa0]
xor r14d, r14d
mov eax, dword [rcx + 0x2c]
mov dword [rbx + 0xac], eax
mov edx, dword [rcx + 0x2c]
mov rcx, qword [rbx + 0x130]
mov r8d, dword [rcx]
test r8d, r8d
je 0x140109206
lea edi, [r8 - 1]
mov r15d, r14d
cmp edx, edi
mov eax, edi
mov esi, r14d
cmovbe eax, edx
cmp edx, eax
cmovbe r8d, edx
cmovbe r15d, eax
cmp r8d, r15d
ja 0x1401091d4
mov rax, qword [rbx + 0x130]
mov r11d, edi
mov r10d, edi
mov rcx, qword [rax + 8]
mov r9, qword [rcx + r8*8]
mov eax, dword [r9]
test al, 0x20
jne 0x1401091c5
xor eax, 2
mov edi, r8d
cmp r10d, r8d
mov dword [r9], eax
cmovbe edi, r10d
cmp esi, r8d
jae 0x1401091c5
mov esi, r8d
inc r8d
cmp r8d, r15d
jbe 0x140109191
mov rcx, qword [rbx + 0x130]
cmp edi, esi
ja 0x14010920c
mov rax, qword [rbx + 0xc8]
xor r9d, r9d
mov rcx, qword [rbx]
xor r8d, r8d
mov edx, 0xb
mov qword [rsp + 0x20], rax
call qword [rbx + 0xc0]
mov rcx, qword [rbx + 0x130]
cmp esi, dword [rcx]
jmp 0x14010936c
mov esi, dword [rbp + 0x28]
mov edi, dword [rbp + 0x28]
cmp esi, dword [rcx]
jmp 0x14010936c
test al, al
je 0x1401093e7
mov edx, dword [rbx + 0xac]
mov rax, qword [rbx + 0xa0]
mov ecx, dword [rax + 0x2c]
cmp ecx, edx
mov rax, qword [rbx + 0x130]
mov r9d, ecx
cmovbe r9d, edx
cmovbe edx, ecx
xor r14d, r14d
mov r8d, dword [rax]
test r8d, r8d
je 0x14010935d
lea r15d, [r8 - 1]
mov r11d, r14d
cmp r9d, r15d
mov eax, r15d
mov edi, r15d
mov esi, r14d
cmovbe eax, r9d
cmp edx, eax
cmovbe r8d, edx
cmovbe r11d, eax
mov edx, r14d
test r8d, r8d
je 0x1401092b6
mov r9d, r14d
nop dword [rax]
mov rax, qword [rbx + 0x130]
mov rcx, qword [rax + 8]
mov r10, qword [r9 + rcx]
mov eax, dword [r10]
test al, 2
je 0x1401092ab
and eax, 0xfffffffd
cmp edi, edx
mov dword [r10], eax
mov eax, edx
cmovbe eax, edi
mov edi, eax
cmp esi, edx
jae 0x1401092ab
mov esi, edx
inc edx
add r9, 8
cmp edx, r8d
jb 0x140109280
cmp r8d, r11d
ja 0x1401092f6
nop dword [rax + rax]
mov rax, qword [rbx + 0x130]
mov rcx, qword [rax + 8]
mov r9, qword [rcx + r8*8]
mov eax, dword [r9]
test al, 0x20
jne 0x1401092ee
test al, 2
jne 0x1401092ee
xor eax, 2
cmp edi, r8d
mov dword [r9], eax
cmova edi, r8d
cmp esi, r8d
cmovb esi, r8d
inc r8d
cmp r8d, r11d
jbe 0x1401092c0
lea r8d, [r11 + 1]
cmp r8d, r15d
ja 0x140109337
nop
mov rax, qword [rbx + 0x130]
mov rcx, qword [rax + 8]
mov r9, qword [rcx + r8*8]
mov eax, dword [r9]
test al, 2
je 0x14010932f
and eax, 0xfffffffd
cmp edi, r8d
mov dword [r9], eax
mov eax, r8d
cmovbe eax, edi
mov edi, eax
cmp esi, r8d
jae 0x14010932f
mov esi, r8d
inc r8d
cmp r8d, r15d
jbe 0x140109300
cmp edi, esi
ja 0x140109363
mov rax, qword [rbx + 0xc8]
xor r9d, r9d
mov rcx, qword [rbx]
xor r8d, r8d
mov edx, 0xb
mov qword [rsp + 0x20], rax
call qword [rbx + 0xc0]
jmp 0x140109363
mov esi, dword [rbp + 0x28]
mov edi, dword [rbp + 0x28]
mov rax, qword [rbx + 0x130]
cmp esi, dword [rax]
jae 0x1401093e7
cmp edi, esi
ja 0x1401093e7
mov eax, dword [rbx + 0x88]
sub esi, eax
mov r9d, dword [rbx + 0x78]
inc esi
imul esi, dword [rbx + 0x7c]
sub edi, eax
imul edi, dword [rbx + 0x7c]
mov edx, dword [rbx + 0xf8]
sub edx, dword [rbx + 0x8c]
add edx, dword [rbx + 0x98]
add esi, r9d
mov dword [rbp - 0x30], r14d
test byte [rbx + 0x40], 4
lea r8d, [rdi + r9]
je 0x1401093b4
mov r14d, dword [rbx + 0x80]
mov eax, dword [rbx + 0x70]
mov rcx, qword [rbx]
sub eax, r14d
cmp edx, eax
cmovg edx, eax
cmp r8d, r9d
mov dword [rbp - 0x28], edx
lea rdx, [rbp - 0x30]
cmovl r8d, r9d
cmp esi, dword [rbx + 0x74]
mov dword [rbp - 0x2c], r8d
cmovg esi, dword [rbx + 0x74]
xor r8d, r8d
mov dword [rbp - 0x24], esi
call qword [sym.imp.USER32.dll_InvalidateRect]
mov r14, qword [rsp + 0x90]
mov r15, qword [rsp + 0x98]
mov rsi, qword [rsp + 0x80]
mov al, 1
add rsp, 0x60
pop rdi
pop rbx
pop rbp
ret