Function at 0x1800039b0
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x30
cmp byte [0x18016cfe7], 0
movabs rbx, 0x7fffffff0000
je 0x180003a2c
mov rax, qword [0x18016d3c0]
lea rcx, [rax + 0x2ff7fe0]
cmp rcx, 0x400000
jbe 0x180003a2c
add rax, 0x2ff7fe8
cmp rax, rbx
jae 0x180003a2c
mov rax, qword [rcx]
lea rcx, [rax + 0xb8]
cmp rcx, 0x400000
jbe 0x180003a2c
add rax, 0xc0
cmp rax, rbx
jae 0x180003a2c
mov rax, qword [rcx]
lea rcx, [rax + 0x18]
cmp rcx, 0x400000
jbe 0x180003a2c
add rax, 0x1c
cmp rax, rbx
jae 0x180003a2c
mov dword [rcx], 0x42f00000
cmp byte [0x18016cfec], 0
je 0x180003aa1
mov ecx, 4
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x180003aa1
mov rax, qword [0x18016d008]
lea rcx, [rax + 0x600]
cmp rcx, 0x400000
jbe 0x180003aa1
add rax, 0x608
cmp rax, rbx
jae 0x180003aa1
mov rax, qword [rcx]
lea rcx, [rax + 0x38]
cmp rcx, 0x400000
jbe 0x180003aa1
add rax, 0x44
cmp rax, rbx
jae 0x180003aa1
movss xmm1, dword [0x18004b58c]
xorps xmm0, xmm0
unpcklps xmm0, xmm1
mov dword [rsp + 0x28], 0
mov eax, dword [rsp + 0x28]
movsd qword [rcx], xmm0
mov dword [rcx + 8], eax
xor edi, edi
cmp byte [0x18016d000], dil
je 0x180003b11
mov rax, qword [0x18016d008]
lea rcx, [rax + 0x4d0]
cmp rcx, 0x400000
jbe 0x180003b11
add rax, 0x4d8
cmp rax, rbx
jae 0x180003b11
mov rcx, qword [rcx]
mov rdx, rcx
lea r8, [rcx + 0xb4]
cmp r8, 0x400000
jbe 0x180003af3
lea rax, [rcx + 0xb8]
cmp rax, rbx
jae 0x180003af3
mov dword [r8], edi
lea rcx, [rdx + 0xb8]
cmp rcx, 0x400000
jbe 0x180003b11
lea rax, [rdx + 0xbc]
cmp rax, rbx
jae 0x180003b11
mov dword [rcx], edi
cmp byte [0x18016d01a], dil
je 0x180003b42
mov rax, qword [0x18016d008]
lea rcx, [rax + 0x6c4]
cmp rcx, 0x400000
jbe 0x180003b42
add rax, 0x6c8
cmp rax, rbx
jae 0x180003b42
mov dword [rcx], 0x3f800000
cmp byte [0x18016cfed], dil
je 0x180003b67
mov ecx, 6
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x180003b67
mov rcx, qword [0x18016d008]
call fcn.180001dc0
cmp byte [0x18016d018], dil
je 0x180003bae
mov rax, qword [0x18016d008]
lea rcx, [rax + 0x4c8]
cmp rcx, 0x400000
jbe 0x180003bae
add rax, 0x4d0
cmp rax, rbx
jae 0x180003bae
mov rax, qword [rcx]
lea rcx, [rax + 0x64]
cmp rcx, 0x400000
jbe 0x180003bae
add rax, 0x6c
cmp rax, rbx
jae 0x180003bae
mov qword [rcx], rdi
cmp byte [0x18016d064], dil
je 0x180003cf4
mov rcx, qword [0x18016d3d0]
test rcx, rcx
jne 0x180003beb
call fcn.180001580
mov rcx, rax
test rax, rax
jne 0x180003bd9
mov rcx, rdi
jmp 0x180003be4
movsxd rax, dword [rax + 3]
add rcx, 7
add rcx, rax
mov qword [0x18016d3d0], rcx
cmp rcx, 0x400000
jbe 0x180003cf4
lea rax, [rcx + 8]
cmp rax, rbx
jae 0x180003cf4
mov rax, qword [rcx]
test rax, rax
je 0x180003cf4
lea rcx, [rax + 8]
cmp rcx, 0x400000
jbe 0x180003cf4
add rax, 0x10
cmp rax, rbx
jae 0x180003cf4
mov rax, qword [rcx]
lea rcx, [rax + 8]
cmp rcx, 0x400000
jbe 0x180003cf4
add rax, 0x10
cmp rax, rbx
jae 0x180003cf4
mov rax, qword [rcx]
lea rcx, [rax + 0x10]
cmp rcx, 0x400000
jbe 0x180003cf4
add rax, 0x18
cmp rax, rbx
jae 0x180003cf4
mov rax, qword [rcx]
lea rcx, [rax + 0x30]
cmp rcx, 0x400000
jbe 0x180003cf4
add rax, 0x38
cmp rax, rbx
jae 0x180003cf4
mov rax, qword [rcx]
lea rcx, [rax + 0x18]
cmp rcx, 0x400000
jbe 0x180003cf4
add rax, 0x20
cmp rax, rbx
jae 0x180003cf4
mov rax, qword [rcx]
lea rcx, [rax + 0x28]
cmp rcx, 0x400000
jbe 0x180003cf4
add rax, 0x30
cmp rax, rbx
jae 0x180003cf4
mov rax, qword [rcx]
lea rcx, [rax + 0x38]
cmp rcx, 0x400000
jbe 0x180003cf4
add rax, 0x40
cmp rax, rbx
jae 0x180003cf4
mov rax, qword [rcx]
lea rcx, [rax + 0x10]
cmp rcx, 0x400000
jbe 0x180003cf4
add rax, 0x14
cmp rax, rbx
jae 0x180003cf4
mov dword [rcx], 0x3f800000
mov rbx, qword [rsp + 0x40]
add rsp, 0x30
pop rdi
ret