Function at 0x180015980
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x30
cmp byte [0x1800a9ca9], 0
movabs rdi, 0x7fffffff0000
je 0x180015a34
mov ecx, dword [0x180098ab4]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1800159f7
call fcn.18000eac0
lea rcx, [rax + 0x4d8]
cmp rcx, 0x40000
jbe 0x180015a34
lea rax, [rcx + 8]
cmp rax, rdi
jae 0x180015a34
mov rcx, qword [rcx]
add rcx, 0x74
cmp rcx, 0x40000
jbe 0x180015a34
lea rax, [rcx + 4]
cmp rax, rdi
jae 0x180015a34
movss xmm0, dword [0x1800a9c84]
movss dword [rcx], xmm0
jmp 0x180015a34
call fcn.18000eac0
lea rcx, [rax + 0x4d8]
cmp rcx, 0x40000
jbe 0x180015a34
lea rax, [rcx + 8]
cmp rax, rdi
jae 0x180015a34
mov rcx, qword [rcx]
add rcx, 0x74
cmp rcx, 0x40000
jbe 0x180015a34
lea rax, [rcx + 4]
cmp rax, rdi
jae 0x180015a34
mov dword [rcx], 0x40200000
mov rcx, qword [0x1800a9bb8]
add rcx, 0x31be480
cmp rcx, 0x40000
jbe 0x180015a75
lea rax, [rcx + 8]
cmp rax, rdi
jae 0x180015a75
mov rcx, qword [rcx]
add rcx, 0xb8
cmp rcx, 0x40000
jbe 0x180015a75
lea rax, [rcx + 8]
cmp rax, rdi
jae 0x180015a75
mov rbx, qword [rcx]
jmp 0x180015a77
xor ebx, ebx
mov ecx, dword [0x180098aa0]
add rbx, 0x18
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x180015aa6
cmp rbx, 0x40000
jbe 0x180015ac4
lea rax, [rbx + 4]
cmp rax, rdi
jae 0x180015ac4
mov dword [rbx], 0x41200000
jmp 0x180015ac4
cmp rbx, 0x40000
jbe 0x180015ac4
lea rax, [rbx + 4]
cmp rax, rdi
jae 0x180015ac4
movss xmm0, dword [0x180098a98]
movss dword [rbx], xmm0
cmp byte [0x1800a9ca4], 0
je 0x180015b30
call fcn.18000eac0
lea rcx, [rax + 0x4d8]
cmp rcx, 0x40000
jbe 0x180015b30
lea rax, [rcx + 8]
cmp rax, rdi
jae 0x180015b30
mov rcx, qword [rcx]
mov rdx, rcx
lea r8, [rcx + 0xb4]
cmp r8, 0x40000
jbe 0x180015b11
lea rax, [r8 + 4]
cmp rax, rdi
jae 0x180015b11
mov dword [r8], 0
lea rcx, [rdx + 0xb8]
cmp rcx, 0x40000
jbe 0x180015b30
lea rax, [rcx + 4]
cmp rax, rdi
jae 0x180015b30
mov dword [rcx], 0
call fcn.18000eac0
mov rcx, qword [0x1800a9bb8]
add rcx, 0x31bf570
cmp rcx, 0x40000
jbe 0x180015bf4
lea rax, [rcx + 8]
cmp rax, rdi
jae 0x180015bf4
mov rcx, qword [rcx]
add rcx, 0xb8
cmp rcx, 0x40000
jbe 0x180015bf4
lea rax, [rcx + 8]
cmp rax, rdi
jae 0x180015bf4
mov rdx, qword [rcx]
mov rcx, rdx
lea r8, [rdx + 0x2c]
cmp r8, 0x40000
jbe 0x180015ba0
lea rax, [r8 + 4]
cmp rax, rdi
jae 0x180015ba0
mov dword [r8], 0x3f800000
lea rdx, [rcx + 0x20]
cmp rdx, 0x40000
jbe 0x180015bbc
lea rax, [rdx + 4]
cmp rax, rdi
jae 0x180015bbc
mov dword [rdx], 0x3f800000
lea rdx, [rcx + 0x34]
cmp rdx, 0x40000
jbe 0x180015bd8
lea rax, [rdx + 4]
cmp rax, rdi
jae 0x180015bd8
mov dword [rdx], 0x3f800000
add rcx, 0x28
cmp rcx, 0x40000
jbe 0x180015bf4
lea rax, [rcx + 4]
cmp rax, rdi
jae 0x180015bf4
mov dword [rcx], 0x3f800000
cmp byte [0x1800a9ca6], 0
je 0x180015c5a
call fcn.18000eac0
lea rcx, [rax + 0x638]
cmp rcx, 0x40000
jbe 0x180015c2d
lea rax, [rcx + 4]
cmp rax, rdi
jae 0x180015c2d
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 0x180015c5a
lea rax, [rdx + 4]
cmp rax, rdi
jae 0x180015c5a
mov eax, dword [rcx]
or eax, 4
mov dword [rdx], eax
mov rbx, qword [rsp + 0x40]
add rsp, 0x30
pop rdi
ret