Function at 0x140151310
Capabilities:
Log keystrokes via polling

Disassembly:
push rbx
push rbp
push rsi
sub rsp, 0x30
mov rbp, rcx
mov rbx, r8
mov rcx, qword [rcx + 8]
call qword [sym.imp.USER32.dll_GetMenu]
mov rsi, rax
cmp rax, rbx
jne 0x140151771
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x58], r12
mov qword [rsp + 0x60], r14
mov qword [rsp + 0x68], r15
mov dword [rbp + 0x1f4], 1
call fcn.1400f1ae0
xor edi, edi
cmp qword [rax + 8], rdi
je 0x140151380
call fcn.1400f1ae0
mov rcx, qword [rax + 8]
mov rax, qword [rcx]
mov rax, qword [rax + 0x98]
call qword [case.0x140038ca6.0]
lea r15d, [rdi + 1]
test eax, eax
jne 0x140151383
mov r15d, edi
call fcn.14013d940
mov rcx, qword [rbp + 0x168]
xor r9d, r9d
xor r8d, r8d
mov edx, 0x1032
mov r14d, eax
mov rcx, qword [rcx + 8]
call qword [sym.imp.USER32.dll_SendMessageW]
test r14d, r14d
mov ebx, 3
mov edx, 0x802c
mov rcx, rsi
cmovne ebx, edi
mov r12, rax
mov r8d, ebx
call qword [sym.imp.USER32.dll_EnableMenuItem]
mov r8d, ebx
mov edx, 0x802a
mov rcx, rsi
call qword [sym.imp.USER32.dll_EnableMenuItem]
mov r8d, ebx
mov edx, 0x80c7
mov rcx, rsi
call qword [sym.imp.USER32.dll_EnableMenuItem]
test r14d, r14d
je 0x1401513f6
mov r8d, edi
cmp r12d, 1
je 0x1401513fc
mov r8d, 3
mov edx, 0x8030
mov rcx, rsi
call qword [sym.imp.USER32.dll_EnableMenuItem]
test r12d, r12d
mov ebx, 3
mov edx, 0x81e4
mov rcx, rsi
cmovne ebx, edi
mov r8d, ebx
call qword [sym.imp.USER32.dll_EnableMenuItem]
mov r12, qword [rsp + 0x58]
test r15d, r15d
je 0x14015143b
mov r8d, 3
test r14d, r14d
je 0x14015143e
mov r8d, edi
mov edx, 0x81e7
mov rcx, rsi
call qword [sym.imp.USER32.dll_EnableMenuItem]
mov r8d, ebx
mov edx, 0x825f
mov rcx, rsi
call qword [sym.imp.USER32.dll_EnableMenuItem]
test r15d, r15d
mov ebx, 3
mov edx, 0x8014
mov rcx, rsi
cmovne ebx, edi
mov r8d, ebx
call qword [sym.imp.USER32.dll_EnableMenuItem]
mov r8d, ebx
mov edx, 0x802e
mov rcx, rsi
call qword [sym.imp.USER32.dll_EnableMenuItem]
mov r8d, ebx
mov edx, 0x822f
mov rcx, rsi
call qword [sym.imp.USER32.dll_EnableMenuItem]
mov r8d, ebx
mov edx, 0x8026
mov rcx, rsi
call qword [sym.imp.USER32.dll_EnableMenuItem]
mov r8d, ebx
mov edx, 0x807e
mov rcx, rsi
call qword [sym.imp.USER32.dll_EnableMenuItem]
mov r8d, ebx
mov edx, 0x8120
mov rcx, rsi
call qword [sym.imp.USER32.dll_EnableMenuItem]
mov r8d, ebx
mov edx, 0x8080
mov rcx, rsi
call qword [sym.imp.USER32.dll_EnableMenuItem]
mov r8d, ebx
mov edx, 0x80c5
mov rcx, rsi
call qword [sym.imp.USER32.dll_EnableMenuItem]
mov r8d, ebx
mov edx, 0x80eb
mov rcx, rsi
call qword [sym.imp.USER32.dll_EnableMenuItem]
call fcn.14012bfe0
mov edx, 0x8204
mov rcx, rsi
mov ebx, dword [rax + 0x118]
mov eax, ebx
neg eax
sbb r8d, r8d
and r8d, 3
call qword [sym.imp.USER32.dll_EnableMenuItem]
mov r8d, 3
test ebx, ebx
mov edx, 0x820e
mov rcx, rsi
cmovne r8d, edi
call qword [sym.imp.USER32.dll_EnableMenuItem]
call fcn.14012bfe0
mov r8d, 3
mov edx, 0x8220
mov rcx, rsi
cmp dword [rax + 0x118], 2
cmovne r8d, edi
call qword [sym.imp.USER32.dll_EnableMenuItem]
mov rax, qword [rbp + 0x98]
mov r14d, 8
mov r15, qword [rsp + 0x68]
test rax, rax
je 0x140151591
mov rax, qword [rax + 0x138]
test rax, rax
je 0x140151591
mov ebx, r14d
cmp dword [rax + 0x84], edi
jne 0x140151593
mov ebx, edi
call fcn.140166630
mov edx, 0x8110
mov ecx, dword [rax + 0x61c]
neg ecx
mov rcx, rsi
sbb r8d, r8d
and r8d, r14d
call qword [sym.imp.USER32.dll_CheckMenuItem]
call fcn.140166630
mov edx, 0x817f
mov ecx, dword [rax + 0x308]
neg ecx
mov rcx, rsi
sbb r8d, r8d
and r8d, r14d
call qword [sym.imp.USER32.dll_CheckMenuItem]
call fcn.140166630
mov edx, 0x81fc
mov ecx, dword [rax + 0x620]
neg ecx
mov rcx, rsi
sbb r8d, r8d
and r8d, r14d
call qword [sym.imp.USER32.dll_CheckMenuItem]
mov r8d, ebx
mov edx, 0x8016
mov rcx, rsi
call qword [sym.imp.USER32.dll_CheckMenuItem]
cmp dword [rbp + 0x2b8], edi
mov edx, 0x811e
mov rcx, rsi
cmove edi, r14d
mov r8d, edi
call qword [sym.imp.USER32.dll_CheckMenuItem]
mov rcx, rsi
call fcn.140151260
call fcn.140166630
mov edx, 0x814c
mov ecx, dword [rax + 0x628]
neg ecx
mov rcx, rsi
sbb r8d, r8d
and r8d, r14d
call qword [sym.imp.USER32.dll_CheckMenuItem]
mov rcx, rsi
call fcn.1401511b0
cmp dword [rbp + 0x2b8], 0
mov eax, 0x403
mov edi, 0x400
mov edx, 4
mov rcx, rsi
cmove edi, eax
call qword [sym.imp.USER32.dll_GetSubMenu]
mov r8d, edi
mov edx, 1
mov rcx, rax
mov rbx, rax
call qword [sym.imp.USER32.dll_EnableMenuItem]
mov r8d, edi
mov edx, 2
mov rcx, rbx
call qword [sym.imp.USER32.dll_EnableMenuItem]
mov r8d, edi
mov edx, 3
mov rcx, rbx
call qword [sym.imp.USER32.dll_EnableMenuItem]
mov r8d, edi
mov edx, 4
mov rcx, rbx
call qword [sym.imp.USER32.dll_EnableMenuItem]
mov r8d, edi
mov edx, 5
mov rcx, rbx
call qword [sym.imp.USER32.dll_EnableMenuItem]
mov r8d, edi
mov edx, 6
mov rcx, rbx
call qword [sym.imp.USER32.dll_EnableMenuItem]
mov r8d, edi
mov edx, 7
mov rcx, rbx
call qword [sym.imp.USER32.dll_EnableMenuItem]
mov rdx, rsi
call fcn.14014fb70
mov edx, 6
mov rcx, rsi
call qword [sym.imp.USER32.dll_GetSubMenu]
xor r8d, r8d
mov edx, 0x822a
mov rcx, rax
mov rbx, rax
call qword [sym.imp.USER32.dll_DeleteMenu]
mov ecx, 0xa0
call qword [sym.imp.USER32.dll_GetKeyState]
mov r14, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x50]
movsx ecx, ax
bt ecx, 0x10
jb 0x14015174b
mov ecx, 0xa1
call qword [sym.imp.USER32.dll_GetKeyState]
movsx ecx, ax
bt ecx, 0x10
jae 0x140151771
lea rax, str.Open_the_developer_console_window
mov edx, 0xffffffff
mov r9d, 0x822a
mov qword [rsp + 0x20], rax
mov r8d, 0x400
mov rcx, rbx
call qword [sym.imp.USER32.dll_InsertMenuW]
xor eax, eax
add rsp, 0x30
pop rsi
pop rbp
pop rbx
ret