Function at 0x1400ae820
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rdi
push rbp
mov rbp, rsp
sub rsp, 0x50
mov rax, qword [0x1402325c0]
xor rax, rsp
mov qword [rbp - 0x10], rax
xor dil, dil
mov rbx, rcx
cmp byte [0x140250db9], dil
je 0x1400af05a
cmp byte [0x14024a314], dil
je 0x1400af05a
movss xmm0, dword [rcx + 0xbc]
movss xmm1, dword [0x140209948]
ucomiss xmm0, xmm1
jp 0x1400ae8c2
jne 0x1400ae8c2
movss xmm0, dword [rcx + 0xc0]
ucomiss xmm0, xmm1
jp 0x1400ae8c2
jne 0x1400ae8c2
movss xmm0, dword [rcx + 0xc4]
ucomiss xmm0, xmm1
jp 0x1400ae8c2
jne 0x1400ae8c2
mov rcx, qword [0x14024a2d8]
call fcn.14006b870
lea rdx, [rbp - 0x30]
mov rcx, rax
call fcn.14006a3e0
movsd xmm0, qword [rax]
movsd qword [rbx + 0xbc], xmm0
mov eax, dword [rax + 8]
mov dword [rbx + 0xc4], eax
mov ecx, dword [0x14025137c]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1400ae9e4
mov rdx, qword [0x14024a2d8]
movss xmm2, dword [rbx + 0xb8]
add rdx, 0x7b8
call fcn.1400f5760
mov byte [rbx + 0xa4], dil
mov ecx, dword [0x140251394]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1400ae924
movss xmm0, dword [rbx + 0xa8]
subss xmm0, dword [rbx + 0xb8]
movss dword [rbx + 0xa8], xmm0
jmp 0x1400ae96f
mov ecx, dword [0x140251398]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1400ae972
movss xmm0, dword [0x1402513f8]
subss xmm0, dword [0x14020969c]
movss xmm1, dword [rbx + 0xa8]
comiss xmm1, xmm0
jb 0x1400ae95f
movss dword [rbx + 0xa8], xmm0
jmp 0x1400af05a
addss xmm1, dword [rbx + 0xb8]
movss dword [rbx + 0xa8], xmm1
mov dil, 1
mov rcx, qword [0x14024a2d8]
call fcn.14006b870
lea rdx, [rbp - 0x20]
mov rcx, rax
call fcn.14006a3e0
movss xmm0, dword [rbp - 0x20]
ucomiss xmm0, dword [rbx + 0xbc]
jp 0x1400ae9ba
jne 0x1400ae9ba
movss xmm0, dword [rbp - 0x1c]
ucomiss xmm0, dword [rbx + 0xc0]
jp 0x1400ae9ba
jne 0x1400ae9ba
movss xmm0, dword [rbp - 0x18]
ucomiss xmm0, dword [rbx + 0xc4]
jp 0x1400ae9ba
je 0x1400ae9c3
test dil, dil
je 0x1400af05a
mov rcx, qword [0x14024a2d8]
call fcn.14006b870
movss xmm0, dword [rbx + 0xbc]
subss xmm0, dword [0x1402513f8]
jmp 0x1400aeaf8
mov ecx, dword [0x140251380]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1400aeb0d
mov rdx, qword [0x14024a2d8]
movss xmm2, dword [rbx + 0xb8]
add rdx, 0x7b8
call fcn.1400f5760
mov byte [rbx + 0xa4], dil
mov ecx, dword [0x140251394]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1400aea46
movss xmm0, dword [rbx + 0xb8]
addss xmm0, dword [rbx + 0xa8]
movss dword [rbx + 0xa8], xmm0
jmp 0x1400aea88
mov ecx, dword [0x140251398]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1400aea8b
movss xmm0, dword [0x14020969c]
subss xmm0, dword [0x1402513f8]
movss xmm1, dword [rbx + 0xa8]
comiss xmm0, xmm1
jae 0x1400ae952
subss xmm1, dword [rbx + 0xb8]
movss dword [rbx + 0xa8], xmm1
mov dil, 1
mov rcx, qword [0x14024a2d8]
call fcn.14006b870
lea rdx, [rbp - 0x20]
mov rcx, rax
call fcn.14006a3e0
movss xmm0, dword [rbp - 0x20]
ucomiss xmm0, dword [rbx + 0xbc]
jp 0x1400aead3
jne 0x1400aead3
movss xmm0, dword [rbp - 0x1c]
ucomiss xmm0, dword [rbx + 0xc0]
jp 0x1400aead3
jne 0x1400aead3
movss xmm0, dword [rbp - 0x18]
ucomiss xmm0, dword [rbx + 0xc4]
jp 0x1400aead3
je 0x1400aeadc
test dil, dil
je 0x1400af05a
mov rcx, qword [0x14024a2d8]
call fcn.14006b870
movss xmm0, dword [0x1402513f8]
addss xmm0, dword [rbx + 0xbc]
addss xmm0, dword [rbx + 0xa8]
movss xmm2, dword [rbx + 0xc4]
jmp 0x1400aefae
mov ecx, dword [0x14025138c]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1400aec4f
mov rdx, qword [0x14024a2d8]
movss xmm2, dword [rbx + 0xb8]
add rdx, 0x7b8
call fcn.1400f5760
mov byte [rbx + 0xa4], dil
mov ecx, dword [0x140251394]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1400aeb6f
movss xmm0, dword [rbx + 0xb8]
addss xmm0, dword [rbx + 0xac]
movss dword [rbx + 0xac], xmm0
jmp 0x1400aebba
mov ecx, dword [0x140251398]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1400aebbd
movss xmm0, dword [0x14020969c]
subss xmm0, dword [0x1402513fc]
movss xmm1, dword [rbx + 0xac]
comiss xmm0, xmm1
jb 0x1400aebaa
movss dword [rbx + 0xac], xmm0
jmp 0x1400af05a
subss xmm1, dword [rbx + 0xb8]
movss dword [rbx + 0xac], xmm1
mov dil, 1
mov rcx, qword [0x14024a2d8]
call fcn.14006b870
lea rdx, [rbp - 0x20]
mov rcx, rax
call fcn.14006a3e0
movss xmm0, dword [rbp - 0x20]
ucomiss xmm0, dword [rbx + 0xbc]
jp 0x1400aec05
jne 0x1400aec05
movss xmm0, dword [rbp - 0x1c]
ucomiss xmm0, dword [rbx + 0xc0]
jp 0x1400aec05
jne 0x1400aec05
movss xmm0, dword [rbp - 0x18]
ucomiss xmm0, dword [rbx + 0xc4]
jp 0x1400aec05
je 0x1400aec0e
test dil, dil
je 0x1400af05a
mov rcx, qword [0x14024a2d8]
call fcn.14006b870
movss xmm2, dword [0x1402513fc]
addss xmm2, dword [rbx + 0xc0]
addss xmm2, dword [rbx + 0xac]
movss xmm1, dword [rbx + 0xc4]
movss xmm0, dword [rbx + 0xbc]
movss dword [rbp - 0x28], xmm1
unpcklps xmm0, xmm2
jmp 0x1400aefbe
mov ecx, dword [0x140251390]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1400aed68
mov rdx, qword [0x14024a2d8]
movss xmm2, dword [rbx + 0xb8]
add rdx, 0x7b8
call fcn.1400f5760
mov byte [rbx + 0xa4], dil
mov ecx, dword [0x140251394]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1400aecb1
movss xmm0, dword [rbx + 0xac]
subss xmm0, dword [rbx + 0xb8]
movss dword [rbx + 0xac], xmm0
jmp 0x1400aecf3
mov ecx, dword [0x140251398]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1400aecf6
movss xmm0, dword [0x1402513fc]
subss xmm0, dword [0x14020969c]
movss xmm1, dword [rbx + 0xac]
comiss xmm1, xmm0
jae 0x1400aeb9d
addss xmm1, dword [rbx + 0xb8]
movss dword [rbx + 0xac], xmm1
mov dil, 1
mov rcx, qword [0x14024a2d8]
call fcn.14006b870
lea rdx, [rbp - 0x20]
mov rcx, rax
call fcn.14006a3e0
movss xmm0, dword [rbp - 0x20]
ucomiss xmm0, dword [rbx + 0xbc]
jp 0x1400aed3e
jne 0x1400aed3e
movss xmm0, dword [rbp - 0x1c]
ucomiss xmm0, dword [rbx + 0xc0]
jp 0x1400aed3e
jne 0x1400aed3e
movss xmm0, dword [rbp - 0x18]
ucomiss xmm0, dword [rbx + 0xc4]
jp 0x1400aed3e
je 0x1400aed47
test dil, dil
je 0x1400af05a
mov rcx, qword [0x14024a2d8]
call fcn.14006b870
movss xmm2, dword [rbx + 0xc0]
subss xmm2, dword [0x1402513fc]
jmp 0x1400aec2a
mov ecx, dword [0x140251384]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1400aee8a
mov rdx, qword [0x14024a2d8]
movss xmm2, dword [rbx + 0xb8]
add rdx, 0x7b8
call fcn.1400f5760
mov byte [rbx + 0xa4], dil
mov ecx, dword [0x140251394]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1400aedca
movss xmm0, dword [rbx + 0xb8]
addss xmm0, dword [rbx + 0xb0]
movss dword [rbx + 0xb0], xmm0
jmp 0x1400aee15
mov ecx, dword [0x140251398]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1400aee18
movss xmm0, dword [0x14020969c]
subss xmm0, dword [0x140251400]
movss xmm1, dword [rbx + 0xb0]
comiss xmm0, xmm1
jb 0x1400aee05
movss dword [rbx + 0xb0], xmm0
jmp 0x1400af05a
subss xmm1, dword [rbx + 0xb8]
movss dword [rbx + 0xb0], xmm1
mov dil, 1
mov rcx, qword [0x14024a2d8]
call fcn.14006b870
lea rdx, [rbp - 0x20]
mov rcx, rax
call fcn.14006a3e0
movss xmm0, dword [rbp - 0x20]
ucomiss xmm0, dword [rbx + 0xbc]
jp 0x1400aee60
jne 0x1400aee60
movss xmm0, dword [rbp - 0x1c]
ucomiss xmm0, dword [rbx + 0xc0]
jp 0x1400aee60
jne 0x1400aee60
movss xmm0, dword [rbp - 0x18]
ucomiss xmm0, dword [rbx + 0xc4]
jp 0x1400aee60
je 0x1400aee69
test dil, dil
je 0x1400af05a
mov rcx, qword [0x14024a2d8]
call fcn.14006b870
movss xmm2, dword [0x140251400]
addss xmm2, dword [rbx + 0xc4]
jmp 0x1400aef9e
mov ecx, dword [0x140251388]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1400aefd4
mov rdx, qword [0x14024a2d8]
movss xmm2, dword [rbx + 0xb8]
add rdx, 0x7b8
call fcn.1400f5760
mov byte [rbx + 0xa4], dil
mov ecx, dword [0x140251394]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1400aeeec
movss xmm0, dword [rbx + 0xb0]
subss xmm0, dword [rbx + 0xb8]
movss dword [rbx + 0xb0], xmm0
jmp 0x1400aef2e
mov ecx, dword [0x140251398]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1400aef31
movss xmm0, dword [0x140251400]
subss xmm0, dword [0x14020969c]
movss xmm1, dword [rbx + 0xb0]
comiss xmm1, xmm0
jae 0x1400aedf8
addss xmm1, dword [rbx + 0xb8]
movss dword [rbx + 0xb0], xmm1
mov dil, 1
mov rcx, qword [0x14024a2d8]
call fcn.14006b870
lea rdx, [rbp - 0x20]
mov rcx, rax
call fcn.14006a3e0
movss xmm0, dword [rbp - 0x20]
ucomiss xmm0, dword [rbx + 0xbc]
jp 0x1400aef79
jne 0x1400aef79
movss xmm0, dword [rbp - 0x1c]
ucomiss xmm0, dword [rbx + 0xc0]
jp 0x1400aef79
jne 0x1400aef79
movss xmm0, dword [rbp - 0x18]
ucomiss xmm0, dword [rbx + 0xc4]
jp 0x1400aef79
je 0x1400aef82
test dil, dil
je 0x1400af05a
mov rcx, qword [0x14024a2d8]
call fcn.14006b870
movss xmm2, dword [rbx + 0xc4]
subss xmm2, dword [0x140251400]
addss xmm2, dword [rbx + 0xb0]
movss xmm0, dword [rbx + 0xbc]
movss xmm1, dword [rbx + 0xc0]
unpcklps xmm0, xmm1
movss dword [rbp - 0x28], xmm2
lea rdx, [rbp - 0x30]
movsd qword [rbp - 0x30], xmm0
mov rcx, rax
call fcn.14006a4d0
jmp 0x1400af05a
cmp byte [rbx + 0xa4], dil
jne 0x1400af05a
movss xmm2, dword [0x140209674]
xor eax, eax
mov qword [rbx + 0xa8], rax
mov dword [rbx + 0xb0], eax
mov rdx, qword [0x14024a2d8]
add rdx, 0x7b8
call fcn.1400f5760
mov rcx, qword [0x14024a2d8]
call fcn.14006b870
mov ecx, dword [rbx + 0xc4]
lea rdx, [rbp - 0x30]
movsd xmm0, qword [rbx + 0xbc]
mov dword [rbp - 0x28], ecx
mov rcx, rax
movsd qword [rbp - 0x30], xmm0
call fcn.14006a4d0
mov dword [rbx + 0xbc], 0xbf800000
mov dword [rbx + 0xc0], 0xbf800000
mov dword [rbx + 0xc4], 0xbf800000
mov byte [rbx + 0xa4], 1
mov rcx, qword [rbp - 0x10]
xor rcx, rsp
call fcn.1401b5670
mov rbx, qword [rsp + 0x68]
mov rdi, qword [rsp + 0x70]
add rsp, 0x50
pop rbp
ret