Function at 0x14012caa0
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
lea rbp, [rsp - 0x4f]
sub rsp, 0x90
mov eax, r8d
mov rsi, rcx
sub eax, 0x87
je 0x14012cbf7
sub eax, 0x79
je 0x14012cbd2
sub eax, 1
je 0x14012cbdc
cmp eax, 0x109
je 0x14012cafe
mov rax, qword [rbp + 0x7f]
mov rcx, qword [rcx + 0x20]
mov qword [rsp + 0x20], rax
call qword [sym.imp.USER32.dll_CallWindowProcW]
jmp 0x14012cd1f
movsxd rdx, dword [rcx + 0x3c]
shr r9, 0x10
test r9w, r9w
jle 0x14012cb1e
lea edi, [rdx - 1]
test edi, edi
jns 0x14012cb18
mov edi, dword [rcx + 0x38]
dec edi
mov rcx, qword [rcx + 0x18]
jmp 0x14012cb31
mov eax, dword [rsi + 0x38]
lea ecx, [rdx + 1]
xor edi, edi
dec eax
cmp ecx, eax
cmovle edi, ecx
mov rcx, qword [rsi + 0x18]
mov r8, rdx
mov dword [rbp - 1], 3
mov edx, 0x102b
mov dword [rbp - 5], 0
lea r9, [rbp - 0x11]
call qword [sym.imp.USER32.dll_SendMessageW]
movsxd r8, dword [rsi + 0x3c]
mov edx, 0x1015
mov rcx, qword [rsi + 0x18]
mov r9, r8
call qword [sym.imp.USER32.dll_SendMessageW]
mov rcx, qword [rsi + 0x18]
call qword [sym.imp.USER32.dll_UpdateWindow]
mov rcx, qword [rsi + 0x18]
lea r9, [rbp - 0x11]
movsxd rbx, edi
mov edx, 0x102b
mov r8, rbx
mov dword [rbp - 1], 3
mov dword [rbp - 5], 3
call qword [sym.imp.USER32.dll_SendMessageW]
mov rcx, qword [rsi + 0x18]
mov r9, rbx
mov r8, rbx
mov edx, 0x1015
call qword [sym.imp.USER32.dll_SendMessageW]
mov rcx, qword [rsi + 0x18]
call qword [sym.imp.USER32.dll_UpdateWindow]
mov dword [rsi + 0x3c], edi
mov edx, 0x1013
mov rcx, qword [rsi + 0x18]
mov r9d, 1
movsxd r8, edi
call qword [sym.imp.USER32.dll_SendMessageW]
mov eax, 1
jmp 0x14012cd1f
cmp r9, 0x11
jne 0x14012cbd2
movsxd r9, dword [rcx + 0x3c]
mov edx, 0x111
mov rcx, qword [rcx + 0x10]
mov r8d, 0x993
jmp 0x14012cbcc
mov rbx, qword [rbp + 0x7f]
test rbx, rbx
je 0x14012cd1a
cmp dword [rbx + 8], 0x100
jne 0x14012cbd2
mov ecx, reloc.COMCTL32.dll_InitCommonControls
call qword [sym.imp.USER32.dll_GetKeyState]
test al, al
jns 0x14012cbd2
cmp qword [rbx + 0x10], 9
jne 0x14012cc32
mov ecx, InitCommonControls
call qword [sym.imp.USER32.dll_GetKeyState]
test al, al
js 0x14012cc3c
mov rax, qword [rbx + 0x10]
cmp rax, 0x26
jne 0x14012cc51
movsxd rax, dword [rsi + 0x3c]
lea edi, [rax - 1]
test edi, edi
jns 0x14012cc4c
mov edi, dword [rsi + 0x38]
dec edi
mov r8, rax
jmp 0x14012cc77
cmp rax, 9
je 0x14012cc61
cmp rax, 0x28
jne 0x14012cd01
movsxd rdx, dword [rsi + 0x3c]
xor edi, edi
mov eax, dword [rsi + 0x38]
mov r8, rdx
dec eax
lea ecx, [rdx + 1]
cmp ecx, eax
cmovle edi, ecx
mov rcx, qword [rsi + 0x18]
lea r9, [rbp - 0x11]
mov edx, 0x102b
mov dword [rbp - 1], 3
mov dword [rbp - 5], 0
call qword [sym.imp.USER32.dll_SendMessageW]
movsxd r8, dword [rsi + 0x3c]
mov edx, 0x1015
mov rcx, qword [rsi + 0x18]
mov r9, r8
call qword [sym.imp.USER32.dll_SendMessageW]
mov rcx, qword [rsi + 0x18]
call qword [sym.imp.USER32.dll_UpdateWindow]
mov rcx, qword [rsi + 0x18]
lea r9, [rbp - 0x11]
movsxd rbx, edi
mov edx, 0x102b
mov r8, rbx
mov dword [rbp - 1], 3
mov dword [rbp - 5], 3
call qword [sym.imp.USER32.dll_SendMessageW]
mov rcx, qword [rsi + 0x18]
mov r9, rbx
mov r8, rbx
mov edx, 0x1015
call qword [sym.imp.USER32.dll_SendMessageW]
mov rcx, qword [rsi + 0x18]
call qword [sym.imp.USER32.dll_UpdateWindow]
mov dword [rsi + 0x3c], edi
movsxd r8, dword [rsi + 0x3c]
mov edx, 0x1013
mov rcx, qword [rsi + 0x18]
mov r9d, 1
call qword [sym.imp.USER32.dll_SendMessageW]
mov eax, 4
lea r11, [rsp + 0x90]
mov rbx, qword [r11 + 0x10]
mov rsi, qword [r11 + 0x18]
mov rdi, qword [r11 + 0x20]
mov rsp, r11
pop rbp
ret