Function at 0x1400389d0
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 8], rcx
push rdi
sub rsp, 0x20
cmp byte [0x14005a3d0], 0
lea rbx, [0x1400541b8]
je 0x140038a3b
lea rbx, str._press_a_key_
mov edi, 5
nop dword [rax + rax]
mov ecx, edi
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x140038a19
inc edi
cmp edi, 0x7b
jl 0x140038a00
jmp case.0x140038a6a.7
cmp edi, 0xffffffff
je case.0x140038a6a.7
mov byte [0x14005a1b8], 0
mov dword [0x14005a060], edi
mov byte [0x14005a3d0], 0
jmp case.0x140038a6a.7
mov eax, dword [0x14005a060]
add eax, 0xfffffffb
cmp eax, 0x8b
ja case.0x140038a6a.7
lea rdx, [0x140000000]
cdqe
movzx eax, byte [rdx + rax + 0x38dfc]
mov ecx, dword [rdx + rax*4 + 0x38d18]
add rcx, rdx
jmp rcx
lea rbx, str.mouse_4
jmp case.0x140038a6a.7
lea rbx, str.mouse_5
jmp case.0x140038a6a.7
lea rbx, str.backspace
jmp case.0x140038a6a.7
lea rbx, str.enter
jmp case.0x140038a6a.7
lea rbx, [0x1400541f4]
jmp case.0x140038a6a.7
lea rbx, str.shift
jmp case.0x140038a6a.7
lea rbx, str.ctrl
jmp case.0x140038a6a.7
lea rbx, [0x140054208]
jmp case.0x140038a6a.7
lea rbx, str.pause
jmp case.0x140038a6a.7
lea rbx, str.caps_lock
jmp case.0x140038a6a.7
lea rbx, [0x140054224]
jmp case.0x140038a6a.7
lea rbx, str.spacebar
jmp case.0x140038a6a.7
lea rbx, str.page_up
jmp case.0x140038a6a.7
lea rbx, str.page_down
jmp case.0x140038a6a.7
lea rbx, [0x14005424c]
jmp case.0x140038a6a.7
lea rbx, str.home
jmp case.0x140038a6a.7
lea rbx, str.left_arrow
jmp case.0x140038a6a.7
lea rbx, str.up_arrow
jmp case.0x140038a6a.7
lea rbx, str.right_arrow
jmp case.0x140038a6a.7
lea rbx, str.down_arrow
jmp case.0x140038a6a.7
lea rbx, str.select
jmp case.0x140038a6a.7
lea rbx, str.print
jmp case.0x140038a6a.7
lea rbx, str.execute
jmp case.0x140038a6a.7
lea rbx, str.print_screen
jmp case.0x140038a6a.7
lea rbx, [0x1400542c0]
jmp case.0x140038a6a.7
lea rbx, [0x1400542c4]
jmp case.0x140038a6a.7
lea rbx, str.help
jmp case.0x140038a6a.7
lea rbx, [0x14005a060]
jmp case.0x140038a6a.7
lea rbx, str.numpad0
jmp case.0x140038a6a.7
lea rbx, str.numpad1
jmp case.0x140038a6a.7
lea rbx, str.numpad2
jmp case.0x140038a6a.7
lea rbx, str.numpad3
jmp case.0x140038a6a.7
lea rbx, str.numpad4
jmp case.0x140038a6a.7
lea rbx, str.numpad5
jmp case.0x140038a6a.7
lea rbx, str.numpad6
jmp case.0x140038a6a.7
lea rbx, str.numpad7
jmp case.0x140038a6a.7
lea rbx, str.numpad8
jmp case.0x140038a6a.7
lea rbx, str.numpad9
jmp case.0x140038a6a.7
lea rbx, str.multiply
jmp case.0x140038a6a.7
lea rbx, [0x14005432c]
jmp case.0x140038a6a.7
lea rbx, str.separator
jmp case.0x140038a6a.7
lea rbx, str.decimal
jmp case.0x140038a6a.7
lea rbx, str.divide
jmp case.0x140038a6a.7
lea rbx, [0x140054350]
jmp case.0x140038a6a.7
lea rbx, [0x140054354]
jmp case.0x140038a6a.7
lea rbx, [0x140054358]
jmp case.0x140038a6a.7
lea rbx, [0x14005435c]
jmp case.0x140038a6a.7
lea rbx, [0x140054360]
jmp case.0x140038a6a.7
lea rbx, [0x140054364]
jmp case.0x140038a6a.7
lea rbx, [0x140054368]
jmp case.0x140038a6a.7
lea rbx, [0x14005436c]
jmp case.0x140038a6a.7
lea rbx, [0x140054370]
jmp case.0x140038a6a.7
lea rbx, [0x140054374]
jmp case.0x140038a6a.7
lea rbx, [0x140054378]
jmp case.0x140038a6a.7
lea rbx, str.num_lock
movss xmm0, dword [0x14005448c]
lea rdx, [rsp + 0x30]
xorps xmm1, xmm1
movss dword [rsp + 0x30], xmm0
mov rcx, rbx
movss dword [rsp + 0x34], xmm1
call fcn.140027f10
movzx ecx, byte [0x14005a3d0]
test al, al
mov rbx, qword [rsp + 0x38]
mov edx, 1
cmovne ecx, edx
mov byte [0x14005a3d0], cl
add rsp, 0x20
pop rdi
ret