Function at 0x180015b50
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x30
cmp byte [0x1800a9cae], 0
movabs rdi, 0x7fffffff0000
je 0x180015c0a
mov ecx, dword [0x180098ab8]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x180015bca
call fcn.18000ebb0
lea rcx, [rax + 0x4f8]
cmp rcx, 0x40000
jbe 0x180015c0a
lea rax, [rcx + 8]
cmp rax, rdi
jae 0x180015c0a
mov rcx, qword [rcx]
add rcx, 0x84
cmp rcx, 0x40000
jbe 0x180015c0a
lea rax, [rcx + 4]
cmp rax, rdi
jae 0x180015c0a
movss xmm0, dword [0x1800a9c88]
movss dword [rcx], xmm0
jmp 0x180015c0a
call fcn.18000ebb0
lea rcx, [rax + 0x4f8]
cmp rcx, 0x40000
jbe 0x180015c0a
lea rax, [rcx + 8]
cmp rax, rdi
jae 0x180015c0a
mov rcx, qword [rcx]
add rcx, 0x84
cmp rcx, 0x40000
jbe 0x180015c0a
lea rax, [rcx + 4]
cmp rax, rdi
jae 0x180015c0a
mov dword [rcx], 0x40200000
mov rcx, qword [0x1800a9bd0]
add rcx, 0x3600e78
cmp rcx, 0x40000
jbe 0x180015c4b
lea rax, [rcx + 8]
cmp rax, rdi
jae 0x180015c4b
mov rcx, qword [rcx]
add rcx, 0xb8
cmp rcx, 0x40000
jbe 0x180015c4b
lea rax, [rcx + 8]
cmp rax, rdi
jae 0x180015c4b
mov rbx, qword [rcx]
jmp 0x180015c4d
xor ebx, ebx
mov ecx, dword [0x180098aa0]
add rbx, 0x18
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x180015c7c
cmp rbx, 0x40000
jbe 0x180015c9a
lea rax, [rbx + 4]
cmp rax, rdi
jae 0x180015c9a
mov dword [rbx], 0x41200000
jmp 0x180015c9a
cmp rbx, 0x40000
jbe 0x180015c9a
lea rax, [rbx + 4]
cmp rax, rdi
jae 0x180015c9a
movss xmm0, dword [0x180098a98]
movss dword [rbx], xmm0
cmp byte [0x1800a9ca9], 0
je 0x180015d06
call fcn.18000ebb0
lea rcx, [rax + 0x4f8]
cmp rcx, 0x40000
jbe 0x180015d06
lea rax, [rcx + 8]
cmp rax, rdi
jae 0x180015d06
mov rcx, qword [rcx]
mov rdx, rcx
lea r8, [rcx + 0xc4]
cmp r8, 0x40000
jbe 0x180015ce7
lea rax, [r8 + 4]
cmp rax, rdi
jae 0x180015ce7
mov dword [r8], 0
lea rcx, [rdx + 0xc8]
cmp rcx, 0x40000
jbe 0x180015d06
lea rax, [rcx + 4]
cmp rax, rdi
jae 0x180015d06
mov dword [rcx], 0
call fcn.18000ebb0
mov rcx, qword [0x1800a9bd0]
add rcx, 0x35ff050
cmp rcx, 0x40000
jbe 0x180015dca
lea rax, [rcx + 8]
cmp rax, rdi
jae 0x180015dca
mov rcx, qword [rcx]
add rcx, 0xb8
cmp rcx, 0x40000
jbe 0x180015dca
lea rax, [rcx + 8]
cmp rax, rdi
jae 0x180015dca
mov rdx, qword [rcx]
mov rcx, rdx
lea r8, [rdx + 0x2c]
cmp r8, 0x40000
jbe 0x180015d76
lea rax, [r8 + 4]
cmp rax, rdi
jae 0x180015d76
mov dword [r8], 0x3f800000
lea rdx, [rcx + 0x20]
cmp rdx, 0x40000
jbe 0x180015d92
lea rax, [rdx + 4]
cmp rax, rdi
jae 0x180015d92
mov dword [rdx], 0x3f800000
lea rdx, [rcx + 0x34]
cmp rdx, 0x40000
jbe 0x180015dae
lea rax, [rdx + 4]
cmp rax, rdi
jae 0x180015dae
mov dword [rdx], 0x3f800000
add rcx, 0x28
cmp rcx, 0x40000
jbe 0x180015dca
lea rax, [rcx + 4]
cmp rax, rdi
jae 0x180015dca
mov dword [rcx], 0x3f800000
cmp byte [0x1800a9cab], 0
je 0x180015e30
call fcn.18000ebb0
lea rcx, [rax + 0x690]
cmp rcx, 0x40000
jbe 0x180015e03
lea rax, [rcx + 4]
cmp rax, rdi
jae 0x180015e03
mov eax, dword [rcx]
or eax, 4
mov dword [rcx], eax
mov rbx, qword [rsp + 0x40]
add rsp, 0x30
pop rdi
ret
mov rdx, rcx
mov qword [rsp + 0x20], 0
lea rax, [rsp + 0x20]
mov rcx, rax
cmp rdx, 0x40000
jbe 0x180015e30
lea rax, [rdx + 4]
cmp rax, rdi
jae 0x180015e30
mov eax, dword [rcx]
or eax, 4
mov dword [rdx], eax
mov rbx, qword [rsp + 0x40]
add rsp, 0x30
pop rdi
ret