Function at 0x1400ae780
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 0x1400aef86
cmp byte [0x14024a314], dil
je 0x1400aef86
movss xmm0, dword [rcx + 0xbc]
movss xmm1, dword [0x140209948]
ucomiss xmm0, xmm1
jp 0x1400ae822
jne 0x1400ae822
movss xmm0, dword [rcx + 0xc0]
ucomiss xmm0, xmm1
jp 0x1400ae822
jne 0x1400ae822
movss xmm0, dword [rcx + 0xc4]
ucomiss xmm0, xmm1
jp 0x1400ae822
jne 0x1400ae822
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 0x1400ae93d
movss xmm2, dword [rbx + 0xb8]
mov rdx, qword [0x14024a2d8]
call fcn.1400f5680
mov byte [rbx + 0xa4], dil
mov ecx, dword [0x140251394]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1400ae87d
movss xmm0, dword [rbx + 0xa8]
subss xmm0, dword [rbx + 0xb8]
movss dword [rbx + 0xa8], xmm0
jmp 0x1400ae8c8
mov ecx, dword [0x140251398]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1400ae8cb
movss xmm0, dword [0x1402513f8]
subss xmm0, dword [0x14020969c]
movss xmm1, dword [rbx + 0xa8]
comiss xmm1, xmm0
jb 0x1400ae8b8
movss dword [rbx + 0xa8], xmm0
jmp 0x1400aef86
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 0x1400ae913
jne 0x1400ae913
movss xmm0, dword [rbp - 0x1c]
ucomiss xmm0, dword [rbx + 0xc0]
jp 0x1400ae913
jne 0x1400ae913
movss xmm0, dword [rbp - 0x18]
ucomiss xmm0, dword [rbx + 0xc4]
jp 0x1400ae913
je 0x1400ae91c
test dil, dil
je 0x1400aef86
mov rcx, qword [0x14024a2d8]
call fcn.14006b870
movss xmm0, dword [rbx + 0xbc]
subss xmm0, dword [0x1402513f8]
jmp 0x1400aea4a
mov ecx, dword [0x140251380]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1400aea5f
movss xmm2, dword [rbx + 0xb8]
mov rdx, qword [0x14024a2d8]
call fcn.1400f5680
mov byte [rbx + 0xa4], dil
mov ecx, dword [0x140251394]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1400ae998
movss xmm0, dword [rbx + 0xb8]
addss xmm0, dword [rbx + 0xa8]
movss dword [rbx + 0xa8], xmm0
jmp 0x1400ae9da
mov ecx, dword [0x140251398]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1400ae9dd
movss xmm0, dword [0x14020969c]
subss xmm0, dword [0x1402513f8]
movss xmm1, dword [rbx + 0xa8]
comiss xmm0, xmm1
jae 0x1400ae8ab
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 0x1400aea25
jne 0x1400aea25
movss xmm0, dword [rbp - 0x1c]
ucomiss xmm0, dword [rbx + 0xc0]
jp 0x1400aea25
jne 0x1400aea25
movss xmm0, dword [rbp - 0x18]
ucomiss xmm0, dword [rbx + 0xc4]
jp 0x1400aea25
je 0x1400aea2e
test dil, dil
je 0x1400aef86
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 0x1400aeee4
mov ecx, dword [0x14025138c]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1400aeb9a
movss xmm2, dword [rbx + 0xb8]
mov rdx, qword [0x14024a2d8]
call fcn.1400f5680
mov byte [rbx + 0xa4], dil
mov ecx, dword [0x140251394]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1400aeaba
movss xmm0, dword [rbx + 0xac]
addss xmm0, dword [rbx + 0xb8]
movss dword [rbx + 0xac], xmm0
jmp 0x1400aeb05
mov ecx, dword [0x140251398]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1400aeb08
movss xmm0, dword [0x14020969c]
subss xmm0, dword [0x1402513fc]
movss xmm1, dword [rbx + 0xac]
comiss xmm0, xmm1
jb 0x1400aeaf5
movss dword [rbx + 0xac], xmm0
jmp 0x1400aef86
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 0x1400aeb50
jne 0x1400aeb50
movss xmm0, dword [rbp - 0x1c]
ucomiss xmm0, dword [rbx + 0xc0]
jp 0x1400aeb50
jne 0x1400aeb50
movss xmm0, dword [rbp - 0x18]
ucomiss xmm0, dword [rbx + 0xc4]
jp 0x1400aeb50
je 0x1400aeb59
test dil, dil
je 0x1400aef86
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 0x1400aeef4
mov ecx, dword [0x140251390]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1400aecac
movss xmm2, dword [rbx + 0xb8]
mov rdx, qword [0x14024a2d8]
call fcn.1400f5680
mov byte [rbx + 0xa4], dil
mov ecx, dword [0x140251394]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1400aebf5
movss xmm0, dword [rbx + 0xac]
subss xmm0, dword [rbx + 0xb8]
movss dword [rbx + 0xac], xmm0
jmp 0x1400aec37
mov ecx, dword [0x140251398]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1400aec3a
movss xmm0, dword [0x1402513fc]
subss xmm0, dword [0x14020969c]
movss xmm1, dword [rbx + 0xac]
comiss xmm1, xmm0
jae 0x1400aeae8
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 0x1400aec82
jne 0x1400aec82
movss xmm0, dword [rbp - 0x1c]
ucomiss xmm0, dword [rbx + 0xc0]
jp 0x1400aec82
jne 0x1400aec82
movss xmm0, dword [rbp - 0x18]
ucomiss xmm0, dword [rbx + 0xc4]
jp 0x1400aec82
je 0x1400aec8b
test dil, dil
je 0x1400aef86
mov rcx, qword [0x14024a2d8]
call fcn.14006b870
movss xmm2, dword [rbx + 0xc0]
subss xmm2, dword [0x1402513fc]
jmp 0x1400aeb75
mov ecx, dword [0x140251384]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1400aedc7
movss xmm2, dword [rbx + 0xb8]
mov rdx, qword [0x14024a2d8]
call fcn.1400f5680
mov byte [rbx + 0xa4], dil
mov ecx, dword [0x140251394]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1400aed07
movss xmm0, dword [rbx + 0xb8]
addss xmm0, dword [rbx + 0xb0]
movss dword [rbx + 0xb0], xmm0
jmp 0x1400aed52
mov ecx, dword [0x140251398]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1400aed55
movss xmm0, dword [0x14020969c]
subss xmm0, dword [0x140251400]
movss xmm1, dword [rbx + 0xb0]
comiss xmm0, xmm1
jb 0x1400aed42
movss dword [rbx + 0xb0], xmm0
jmp 0x1400aef86
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 0x1400aed9d
jne 0x1400aed9d
movss xmm0, dword [rbp - 0x1c]
ucomiss xmm0, dword [rbx + 0xc0]
jp 0x1400aed9d
jne 0x1400aed9d
movss xmm0, dword [rbp - 0x18]
ucomiss xmm0, dword [rbx + 0xc4]
jp 0x1400aed9d
je 0x1400aeda6
test dil, dil
je 0x1400aef86
mov rcx, qword [0x14024a2d8]
call fcn.14006b870
movss xmm2, dword [0x140251400]
addss xmm2, dword [rbx + 0xc4]
jmp 0x1400aeed4
mov ecx, dword [0x140251388]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1400aef07
movss xmm2, dword [rbx + 0xb8]
mov rdx, qword [0x14024a2d8]
call fcn.1400f5680
mov byte [rbx + 0xa4], dil
mov ecx, dword [0x140251394]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1400aee22
movss xmm0, dword [rbx + 0xb0]
subss xmm0, dword [rbx + 0xb8]
movss dword [rbx + 0xb0], xmm0
jmp 0x1400aee64
mov ecx, dword [0x140251398]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1400aee67
movss xmm0, dword [0x140251400]
subss xmm0, dword [0x14020969c]
movss xmm1, dword [rbx + 0xb0]
comiss xmm1, xmm0
jae 0x1400aed35
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 0x1400aeeaf
jne 0x1400aeeaf
movss xmm0, dword [rbp - 0x1c]
ucomiss xmm0, dword [rbx + 0xc0]
jp 0x1400aeeaf
jne 0x1400aeeaf
movss xmm0, dword [rbp - 0x18]
ucomiss xmm0, dword [rbx + 0xc4]
jp 0x1400aeeaf
je 0x1400aeeb8
test dil, dil
je 0x1400aef86
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 0x1400aef86
cmp byte [rbx + 0xa4], dil
jne 0x1400aef86
movss xmm2, dword [0x140209674]
xor eax, eax
mov qword [rbx + 0xa8], rax
mov dword [rbx + 0xb0], eax
mov rdx, qword [0x14024a2d8]
call fcn.1400f5680
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.1401b5590
mov rbx, qword [rsp + 0x68]
mov rdi, qword [rsp + 0x70]
add rsp, 0x50
pop rbp
ret