Function at 0x14002bcd0
Capabilities:
Log keystrokes via polling

Disassembly:
push rbx
push rsi
push r12
sub rsp, 0x50
mov r12, r8
mov rsi, rdx
mov rbx, rcx
test rdx, rdx
jne 0x14002bd06
call fcn.14000f910
mov ecx, 0xa
mov edx, 0xe
test eax, eax
cmovne ecx, edx
mov eax, ecx
add rsp, 0x50
pop r12
pop rsi
pop rbx
ret
mov eax, dword [rdx + 0x28]
cmp eax, 0xc
jne 0x14002c280
add rcx, 0x50
mov qword [rsp + 0x40], r13
call fcn.140009730
test al, al
jne 0x14002bd7c
mov ecx, 0x1b
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x14002bd44
mov ecx, 0xd
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x14002bd7c
mov rcx, qword [0x140296048]
lea rdx, [rsi + 0xa]
call qword [sym.imp.USER32.dll_KillTimer]
mov rdx, rsi
mov rcx, rbx
call fcn.14002c290
lea rcx, [rsi + 8]
mov edx, eax
call fcn.14007fc00
mov eax, dword [rsi + 0x28]
mov r13, qword [rsp + 0x40]
add rsp, 0x50
pop r12
pop rsi
pop rbx
ret
mov qword [rsp + 0x70], rbp
mov qword [rsp + 0x48], rdi
mov rdx, r12
mov rcx, rbx
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x30], r15
call fcn.14003b850
mov rcx, r12
mov edi, eax
call fcn.14003b0b0
xor r15d, r15d
test eax, eax
je 0x14002bdc0
lea rcx, [rbx + 0x1058]
call fcn.14003b0b0
lea ebp, [r15 + 1]
test eax, eax
je 0x14002bdc3
mov ebp, r15d
lea rcx, [rbx + 0x50]
call fcn.140009730
test al, al
jne 0x14002be0e
test edi, edi
jne 0x14002bdd8
test ebp, ebp
je 0x14002be0e
mov rcx, qword [0x140296048]
lea rdx, [rsi + 0xa]
call qword [sym.imp.USER32.dll_KillTimer]
mov ecx, dword [rbx + 0xfe0]
test ecx, ecx
je 0x14002bdf9
call qword [sym.imp.KERNEL32.dll_Sleep]
xor edx, edx
mov rcx, rsi
call fcn.1400c12a0
lea rcx, [rsi + 8]
mov edx, eax
call fcn.14007fc00
mov rcx, qword [rsi + 0x110]
xor r8d, r8d
mov rdx, r12
add rcx, 0x20
call fcn.1400c64c0
mov rcx, qword [rbx + 0xc58]
mov r14, rax
test rcx, rcx
je 0x14002be3d
mov rdx, qword [rcx]
call qword [rdx + 0x18]
mov edi, eax
jmp 0x14002be40
mov edi, r15d
lea rcx, [rbx + 0x50]
mov dword [rsp + 0x78], edi
call fcn.140009730
test al, al
je 0x14002bee1
test edi, edi
je 0x14002bfcc
cmp dword [rbx + 0xd24], r15d
jne 0x14002bf14
mov rcx, r14
call fcn.1400094d0
test al, al
jne 0x14002be91
mov rdx, r14
mov rcx, rbx
call fcn.140039fe0
mov rcx, rax
call fcn.1400094d0
test al, al
jne 0x14002bf14
mov rcx, qword [rsi + 0x110]
add rcx, 0x20
call fcn.1400c64b0
test eax, eax
jne 0x14002bebc
mov rcx, qword [rsi + 0x110]
add rcx, 0xf0
call fcn.1400c64b0
test eax, eax
jne 0x14002bf14
mov rcx, r12
call fcn.14003b2b0
test eax, eax
jne 0x14002bfcc
lea rcx, [rbx + 0x1058]
call fcn.14003b2b0
test eax, eax
jne 0x14002bf14
jmp 0x14002bfcc
mov rcx, qword [rsi + 0x110]
add rcx, 0x20
call fcn.1400c64b0
test eax, eax
jne 0x14002bfcc
mov rcx, qword [rsi + 0x110]
add rcx, 0xf0
call fcn.1400c64b0
test eax, eax
je 0x14002bfcc
mov rcx, qword [rbx + 0x348]
test rcx, rcx
je 0x14002bfcc
mov dword [rsp + 0x20], r15d
mov dword [rsp + 0x88], r15d
mov rax, qword [rcx]
lea r8, [rsp + 0x20]
mov edx, 0x12
call qword [rax + 0x40]
mov rcx, qword [rbx + 0x348]
lea r8, [rsp + 0x88]
mov rax, qword [rcx]
mov edx, 0x11
call qword [rax + 0x40]
mov edi, dword [rsp + 0x88]
test edi, edi
je 0x14002bfa6
mov rcx, r12
call fcn.140009ff0
mov edx, dword [rsp + 0x20]
cmp eax, edx
jb 0x14002bf7a
sub eax, edx
jmp 0x14002bf89
or ecx, 0xffffffff
sub ecx, edx
cmp ecx, 0x1388
ja 0x14002bf95
add eax, ecx
cmp eax, edi
mov ecx, r15d
seta cl
test ecx, ecx
jne 0x14002bfa6
mov rdx, qword [rbx + 0x348]
mov rcx, rbx
call fcn.140028ff0
jmp 0x14002bfcc
mov r8d, dword [rbx + 0xd20]
mov rcx, qword [0x140296048]
lea rdx, [rsi + 0xa]
lea r9, [0x14002ea90]
call qword [sym.imp.USER32.dll_SetTimer]
mov dword [rbx + 0xd24], r15d
lea rcx, [rbx + 0x50]
call fcn.140009730
test al, al
je 0x14002c044
mov r14d, dword [rsp + 0x78]
test r14d, r14d
je 0x14002c086
test ebp, ebp
jne 0x14002c032
mov rcx, qword [rsi + 0x110]
add rcx, 0x20
call fcn.1400c64b0
test eax, eax
je 0x14002c016
mov rcx, qword [rsi + 0x110]
add rcx, 0xf0
call fcn.1400c64b0
test eax, eax
je 0x14002c032
mov rcx, r12
call fcn.14003b2b0
test eax, eax
je 0x14002c086
lea rcx, [rbx + 0x1058]
call fcn.14003b2b0
test eax, eax
jne 0x14002c086
mov r15d, 1
mov dword [rbx + 0xd24], 0
jmp 0x14002c086
mov rcx, qword [rsi + 0x110]
add rcx, 0x20
call fcn.1400c64b0
test eax, eax
je 0x14002c081
mov rcx, qword [rsi + 0x110]
add rcx, 0xf0
call fcn.1400c64b0
test eax, eax
jne 0x14002c081
mov rcx, r14
call fcn.140009d40
test al, al
jne 0x14002c081
mov r15d, 1
mov r14d, dword [rsp + 0x78]
cmp qword [rbx + 0x348], 0
mov rbp, qword [rsp + 0x70]
je 0x14002c241
mov rcx, qword [rsi + 0x110]
add rcx, 0x20
call fcn.1400c64b0
test eax, eax
je 0x14002c241
mov rcx, qword [rbx + 0x348]
xor r8d, r8d
xor edx, edx
call fcn.1400bbdd0
bt eax, 0x12
jae 0x14002c241
mov rdi, qword [rbx + 0x10]
test rdi, rdi
je 0x14002c17d
nop dword [rax]
cmp qword [rdi], 0
jne 0x14002c0ff
lea rdx, str.F:CheckPointsTPDrv_builderSuperMan1LibSynList.h
lea rcx, str.m_pItem
mov r8d, 0x60
call fcn.1400eb260
mov rcx, qword [rdi]
lea rdx, str.Right_Edge_Pull
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
test eax, eax
jne 0x14002c11e
mov rdi, qword [rdi + 8]
test rdi, rdi
jne 0x14002c0e0
jmp 0x14002c17d
mov rcx, qword [rdi]
test rcx, rcx
je 0x14002c17d
mov rdx, r12
call fcn.140038ec0
cmp eax, 1
jne 0x14002c17d
cmp dword [rbx + 0xf60], 0
mov dword [rbx + 0xf64], eax
jne 0x14002c15e
mov rcx, qword [rbx + 0x58]
test rcx, rcx
jne 0x14002c14f
lea rcx, [rbx + 0x70]
mov rax, qword [rcx]
mov edx, 1
call qword [rax + 0x60]
test eax, eax
jne 0x14002c16e
inc dword [rbx + 0x7c0]
mov dword [rbx + 0xf60], 1
mov rdx, qword [rbx + 0x348]
mov rcx, rbx
call fcn.140028ff0
mov rdi, qword [rbx + 0x10]
test rdi, rdi
je 0x14002c241
nop word [rax + rax]
cmp qword [rdi], 0
jne 0x14002c1af
lea rdx, str.F:CheckPointsTPDrv_builderSuperMan1LibSynList.h
lea rcx, str.m_pItem
mov r8d, 0x60
call fcn.1400eb260
mov rcx, qword [rdi]
lea rdx, str.4FVertical_Scrolling
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
test eax, eax
jne 0x14002c1ce
mov rdi, qword [rdi + 8]
test rdi, rdi
jne 0x14002c190
jmp 0x14002c241
mov rdi, qword [rdi]
test rdi, rdi
je 0x14002c241
xor r8d, r8d
xor edx, edx
mov rcx, rdi
call fcn.1400bc0b0
test al, 2
je 0x14002c241
mov rdx, r12
mov rcx, rdi
call fcn.140038ec0
cmp eax, 1
jne 0x14002c241
cmp dword [rbx + 0xf60], 0
mov dword [rbx + 0xf64], eax
jne 0x14002c222
mov rcx, qword [rbx + 0x58]
test rcx, rcx
jne 0x14002c213
lea rcx, [rbx + 0x70]
mov rax, qword [rcx]
mov edx, 1
call qword [rax + 0x60]
test eax, eax
jne 0x14002c232
inc dword [rbx + 0x7c0]
mov dword [rbx + 0xf60], 1
mov rdx, qword [rbx + 0x348]
mov rcx, rbx
call fcn.140028ff0
mov rdi, qword [rsp + 0x48]
test r15d, r15d
mov r15, qword [rsp + 0x30]
jne 0x14002c262
lea rcx, [rbx + 0x50]
call fcn.140009730
test al, al
je 0x14002c273
test r14d, r14d
jne 0x14002c273
mov rcx, qword [0x140296048]
lea rdx, [rsi + 0xa]
call qword [sym.imp.USER32.dll_KillTimer]
mov r14, qword [rsp + 0x38]
mov eax, dword [rsi + 0x28]
mov r13, qword [rsp + 0x40]
add rsp, 0x50
pop r12
pop rsi
pop rbx
ret