Function at 0x1400adae0
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rdi
push rbp
mov rbp, rsp
sub rsp, 0x60
mov rax, qword [0x1402325c0]
xor rax, rsp
mov qword [rbp - 0x20], rax
xor dil, dil
mov rbx, rcx
cmp byte [0x140250ed9], dil
je 0x1400ae3aa
cmp byte [0x14024a3c4], dil
je 0x1400ae3aa
movss xmm0, dword [rcx + 0xbc]
movss xmm1, dword [0x1402094e0]
ucomiss xmm0, xmm1
jp 0x1400adb82
jne 0x1400adb82
movss xmm0, dword [rcx + 0xc0]
ucomiss xmm0, xmm1
jp 0x1400adb82
jne 0x1400adb82
movss xmm0, dword [rcx + 0xc4]
ucomiss xmm0, xmm1
jp 0x1400adb82
jne 0x1400adb82
mov rcx, qword [0x14024a378]
call fcn.14006a9c0
lea rdx, [rbp - 0x40]
mov rcx, rax
call fcn.140069530
movsd xmm0, qword [rax]
movsd qword [rbx + 0xbc], xmm0
mov eax, dword [rax + 8]
mov dword [rbx + 0xc4], eax
mov ecx, dword [0x1402514a4]
movaps xmmword [rsp + 0x50], xmm6
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1400adcb3
mov rdx, qword [0x140250f20]
mov rcx, qword [0x140257558]
add rdx, 0xb8
movss xmm6, dword [rbx + 0xb8]
call fcn.1400f3d70
movaps xmm2, xmm6
lea rdx, [rax + 0xc]
call fcn.1400f49c0
mov byte [rbx + 0xa4], dil
mov ecx, dword [0x1402514bc]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1400adbfc
movss xmm0, dword [rbx + 0xa8]
subss xmm0, dword [rbx + 0xb8]
movss dword [rbx + 0xa8], xmm0
jmp 0x1400adc3e
mov ecx, dword [0x1402514c0]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1400adc41
movss xmm0, dword [0x140251528]
subss xmm0, dword [0x14020925c]
movss xmm1, dword [rbx + 0xa8]
comiss xmm1, xmm0
jae 0x1400add56
addss xmm1, dword [rbx + 0xb8]
movss dword [rbx + 0xa8], xmm1
mov dil, 1
mov rcx, qword [0x14024a378]
call fcn.14006a9c0
lea rdx, [rbp - 0x30]
mov rcx, rax
call fcn.140069530
movss xmm0, dword [rbp - 0x30]
ucomiss xmm0, dword [rbx + 0xbc]
jp 0x1400adc89
jne 0x1400adc89
movss xmm0, dword [rbp - 0x2c]
ucomiss xmm0, dword [rbx + 0xc0]
jp 0x1400adc89
jne 0x1400adc89
movss xmm0, dword [rbp - 0x28]
ucomiss xmm0, dword [rbx + 0xc4]
jp 0x1400adc89
je 0x1400adc92
test dil, dil
je 0x1400ae3a5
mov rcx, qword [0x14024a378]
call fcn.14006a9c0
movss xmm0, dword [rbx + 0xbc]
subss xmm0, dword [0x140251528]
jmp 0x1400adde3
mov ecx, dword [0x1402514a8]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1400addf8
mov rdx, qword [0x140250f20]
mov rcx, qword [0x140257558]
add rdx, 0xb8
movss xmm6, dword [rbx + 0xb8]
call fcn.1400f3d70
movaps xmm2, xmm6
lea rdx, [rax + 0xc]
call fcn.1400f49c0
mov byte [rbx + 0xa4], dil
mov ecx, dword [0x1402514bc]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1400add28
movss xmm0, dword [rbx + 0xa8]
addss xmm0, dword [rbx + 0xb8]
movss dword [rbx + 0xa8], xmm0
jmp 0x1400add73
mov ecx, dword [0x1402514c0]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1400add76
movss xmm0, dword [0x14020925c]
subss xmm0, dword [0x140251528]
movss xmm1, dword [rbx + 0xa8]
comiss xmm0, xmm1
jb 0x1400add63
movss dword [rbx + 0xa8], xmm0
jmp 0x1400ae3a5
subss xmm1, dword [rbx + 0xb8]
movss dword [rbx + 0xa8], xmm1
mov dil, 1
mov rcx, qword [0x14024a378]
call fcn.14006a9c0
lea rdx, [rbp - 0x30]
mov rcx, rax
call fcn.140069530
movss xmm0, dword [rbp - 0x30]
ucomiss xmm0, dword [rbx + 0xbc]
jp 0x1400addbe
jne 0x1400addbe
movss xmm0, dword [rbp - 0x2c]
ucomiss xmm0, dword [rbx + 0xc0]
jp 0x1400addbe
jne 0x1400addbe
movss xmm0, dword [rbp - 0x28]
ucomiss xmm0, dword [rbx + 0xc4]
jp 0x1400addbe
je 0x1400addc7
test dil, dil
je 0x1400ae3a5
mov rcx, qword [0x14024a378]
call fcn.14006a9c0
movss xmm0, dword [0x140251528]
addss xmm0, dword [rbx + 0xbc]
addss xmm0, dword [rbx + 0xa8]
movss xmm2, dword [rbx + 0xc4]
jmp 0x1400ae2e5
mov ecx, dword [0x1402514b4]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1400adf44
mov rdx, qword [0x140250f20]
mov rcx, qword [0x140257558]
add rdx, 0xb8
movss xmm6, dword [rbx + 0xb8]
call fcn.1400f3d70
movaps xmm2, xmm6
lea rdx, [rax + 0xc]
call fcn.1400f49c0
mov byte [rbx + 0xa4], dil
mov ecx, dword [0x1402514bc]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1400ade6d
movss xmm0, dword [rbx + 0xac]
addss xmm0, dword [rbx + 0xb8]
movss dword [rbx + 0xac], xmm0
jmp 0x1400adeaf
mov ecx, dword [0x1402514c0]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1400adeb2
movss xmm0, dword [0x14020925c]
subss xmm0, dword [0x14025152c]
movss xmm1, dword [rbx + 0xac]
comiss xmm0, xmm1
jae 0x1400adfe7
subss xmm1, dword [rbx + 0xb8]
movss dword [rbx + 0xac], xmm1
mov dil, 1
mov rcx, qword [0x14024a378]
call fcn.14006a9c0
lea rdx, [rbp - 0x30]
mov rcx, rax
call fcn.140069530
movss xmm0, dword [rbp - 0x30]
ucomiss xmm0, dword [rbx + 0xbc]
jp 0x1400adefa
jne 0x1400adefa
movss xmm0, dword [rbp - 0x2c]
ucomiss xmm0, dword [rbx + 0xc0]
jp 0x1400adefa
jne 0x1400adefa
movss xmm0, dword [rbp - 0x28]
ucomiss xmm0, dword [rbx + 0xc4]
jp 0x1400adefa
je 0x1400adf03
test dil, dil
je 0x1400ae3a5
mov rcx, qword [0x14024a378]
call fcn.14006a9c0
movss xmm2, dword [0x14025152c]
addss xmm2, dword [rbx + 0xc0]
addss xmm2, dword [rbx + 0xac]
movss xmm1, dword [rbx + 0xc4]
movss xmm0, dword [rbx + 0xbc]
movss dword [rbp - 0x38], xmm1
unpcklps xmm0, xmm2
jmp 0x1400ae2f5
mov ecx, dword [0x1402514b8]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1400ae079
mov rdx, qword [0x140250f20]
mov rcx, qword [0x140257558]
add rdx, 0xb8
movss xmm6, dword [rbx + 0xb8]
call fcn.1400f3d70
movaps xmm2, xmm6
lea rdx, [rax + 0xc]
call fcn.1400f49c0
mov byte [rbx + 0xa4], dil
mov ecx, dword [0x1402514bc]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1400adfb9
movss xmm0, dword [rbx + 0xac]
subss xmm0, dword [rbx + 0xb8]
movss dword [rbx + 0xac], xmm0
jmp 0x1400ae004
mov ecx, dword [0x1402514c0]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1400ae007
movss xmm0, dword [0x14025152c]
subss xmm0, dword [0x14020925c]
movss xmm1, dword [rbx + 0xac]
comiss xmm1, xmm0
jb 0x1400adff4
movss dword [rbx + 0xac], xmm0
jmp 0x1400ae3a5
addss xmm1, dword [rbx + 0xb8]
movss dword [rbx + 0xac], xmm1
mov dil, 1
mov rcx, qword [0x14024a378]
call fcn.14006a9c0
lea rdx, [rbp - 0x30]
mov rcx, rax
call fcn.140069530
movss xmm0, dword [rbp - 0x30]
ucomiss xmm0, dword [rbx + 0xbc]
jp 0x1400ae04f
jne 0x1400ae04f
movss xmm0, dword [rbp - 0x2c]
ucomiss xmm0, dword [rbx + 0xc0]
jp 0x1400ae04f
jne 0x1400ae04f
movss xmm0, dword [rbp - 0x28]
ucomiss xmm0, dword [rbx + 0xc4]
jp 0x1400ae04f
je 0x1400ae058
test dil, dil
je 0x1400ae3a5
mov rcx, qword [0x14024a378]
call fcn.14006a9c0
movss xmm2, dword [rbx + 0xc0]
subss xmm2, dword [0x14025152c]
jmp 0x1400adf1f
mov ecx, dword [0x1402514ac]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1400ae1a5
mov rdx, qword [0x140250f20]
mov rcx, qword [0x140257558]
add rdx, 0xb8
movss xmm6, dword [rbx + 0xb8]
call fcn.1400f3d70
movaps xmm2, xmm6
lea rdx, [rax + 0xc]
call fcn.1400f49c0
mov byte [rbx + 0xa4], dil
mov ecx, dword [0x1402514bc]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1400ae0ee
movss xmm0, dword [rbx + 0xb8]
addss xmm0, dword [rbx + 0xb0]
movss dword [rbx + 0xb0], xmm0
jmp 0x1400ae130
mov ecx, dword [0x1402514c0]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1400ae133
movss xmm0, dword [0x14020925c]
subss xmm0, dword [0x140251530]
movss xmm1, dword [rbx + 0xb0]
comiss xmm0, xmm1
jae 0x1400ae248
subss xmm1, dword [rbx + 0xb8]
movss dword [rbx + 0xb0], xmm1
mov dil, 1
mov rcx, qword [0x14024a378]
call fcn.14006a9c0
lea rdx, [rbp - 0x30]
mov rcx, rax
call fcn.140069530
movss xmm0, dword [rbp - 0x30]
ucomiss xmm0, dword [rbx + 0xbc]
jp 0x1400ae17b
jne 0x1400ae17b
movss xmm0, dword [rbp - 0x2c]
ucomiss xmm0, dword [rbx + 0xc0]
jp 0x1400ae17b
jne 0x1400ae17b
movss xmm0, dword [rbp - 0x28]
ucomiss xmm0, dword [rbx + 0xc4]
jp 0x1400ae17b
je 0x1400ae184
test dil, dil
je 0x1400ae3a5
mov rcx, qword [0x14024a378]
call fcn.14006a9c0
movss xmm2, dword [0x140251530]
addss xmm2, dword [rbx + 0xc4]
jmp 0x1400ae2d5
mov ecx, dword [0x1402514b0]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1400ae30b
mov rdx, qword [0x140250f20]
mov rcx, qword [0x140257558]
add rdx, 0xb8
movss xmm6, dword [rbx + 0xb8]
call fcn.1400f3d70
movaps xmm2, xmm6
lea rdx, [rax + 0xc]
call fcn.1400f49c0
mov byte [rbx + 0xa4], dil
mov ecx, dword [0x1402514bc]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1400ae21a
movss xmm0, dword [rbx + 0xb0]
subss xmm0, dword [rbx + 0xb8]
movss dword [rbx + 0xb0], xmm0
jmp 0x1400ae265
mov ecx, dword [0x1402514c0]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1400ae268
movss xmm0, dword [0x140251530]
subss xmm0, dword [0x14020925c]
movss xmm1, dword [rbx + 0xb0]
comiss xmm1, xmm0
jb 0x1400ae255
movss dword [rbx + 0xb0], xmm0
jmp 0x1400ae3a5
addss xmm1, dword [rbx + 0xb8]
movss dword [rbx + 0xb0], xmm1
mov dil, 1
mov rcx, qword [0x14024a378]
call fcn.14006a9c0
lea rdx, [rbp - 0x30]
mov rcx, rax
call fcn.140069530
movss xmm0, dword [rbp - 0x30]
ucomiss xmm0, dword [rbx + 0xbc]
jp 0x1400ae2b0
jne 0x1400ae2b0
movss xmm0, dword [rbp - 0x2c]
ucomiss xmm0, dword [rbx + 0xc0]
jp 0x1400ae2b0
jne 0x1400ae2b0
movss xmm0, dword [rbp - 0x28]
ucomiss xmm0, dword [rbx + 0xc4]
jp 0x1400ae2b0
je 0x1400ae2b9
test dil, dil
je 0x1400ae3a5
mov rcx, qword [0x14024a378]
call fcn.14006a9c0
movss xmm2, dword [rbx + 0xc4]
subss xmm2, dword [0x140251530]
addss xmm2, dword [rbx + 0xb0]
movss xmm0, dword [rbx + 0xbc]
movss xmm1, dword [rbx + 0xc0]
unpcklps xmm0, xmm1
movss dword [rbp - 0x38], xmm2
lea rdx, [rbp - 0x40]
movsd qword [rbp - 0x40], xmm0
mov rcx, rax
call fcn.140069620
jmp 0x1400ae3a5
cmp byte [rbx + 0xa4], dil
jne 0x1400ae3a5
mov rcx, qword [0x140257558]
xor eax, eax
mov qword [rbx + 0xa8], rax
mov dword [rbx + 0xb0], eax
mov rdx, qword [0x140250f20]
add rdx, 0xb8
call fcn.1400f3d70
movss xmm2, dword [0x14020922c]
lea rdx, [rax + 0xc]
call fcn.1400f49c0
mov rcx, qword [0x14024a378]
call fcn.14006a9c0
mov ecx, dword [rbx + 0xc4]
lea rdx, [rbp - 0x40]
movsd xmm0, qword [rbx + 0xbc]
mov dword [rbp - 0x38], ecx
mov rcx, rax
movsd qword [rbp - 0x40], xmm0
call fcn.140069620
mov dword [rbx + 0xbc], 0xbf800000
mov dword [rbx + 0xc0], 0xbf800000
mov dword [rbx + 0xc4], 0xbf800000
mov byte [rbx + 0xa4], 1
movaps xmm6, xmmword [rsp + 0x50]
mov rcx, qword [rbp - 0x20]
xor rcx, rsp
call fcn.1401b4860
mov rbx, qword [rsp + 0x78]
mov rdi, qword [rsp + 0x80]
add rsp, 0x60
pop rbp
ret