Function at 0x14012b5d0
Capabilities:
Log keystrokes via polling

Disassembly:
sub rsp, 0x28
lea rcx, [0x1404b98c7]
call fcn.1402b13b0
cmp byte [0x1404919a1], 0
jne 0x14012ba81
mov qword [rsp + 0x40], rbx
movabs rbx, 0x7ffffffffd9da5ff
mov qword [rsp + 0x48], rsi
mov esi, 0xff
mov qword [rsp + 0x20], rdi
movabs rdi, 0x7fffffffffffffff
cmp byte [0x140491956], 0
je 0x14012b670
mov ecx, dword [0x140491d14]
test ecx, ecx
je 0x14012b652
sub ecx, 1
je 0x14012b63a
cmp ecx, 1
jne 0x14012b670
mov byte [0x140491d20], cl
jmp 0x14012b670
mov ecx, dword [0x140491d10]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
setne byte [0x140491d20]
jmp 0x14012b670
mov ecx, dword [0x140491d10]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x14012b670
cmp byte [0x140491d20], 0
sete byte [0x140491d20]
cmp byte [0x1404919be], 0
je 0x14012b6cb
mov ecx, dword [0x14049272c]
test ecx, ecx
je 0x14012b6ad
sub ecx, 1
je 0x14012b695
cmp ecx, 1
jne 0x14012b6cb
mov byte [0x140492738], cl
jmp 0x14012b6cb
mov ecx, dword [0x140492728]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
setne byte [0x140492738]
jmp 0x14012b6cb
mov ecx, dword [0x140492728]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x14012b6cb
cmp byte [0x140492738], 0
sete byte [0x140492738]
cmp byte [0x140491997], 0
je 0x14012b726
mov ecx, dword [0x140491d2c]
test ecx, ecx
je 0x14012b708
sub ecx, 1
je 0x14012b6f0
cmp ecx, 1
jne 0x14012b726
mov byte [0x140491d38], cl
jmp 0x14012b726
mov ecx, dword [0x140491d28]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
setne byte [0x140491d38]
jmp 0x14012b726
mov ecx, dword [0x140491d28]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x14012b726
cmp byte [0x140491d38], 0
sete byte [0x140491d38]
cmp byte [0x1404919d3], 0
je 0x14012b781
mov ecx, dword [0x1404927f4]
test ecx, ecx
je 0x14012b763
sub ecx, 1
je 0x14012b74b
cmp ecx, 1
jne 0x14012b781
mov byte [0x140492800], cl
jmp 0x14012b781
mov ecx, dword [0x1404927f0]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
setne byte [0x140492800]
jmp 0x14012b781
mov ecx, dword [0x1404927f0]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x14012b781
cmp byte [0x140492800], 0
sete byte [0x140492800]
cmp byte [0x1404919a0], 0
je 0x14012b7dc
mov ecx, dword [0x140492744]
test ecx, ecx
je 0x14012b7be
sub ecx, 1
je 0x14012b7a6
cmp ecx, 1
jne 0x14012b7dc
mov byte [0x140492750], cl
jmp 0x14012b7dc
mov ecx, dword [0x140492740]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
setne byte [0x140492750]
jmp 0x14012b7dc
mov ecx, dword [0x140492740]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x14012b7dc
cmp byte [0x140492750], 0
sete byte [0x140492750]
cmp byte [0x1404919ea], 0
je 0x14012b837
mov ecx, dword [0x140492714]
test ecx, ecx
je 0x14012b819
sub ecx, 1
je 0x14012b801
cmp ecx, 1
jne 0x14012b837
mov byte [0x140492720], cl
jmp 0x14012b837
mov ecx, dword [0x140492710]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
setne byte [0x140492720]
jmp 0x14012b837
mov ecx, dword [0x140492710]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x14012b837
cmp byte [0x140492720], 0
sete byte [0x140492720]
cmp byte [0x140491994], 0
je 0x14012b892
mov ecx, dword [0x14049234c]
test ecx, ecx
je 0x14012b874
sub ecx, 1
je 0x14012b85c
cmp ecx, 1
jne 0x14012b892
mov byte [0x140492358], cl
jmp 0x14012b892
mov ecx, dword [0x140492348]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
setne byte [0x140492358]
jmp 0x14012b892
mov ecx, dword [0x140492348]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x14012b892
cmp byte [0x140492358], 0
sete byte [0x140492358]
cmp byte [0x140491940], 0
je 0x14012b8ed
mov ecx, dword [0x14049279c]
test ecx, ecx
je 0x14012b8cf
sub ecx, 1
je 0x14012b8b7
cmp ecx, 1
jne 0x14012b8ed
mov byte [0x1404927a8], cl
jmp 0x14012b8ed
mov ecx, dword [0x140492798]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
setne byte [0x1404927a8]
jmp 0x14012b8ed
mov ecx, dword [0x140492798]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x14012b8ed
cmp byte [0x1404927a8], 0
sete byte [0x1404927a8]
cmp byte [0x140491996], 0
je 0x14012b948
mov ecx, dword [0x14049237c]
test ecx, ecx
je 0x14012b92a
sub ecx, 1
je 0x14012b912
cmp ecx, 1
jne 0x14012b948
mov byte [0x140492388], cl
jmp 0x14012b948
mov ecx, dword [0x140492378]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
setne byte [0x140492388]
jmp 0x14012b948
mov ecx, dword [0x140492378]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x14012b948
cmp byte [0x140492388], 0
sete byte [0x140492388]
cmp byte [0x140491916], 0
je 0x14012b9a3
mov ecx, dword [0x140492784]
test ecx, ecx
je 0x14012b985
sub ecx, 1
je 0x14012b96d
cmp ecx, 1
jne 0x14012b9a3
mov byte [0x140492790], cl
jmp 0x14012b9a3
mov ecx, dword [0x140492780]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
setne byte [0x140492790]
jmp 0x14012b9a3
mov ecx, dword [0x140492780]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x14012b9a3
cmp byte [0x140492790], 0
sete byte [0x140492790]
mov ecx, dword [0x140492364]
test ecx, ecx
je 0x14012b9f5
sub ecx, 1
je 0x14012b9ce
cmp ecx, 1
jne 0x14012ba24
mov byte [0x140492370], cl
lea rcx, [rsp + 0x30]
call fcn.140049ee0
mov rax, qword [rsp + 0x30]
jmp 0x14012ba38
mov ecx, dword [0x140492360]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
lea rcx, [rsp + 0x30]
setne byte [0x140492370]
call fcn.140049ee0
mov rax, qword [rsp + 0x30]
jmp 0x14012ba38
mov ecx, dword [0x140492360]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x14012ba24
cmp byte [0x140492370], 0
lea rcx, [rsp + 0x30]
sete byte [0x140492370]
call fcn.140049ee0
mov rax, qword [rsp + 0x30]
jmp 0x14012ba38
lea rcx, [rsp + 0x30]
call fcn.140049ee0
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x38], rax
cmp rax, rbx
je 0x14012ba56
mov ecx, 1
cmovl ecx, esi
test cl, cl
jns 0x14012ba56
add rax, 0x2625a00
mov qword [rsp + 0x38], rax
jmp 0x14012ba5b
mov qword [rsp + 0x38], rdi
lea rcx, [rsp + 0x38]
call fcn.14006c660
cmp byte [0x1404919a1], 0
je 0x14012b615
mov rdi, qword [rsp + 0x20]
mov rsi, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x40]
add rsp, 0x28
ret