Function at 0x180018210
Capabilities:
Log keystrokes via polling

Disassembly:
sub rsp, 0x58
cmp byte [0x18023cb9c], 0
je 0x1800185d1
mov rax, qword [0x18023cac0]
mov rcx, qword [rax]
test rcx, rcx
je 0x1800185d1
mov qword [rsp + 0x50], rdi
mov rdi, qword [rcx + 8]
test rdi, rdi
je 0x1800185cc
mov rdi, qword [rdi + 0xd30]
test rdi, rdi
je 0x1800185cc
mov qword [rsp + 0x60], rbx
movabs rbx, 0xd80958fc74e988a6
mov rcx, rbx
mov qword [rsp + 0x68], rbp
mov qword [rsp + 0x70], rsi
call fcn.1800015f0
mov edx, eax
movabs rcx, 0x814fa8be5449445d
mov esi, eax
call fcn.180001690
mov rcx, rbx
mov ebp, eax
call fcn.1800015f0
mov r8d, 1
mov edx, eax
movabs rcx, 0x9a9112a0fe9a4713
call fcn.180001760
cmp byte [0x18023cb9f], 0
mov ebx, eax
je 0x1800182cd
mov r8d, 1
mov edx, ebp
movabs rcx, 0xb664292eaecf7fa6
call fcn.180001df0
cmp byte [0x18023cba0], 0
je 0x1800182f8
mov r9d, 1
mov dword [rsp + 0x20], 0
mov r8d, r9d
mov edx, ebx
movabs rcx, 0x2497c4717c8b881e
call fcn.180001ff0
cmp byte [0x18023cba1], 0
je 0x18001831b
mov r9d, 0xffffffff
mov r8d, ebp
mov edx, esi
movabs rcx, 0xf75b0d629e1c063d
call fcn.180001ee0
cmp byte [0x18023cb9e], 0
je 0x1800183ec
mov r8d, 1
mov edx, ebx
movabs rcx, 0x3882114bde571ad4
call fcn.180001df0
mov dword [rsp + 0x48], 1
mov r9d, 1
mov dword [rsp + 0x40], 1
mov r8d, r9d
mov dword [rsp + 0x38], 1
mov edx, ebx
mov dword [rsp + 0x30], 1
movabs rcx, 0xfaee099c6f890bb8
mov dword [rsp + 0x28], 1
mov dword [rsp + 0x20], 1
call fcn.180002110
movabs rbp, 0xeb9dc3c7d8596c46
xor r8d, r8d
mov rcx, rbp
mov edx, ebx
call fcn.180001df0
xor r8d, r8d
mov edx, ebx
movabs rcx, 0x29b18b4fd460ca8f
call fcn.180001df0
xor r8d, r8d
mov edx, ebx
movabs rcx, 0x4c7028f78ffd3681
call fcn.180001df0
xor r8d, r8d
mov edx, ebx
mov rcx, rbp
call fcn.180001df0
mov r8d, 1
mov edx, ebx
movabs rcx, 0x92f0cf722bc4202f
call fcn.180001df0
xor r8d, r8d
mov edx, esi
movabs rcx, 0x997abd671d25ca0b
call fcn.180001760
mov rsi, qword [rsp + 0x70]
mov rbp, qword [rsp + 0x68]
test eax, eax
je 0x1800185c0
cmp byte [0x18023cba2], 0
mov byte [0x18023cbad], 1
je 0x1800184af
mov edx, ebx
mov dword [rdi + 0x908], 0x447a0000
movabs rcx, 0x953da1e1b12c0491
mov dword [rdi + 0x840], 0x447a0000
call fcn.180001d20
movss xmm2, dword [0x1800aca38]
mov edx, ebx
movabs rcx, 0x45f6d8eef34abef1
call fcn.1800022d0
movss xmm2, dword [0x1800aca38]
mov edx, ebx
movabs rcx, 0xb77d05ac8c78aadb
call fcn.1800022d0
mov r8d, 1
mov edx, ebx
movabs rcx, 0x6e13fc662b882d1d
call fcn.180001df0
xor r8d, r8d
mov edx, ebx
movabs rcx, 0x2970eaa18fd5e42f
call fcn.180001df0
mov byte [0x18023cba2], 0
cmp byte [0x18023cbac], 0
je 0x1800184e6
mov r9d, dword [0x18023cbbc]
mov edx, ebx
mov r8d, dword [0x18023cbb0]
movabs rcx, 0x6af0636ddedcb6dd
mov dword [rsp + 0x20], 0
call fcn.180001ff0
mov byte [0x18023cbac], 0
cmp byte [0x18023cba4], 0
je 0x18001850b
mov rax, qword [rdi + 0x938]
test rax, rax
je 0x18001850b
movd xmm0, dword [0x18023cba8]
cvtdq2ps xmm0, xmm0
movss dword [rax + 0x4c], xmm0
cmp byte [0x18023cba3], 0
je 0x180018547
mov ecx, 0x10
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov rcx, qword [rdi + 0x938]
test ax, ax
jns 0x180018539
test rcx, rcx
je 0x18001855a
mov dword [rcx + 0x4c], 0x47c35000
jmp 0x18001855a
test rcx, rcx
je 0x18001855a
mov dword [rcx + 0x4c], 0x3f800000
jmp 0x18001855a
mov rax, qword [rdi + 0x938]
test rax, rax
je 0x18001855a
mov dword [rax + 0x4c], 0x3f800000
cmp byte [0x18023cbc8], 0
je 0x180018589
mov r9d, dword [0x18023cbb8]
mov edx, ebx
mov r8d, dword [0x18023cbb4]
movabs rcx, 0x4f1d4be3a7f24601
call fcn.180001ee0
mov byte [0x18023cbc8], 0
cmp byte [0x18023cbc9], 0
je 0x1800185c7
lea r8, [0x18023cbc0]
mov edx, ebx
movabs rcx, 0x95a88f0b409cda47
call fcn.180002500
mov rbx, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x50]
mov byte [0x18023cbc9], 0
add rsp, 0x58
ret
mov byte [0x18023cbad], 0
mov rbx, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x50]
add rsp, 0x58
ret