Function at 0x14014a410
Capabilities:
Log keystrokes via polling

Disassembly:
mov dword [rsp + 0x20], r9d
mov word [rsp + 0x18], r8w
mov word [rsp + 0x10], dx
mov qword [rsp + 8], rcx
sub rsp, 0x148
mov byte [rsp + 0x31], 0x43
mov byte [rsp + 0x30], 0xcd
movzx eax, byte [rsp + 0x30]
add eax, 0xfe
mov byte [rsp + 0x31], al
movzx eax, byte [rsp + 0x30]
sub eax, 0x22
movzx ecx, byte [rsp + 0x31]
cmp eax, ecx
jge 0x14014a4fb
movzx eax, byte [rsp + 0x31]
mov byte [rsp + 0x58], al
cmp byte [rsp + 0x58], 0x53
je 0x14014a46e
jmp 0x14014a4f6
lea rcx, [rsp + 0x30]
call qword [sym.imp.USER32.dll_GetKeyboardState]
mov dword [rsp + 0x40], eax
movzx eax, byte [rsp + 0x31]
mov byte [rsp + 0x5c], al
cmp byte [rsp + 0x5c], 0x12
je 0x14014a48f
jmp 0x14014a4e2
call fcn.140149290
mov eax, 0x48a
mov word [rsp + 0x170], ax
movzx eax, word [rsp + 0x158]
mov word [rsp + 0x160], ax
mov r8, qword [rsp + 0x90]
lea rdx, str.composedly_reunify
mov rcx, qword [rsp + 0x98]
call qword [sym.imp.USER32.dll_SetPropW]
mov dword [rsp + 0x4c], eax
movzx eax, byte [rsp + 0x30]
and eax, 0x81
mov byte [rsp + 0x31], al
jmp 0x14014a4f6
call fcn.140149290
mov ecx, 1
call qword [sym.imp.USER32.dll_ShowCursor]
mov dword [rsp + 0x34], eax
jmp 0x14014a58b
movzx eax, byte [rsp + 0x31]
imul eax, eax, 0x4a
movzx ecx, byte [rsp + 0x30]
cmp eax, ecx
jne 0x14014a58b
movzx eax, word [rsp + 0x158]
mov dword [rsp + 0x60], eax
cmp dword [rsp + 0x60], 0xd99
je 0x14014a524
jmp 0x14014a580
mov dword [rsp + 0x34], 0x1299c64
movzx eax, word [rsp + 0x170]
mov word [rsp + 0x20], ax
mov r9d, dword [rsp + 0x168]
movzx r8d, word [rsp + 0x160]
movzx edx, word [rsp + 0x160]
mov rcx, qword [rsp + 0x150]
call fcn.14014a410
mov edx, 1
mov rcx, qword [rsp + 0xa0]
call qword [sym.imp.USER32.dll_ShowOwnedPopups]
mov dword [rsp + 0x64], eax
mov dword [rsp + 0x34], 0x59a97685
jmp 0x14014a58b
movzx eax, byte [rsp + 0x31]
shl eax, 1
mov byte [rsp + 0x30], al
movzx eax, word [rsp + 0x158]
mov dword [rsp + 0x44], eax
cmp dword [rsp + 0x44], 0
je 0x14014a5b1
cmp dword [rsp + 0x44], 0xa69
je 0x14014a96e
jmp 0x14014a998
movabs rax, 0xdc5c669d4aad2f6c
mov qword [rsp + 0x50], rax
movsx eax, word [rsp + 0x170]
cmp eax, 0x3edf
jge 0x14014a8e6
movzx eax, byte [rsp + 0x30]
add eax, 0x9b
movzx ecx, byte [rsp + 0x31]
cmp eax, ecx
jge 0x14014a637
movzx eax, byte [rsp + 0x30]
mov byte [rsp + 0x48], al
cmp byte [rsp + 0x48], 0x40
je 0x14014a62a
cmp byte [rsp + 0x48], 0xf0
je 0x14014a5ff
jmp 0x14014a632
call fcn.140149a00
movabs rax, 0x6f53db29164ad55
mov qword [rsp + 0x150], rax
mov rcx, qword [rsp + 0xa8]
call qword [sym.imp.USER32.dll_IsMenu]
mov dword [rsp + 0x4c], eax
jmp 0x14014a632
mov eax, dword [rsp + 0x34]
mov dword [rsp + 0x3c], eax
jmp 0x14014a842
movzx eax, byte [rsp + 0x30]
sub eax, 0xa
movzx ecx, byte [rsp + 0x31]
cmp eax, ecx
jge 0x14014a842
movabs rax, 0x62d843a8c2587ce
mov rcx, qword [rsp + 0x50]
sub rcx, rax
mov rax, rcx
movabs rcx, 0xf92f6ff3aa6011d2
cmp rax, rcx
jne 0x14014a736
movzx eax, word [rsp + 0x160]
add eax, 0xc6d
movzx ecx, word [rsp + 0x158]
cmp eax, ecx
jle 0x14014a711
mov r9, qword [rsp + 0x78]
mov r8d, ILCreateFromPathW
mov edx, 0x51
mov rcx, qword [rsp + 0xb0]
call qword [sym.imp.USER32.dll_DrawIcon]
mov dword [rsp + 0x40], eax
call fcn.140149a00
nop
movsx eax, word [rsp + 0x170]
cmp eax, 0x1f6f
jle 0x14014a6f5
movzx eax, word [rsp + 0x160]
mov word [rsp + 0x158], ax
lea rcx, [rsp + 0x3c]
call qword [sym.imp.USER32.dll_SetRectEmpty]
mov dword [rsp + 0x4c], eax
movzx eax, byte [rsp + 0x30]
shl eax, 3
mov byte [rsp + 0x31], al
jmp 0x14014a711
movabs rax, 0x4dd20003ba516816
cmp qword [rsp + 0x150], rax
jg 0x14014a711
mov eax, dword [rsp + 0x34]
mov dword [rsp + 0x3c], eax
mov r9d, 0x90
mov r8, qword [rsp + 0xb8]
lea rdx, [rsp + 0x78]
mov rcx, qword [rsp + 0x88]
call qword [sym.imp.USER32.dll_RedrawWindow]
mov dword [rsp + 0x74], eax
mov byte [rsp + 0x33], 0x6c
movzx eax, word [rsp + 0x158]
mov word [rsp + 0x38], ax
movzx eax, byte [rsp + 0x30]
mov byte [rsp + 0x32], al
cmp dword [rsp + 0x168], 0x943d6525
jbe 0x14014a81e
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x80], rax
movabs rax, 0xf707671661f5cdb7
cmp qword [rsp + 0x80], rax
je 0x14014a785
jmp 0x14014a7ff
movzx eax, byte [rsp + 0x30]
movzx ecx, byte [rsp + 0x31]
or eax, ecx
mov byte [rsp + 0x32], al
movzx eax, byte [rsp + 0x32]
movzx ecx, byte [rsp + 0x31]
xor eax, ecx
movzx ecx, byte [rsp + 0x30]
cmp eax, ecx
jne 0x14014a7e6
mov ecx, 0xc7
call qword [sym.imp.USER32.dll_GetKeyboardType]
mov dword [rsp + 0x6c], eax
movzx eax, byte [rsp + 0x31]
movzx ecx, byte [rsp + 0x30]
sar eax, cl
mov byte [rsp + 0x32], al
mov cx, 0xfb
call qword [sym.imp.USER32.dll_IsCharUpperW]
mov dword [rsp + 0x64], eax
movzx eax, word [rsp + 0x38]
mov word [rsp + 0x158], ax
jmp 0x14014a7fd
movzx eax, word [rsp + 0x158]
movzx ecx, word [rsp + 0x160]
and eax, ecx
mov word [rsp + 0x38], ax
jmp 0x14014a81c
mov r8d, 0x88
lea rdx, [rsp + 0x33]
mov rcx, qword [rsp + 0xc0]
call qword [sym.imp.USER32.dll_CopyAcceleratorTableW]
mov dword [rsp + 0x3c], eax
jmp 0x14014a842
movabs rax, 0x23e06c0407fa4153
cmp qword [rsp + 0x150], rax
jne 0x14014a842
call fcn.140149a00
mov dword [rsp + 0x168], 0x16e7bb3
movzx eax, word [rsp + 0x158]
mov dword [rsp + 0x68], eax
cmp dword [rsp + 0x68], 0xb78
je 0x14014a85c
jmp 0x14014a868
movzx eax, byte [rsp + 0x31]
sub eax, 0x3b
mov byte [rsp + 0x30], al
movzx eax, word [rsp + 0x160]
and eax, 0xe0a
movzx ecx, word [rsp + 0x158]
cmp eax, ecx
jle 0x14014a8b9
mov eax, dword [rsp + 0x3c]
mov dword [rsp + 0x34], eax
lea r9, [rsp + 0xf0]
xor r8d, r8d
mov edx, 0x69
mov rcx, qword [rsp + 0xc8]
call qword [sym.imp.USER32.dll_GetMenuItemInfoW]
mov dword [rsp + 0x70], eax
movzx eax, byte [rsp + 0x31]
add eax, 6
mov byte [rsp + 0x30], al
jmp 0x14014a8e4
mov dword [rsp + 0x20], 0xe9
mov r9d, 0xee
mov r8d, 0x33
mov edx, SHSetInstanceExplorer
mov rcx, qword [rsp + 0xd0]
call qword [sym.imp.USER32.dll_CheckMenuRadioItem]
mov dword [rsp + 0x40], eax
jmp 0x14014a91a
movabs rax, 0x1a8689eea6637b65
cmp qword [rsp + 0x50], rax
jne 0x14014a91a
mov r9d, 1
mov r8d, 0xfd
lea rdx, [rsp + 0x30]
mov rcx, qword [rsp + 0xd8]
call qword [sym.imp.USER32.dll_DrawEdge]
mov dword [rsp + 0x40], eax
movabs rax, 0x5c5bde65543f8eff
cmp qword [rsp + 0x150], rax
jge 0x14014a93e
mov rax, qword [rsp + 0x50]
shr rax, 3
mov qword [rsp + 0x50], rax
jmp 0x14014a96c
movzx eax, byte [rsp + 0x30]
or eax, 0x5a
movzx ecx, byte [rsp + 0x31]
cmp eax, ecx
jg 0x14014a96c
movzx ecx, word [rsp + 0x170]
call fcn.140149e50
movzx eax, word [rsp + 0x158]
mov word [rsp + 0x160], ax
jmp 0x14014a998
movzx eax, byte [rsp + 0x30]
xor eax, 0xdf
mov byte [rsp + 0x31], al
lea rdx, str.huddled_socked_Boorish_Uneasier_Dominion
lea rcx, str.Binomial_existent_Nobodies
call qword [sym.imp.USER32.dll_CharPrevW]
mov qword [rsp + 0xe0], rax
lea rdx, [rsp + 0x34]
mov rcx, qword [rsp + 0x88]
call qword [sym.imp.USER32.dll_GetWindowRgnBox]
mov dword [rsp + 0x3c], eax
movzx r8d, word [rsp + 0x170]
movzx edx, word [rsp + 0x160]
movzx ecx, word [rsp + 0x160]
call fcn.14014a9e0
mov eax, ILFree
add rsp, 0x148
ret