Function at 0x180028980
Capabilities:
Log keystrokes via polling

Disassembly:
sub rsp, 0x58
cmp byte [0x180227210], 0
je 0x180028d43
mov rax, qword [0x180227138]
mov rcx, qword [rax]
test rcx, rcx
je 0x180028d43
mov qword [rsp + 0x50], rdi
mov rdi, qword [rcx + 8]
test rdi, rdi
je 0x180028d3e
mov rdi, qword [rdi + 0xd30]
test rdi, rdi
je 0x180028d3e
mov qword [rsp + 0x68], rbx
movabs rbx, 0xd80958fc74e988a6
mov rcx, rbx
mov qword [rsp + 0x70], rbp
mov qword [rsp + 0x78], rsi
call fcn.180003550
mov edx, eax
movabs rcx, 0x814fa8be5449445d
mov esi, eax
call fcn.1800035f0
mov rcx, rbx
mov ebp, eax
call fcn.180003550
mov r8d, 1
mov edx, eax
movabs rcx, 0x9a9112a0fe9a4713
call fcn.1800036c0
cmp byte [0x180227214], 0
mov ebx, eax
je 0x180028a3d
mov r8d, 1
mov edx, ebp
movabs rcx, 0xb664292eaecf7fa6
call fcn.180003f10
cmp byte [0x180227215], 0
je 0x180028a68
mov r9d, 1
mov dword [rsp + 0x20], 0
mov r8d, r9d
mov edx, ebx
movabs rcx, 0x2497c4717c8b881e
call fcn.180004110
cmp byte [0x180227216], 0
je 0x180028a8b
mov r9d, 0xffffffff
mov r8d, ebp
mov edx, esi
movabs rcx, 0xf75b0d629e1c063d
call fcn.180004000
cmp byte [0x180227212], 0
je 0x180028b5c
mov r8d, 1
mov edx, ebx
movabs rcx, 0x3882114bde571ad4
call fcn.180003f10
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.180004230
movabs rbp, 0xeb9dc3c7d8596c46
xor r8d, r8d
mov rcx, rbp
mov edx, ebx
call fcn.180003f10
xor r8d, r8d
mov edx, ebx
movabs rcx, 0x29b18b4fd460ca8f
call fcn.180003f10
xor r8d, r8d
mov edx, ebx
movabs rcx, 0x4c7028f78ffd3681
call fcn.180003f10
xor r8d, r8d
mov edx, ebx
mov rcx, rbp
call fcn.180003f10
mov r8d, 1
mov edx, ebx
movabs rcx, 0x92f0cf722bc4202f
call fcn.180003f10
xor r8d, r8d
mov edx, esi
movabs rcx, 0x997abd671d25ca0b
call fcn.1800036c0
mov rsi, qword [rsp + 0x78]
mov rbp, qword [rsp + 0x70]
test eax, eax
je 0x180028d32
cmp byte [0x180227217], 0
mov byte [0x180227221], 1
je 0x180028c1f
mov edx, ebx
mov dword [rdi + 0x908], 0x447a0000
movabs rcx, 0x953da1e1b12c0491
mov dword [rdi + 0x840], 0x447a0000
call fcn.180003e40
movss xmm2, dword [0x1800bd8a0]
mov edx, ebx
movabs rcx, 0x45f6d8eef34abef1
call fcn.180004520
movss xmm2, dword [0x1800bd8a0]
mov edx, ebx
movabs rcx, 0xb77d05ac8c78aadb
call fcn.180004520
mov r8d, 1
mov edx, ebx
movabs rcx, 0x6e13fc662b882d1d
call fcn.180003f10
xor r8d, r8d
mov edx, ebx
movabs rcx, 0x2970eaa18fd5e42f
call fcn.180003f10
mov byte [0x180227217], 0
cmp byte [0x180227220], 0
je 0x180028c56
mov r9d, dword [0x180227230]
mov edx, ebx
mov r8d, dword [0x180227224]
movabs rcx, 0x6af0636ddedcb6dd
mov dword [rsp + 0x20], 0
call fcn.180004110
mov byte [0x180227220], 0
cmp byte [0x180227219], 0
mov rax, qword [rdi + 0x938]
je 0x180028c7d
test rax, rax
je 0x180028c89
movd xmm0, dword [0x18022721c]
cvtdq2ps xmm0, xmm0
movss dword [rax + 0x4c], xmm0
jmp 0x180028c89
test rax, rax
je 0x180028c89
mov dword [rax + 0x4c], 0x3f800000
cmp byte [0x180227218], 0
je 0x180028cb9
mov ecx, 0x10
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
bt ax, 0xf
mov rax, qword [rdi + 0x938]
jae 0x180028cc0
test rax, rax
je 0x180028ccc
mov dword [rax + 0x4c], 0x447a0000
jmp 0x180028ccc
mov rax, qword [rdi + 0x938]
test rax, rax
je 0x180028ccc
mov dword [rax + 0x4c], 0x3f800000
cmp byte [0x180227240], 0
je 0x180028cfb
mov r9d, dword [0x18022722c]
mov edx, ebx
mov r8d, dword [0x180227228]
movabs rcx, 0x4f1d4be3a7f24601
call fcn.180004000
mov byte [0x180227240], 0
cmp byte [0x180227241], 0
je 0x180028d39
lea r8, [0x180227238]
mov edx, ebx
movabs rcx, 0x95a88f0b409cda47
call fcn.180004750
mov rbx, qword [rsp + 0x68]
mov rdi, qword [rsp + 0x50]
mov byte [0x180227241], 0
add rsp, 0x58
ret
mov byte [0x180227221], 0
mov rbx, qword [rsp + 0x68]
mov rdi, qword [rsp + 0x50]
add rsp, 0x58
ret