Function at 0x180023d10
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, rsp
push rbp
push r14
push r15
lea rbp, [rax - 0xb8]
sub rsp, 0x1a0
movss xmm0, dword [0x180250cd8]
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax - 0x20], rdi
mov edi, dword [0x18025043c]
mov qword [rax - 0x28], r12
movaps xmmword [rax - 0x38], xmm6
xorps xmm6, xmm6
ucomiss xmm0, xmm6
mov r12d, 4
jne 0x180023d94
call fcn.180019c90
mov rbx, rax
test rax, rax
je 0x180023d8c
mov rax, qword gs:[0x58]
mov rax, qword [rax + rdi*8]
mov eax, dword [r12 + rax]
cmp dword [0x1802770e0], eax
jg 0x1800242c6
mov rax, qword [0x180276e50]
movss xmm6, dword [rax + rbx]
movss dword [0x180250cd8], xmm6
call fcn.180019c90
mov rcx, rax
call fcn.180019a80
xor r15d, r15d
mov rsi, rax
movabs r14, 0x7fffffff0000
lea rdx, [rax + 0x18]
cmp rdx, 0x40000
jbe 0x18002403b
lea rcx, [rdx + 8]
cmp rcx, r14
jae 0x180023dec
mov rcx, qword [rdx]
add rcx, 0x18
cmp rcx, 0x40000
jbe 0x180023dec
lea rax, [rcx + 4]
cmp rax, r14
jae 0x180023dec
cmp dword [rcx], 0x40547fde
je 0x180023e33
cmp rdx, 0x40000
jbe 0x18002403b
lea rax, [rdx + 8]
cmp rax, r14
jae 0x18002403b
mov rcx, qword [rdx]
add rcx, 0x18
cmp rcx, 0x40000
jbe 0x18002403b
lea rax, [rcx + 4]
cmp rax, r14
jae 0x18002403b
cmp dword [rcx], 0x847b9bf0
jne 0x18002403b
cmp byte [0x180250c3f], r15b
je 0x18002403b
call fcn.180019c90
mov rbx, rax
test rax, rax
je 0x180023e83
mov rcx, qword gs:[0x58]
mov rcx, qword [rcx + rdi*8]
mov ecx, dword [r12 + rcx]
cmp dword [0x180277b3c], ecx
jg 0x180024301
mov rax, qword [0x1802776c0]
movss xmm0, dword [rbx + rax]
comiss xmm0, dword [0x180156834]
jae 0x18002403b
lea rcx, [rsi + 0xa8]
cmp rcx, 0x40000
jbe 0x180023ec0
lea rax, [rcx + 8]
cmp rax, r14
jae 0x180023ec0
mov rcx, qword [rcx]
mov rbx, rcx
lea rdx, [rcx + 0x190]
cmp rdx, 0x40000
jbe 0x180023ec3
lea rax, [rdx + 1]
cmp rax, r14
jae 0x180023ec3
movzx edi, byte [rdx]
jmp 0x180023ec6
mov rbx, r15
xor dil, dil
call fcn.180019c90
mov rcx, rax
call fcn.180019060
movss xmm6, dword [rax]
test dil, dil
je 0x18002403b
mov r9, qword [0x180250b20]
lea rcx, [rsp + 0x20]
movabs rax, 0x2cce026997702d12
add r9, 0x583210
mov qword [rbp + 0xc0], rax
mov rax, qword [rbp + 0xc0]
mov qword [rsp + 0x20], rax
movabs rax, 0xaa0a5413955cf5f9
mov qword [rbp + 0xc0], rax
mov rax, qword [rbp + 0xc0]
mov qword [rsp + 0x28], rax
movabs rax, 0x2c9d020c97032d47
mov qword [rbp + 0xc0], rax
mov rax, qword [rbp + 0xc0]
mov qword [rsp + 0x30], rax
movabs rax, 0xaa0a54759530f59c
mov qword [rbp + 0xc0], rax
mov rax, qword [rbp + 0xc0]
movdqa xmm0, xmmword [rsp + 0x20]
mov qword [rsp + 0x38], rax
mov rax, 0xffffffffffffffff
xorps xmm0, xmmword [rsp + 0x30]
movdqa xmmword [rsp + 0x20], xmm0
nop
inc rax
cmp word [rcx + rax*2], r15w
jne 0x180023f80
mov r8d, 0x40
mov edx, r15d
cmp rax, r8
cmovb r8d, eax
mov dword [rsp + 0x50], r8d
test r8d, r8d
jle 0x180023fca
mov rcx, r15
nop word [rax + rax]
movzx eax, word [rsp + rcx + 0x20]
inc edx
mov word [rsp + rcx + 0x54], ax
lea rcx, [rcx + 2]
mov r8d, dword [rsp + 0x50]
cmp edx, r8d
jl 0x180023fb0
movsxd rax, r8d
lea rdx, [rbp - 0x20]
mov rcx, rbx
mov word [rsp + rax*2 + 0x54], r15w
movups xmm0, xmmword [rsp + 0x40]
movups xmm1, xmmword [rsp + 0x50]
movaps xmmword [rbp - 0x20], xmm0
movups xmm0, xmmword [rsp + 0x60]
movaps xmmword [rbp - 0x10], xmm1
movups xmm1, xmmword [rsp + 0x70]
movaps xmmword [rbp], xmm0
movups xmm0, xmmword [rbp - 0x80]
movaps xmmword [rbp + 0x10], xmm1
movups xmm1, xmmword [rbp - 0x70]
movaps xmmword [rbp + 0x20], xmm0
movups xmm0, xmmword [rbp - 0x60]
movaps xmmword [rbp + 0x30], xmm1
movups xmm1, xmmword [rbp - 0x50]
movaps xmmword [rbp + 0x40], xmm0
movups xmm0, xmmword [rbp - 0x40]
movaps xmmword [rbp + 0x50], xmm1
movsd xmm1, qword [rbp - 0x30]
movaps xmmword [rbp + 0x60], xmm0
movsd qword [rbp + 0x70], xmm1
call r9
movss dword [0x180250cd8], xmm6
mov rcx, qword [0x180250b20]
movaps xmm6, xmmword [rsp + 0x180]
add rcx, 0x338f418
mov r12, qword [rsp + 0x190]
mov rdi, qword [rsp + 0x198]
mov rsi, qword [rsp + 0x1d0]
cmp rcx, 0x40000
jbe 0x18002409c
lea rax, [rcx + 8]
cmp rax, r14
jae 0x18002409c
mov rbx, qword [rcx]
add rbx, 0xb8
cmp rbx, 0x40000
jbe 0x18002409c
lea rax, [rbx + 8]
cmp rax, r14
jae 0x18002409c
mov rbx, qword [rbx]
jmp 0x18002409f
mov rbx, r15
cmp byte [0x180250bd8], r15b
je 0x1800240d7
mov ecx, dword [0x180250c74]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1800240d7
lea rcx, [rbx + 0x18]
cmp rcx, 0x40000
jbe 0x1800240f9
lea rax, [rcx + 4]
cmp rax, r14
jae 0x1800240f9
mov dword [rcx], 0x41200000
jmp 0x1800240f9
add rbx, 0x18
cmp rbx, 0x40000
jbe 0x1800240f9
lea rax, [rbx + 4]
cmp rax, r14
jae 0x1800240f9
movss xmm0, dword [0x18024b31c]
movss dword [rbx], xmm0
cmp byte [0x180250c4d], r15b
mov rbx, qword [rsp + 0x1c8]
je 0x180024164
call fcn.180019c90
add rax, 0x610
cmp rax, 0x40000
jbe 0x180024164
lea rcx, [rax + 8]
cmp rcx, r14
jae 0x180024164
mov rcx, qword [rax]
mov rdx, rcx
lea r8, [rcx + 0xc4]
cmp r8, 0x40000
jbe 0x180024148
lea rax, [r8 + 4]
cmp rax, r14
jae 0x180024148
mov dword [r8], r15d
lea rcx, [rdx + 0xc8]
cmp rcx, 0x40000
jbe 0x180024164
lea rax, [rcx + 4]
cmp rax, r14
jae 0x180024164
mov dword [rcx], r15d
cmp byte [0x180250c4f], r15b
je 0x1800241a9
call fcn.180019c90
lea rcx, [rax + 0x820]
cmp rcx, 0x40000
jbe 0x1800241a9
lea rax, [rcx + 4]
cmp rax, r14
jae 0x18002418f
mov edx, dword [rcx]
jmp 0x1800241a4
cmp rcx, 0x40000
jbe 0x1800241a9
lea rax, [rcx + 4]
mov edx, r15d
cmp rax, r14
jae 0x1800241a9
or edx, 4
mov dword [rcx], edx
cmp byte [0x180250c29], r15b
je 0x1800241f4
call fcn.180019c90
lea rcx, [rax + 0x820]
cmp rcx, 0x40000
jbe 0x1800241f4
lea rax, [rcx + 4]
cmp rax, r14
jae 0x1800241d4
mov edx, dword [rcx]
jmp 0x1800241e9
cmp rcx, 0x40000
jbe 0x1800241f4
lea rax, [rcx + 4]
mov edx, r15d
cmp rax, r14
jae 0x1800241f4
mov eax, r15d
cmp edx, 4
sete al
mov dword [rcx], eax
cmp byte [0x180250c3e], r15b
je 0x18002425f
call fcn.180019c90
mov rcx, qword [0x180250b20]
add rcx, 0x3347b18
cmp rcx, 0x40000
jbe 0x18002425f
lea rax, [rcx + 8]
cmp rax, r14
jae 0x18002425f
mov rcx, qword [rcx]
add rcx, 0xb8
cmp rcx, 0x40000
jbe 0x18002425f
lea rax, [rcx + 8]
cmp rax, r14
jae 0x18002425f
mov rcx, qword [rcx]
cmp rcx, 0x40000
jbe 0x18002425f
lea rax, [rcx + 4]
cmp rax, r14
jae 0x18002425f
movss xmm0, dword [0x18024b30c]
movss dword [rcx], xmm0
cmp byte [0x180250c63], r15b
je 0x1800242b9
mov ecx, dword [0x180250c8c]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1800242b9
call fcn.180019c90
add rax, 0x828
cmp rax, 0x40000
jbe 0x1800242b9
lea rcx, [rax + 8]
cmp rcx, r14
jae 0x1800242b9
mov rcx, qword [rax]
add rcx, 0x38
cmp rcx, 0x40000
jbe 0x1800242b9
lea rax, [rcx + 0xc]
cmp rax, r14
jae 0x1800242b9
mov dword [rcx], r15d
mov qword [rcx + 4], 0x3fc00000
add rsp, 0x1a0
pop r15
pop r14
pop rbp
ret
lea rcx, [0x1802770e0]
call fcn.1800c3d1c
cmp dword [0x1802770e0], 0xffffffff
jne 0x180023d80
mov ecx, 0xc566d10
call fcn.18000ebc0
lea rcx, [0x1802770e0]
mov qword [0x180276e50], rax
call fcn.1800c3cb0
jmp 0x180023d80
lea rcx, [0x180277b3c]
call fcn.1800c3d1c
cmp dword [0x180277b3c], 0xffffffff
jne 0x180023e6a
mov ecx, 0x43f29029
call fcn.18000ebc0
lea rcx, [0x180277b3c]
mov qword [0x1802776c0], rax
call fcn.1800c3cb0
jmp 0x180023e6a