Function at 0x140046f20
Capabilities:
Log keystrokes via polling

Disassembly:
push rbp
push rbx
push rdi
mov rbp, rsp
sub rsp, 0x70
mov rdi, rcx
mov ebx, edx
mov ecx, dword [reloc.WS2_32.dll_getsockname]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14004722d
mov rcx, qword [0x1400eac68]
lea rax, [rdi + 0x26a0]
mov qword [rbp - 0x20], rax
lea r8, [rbp - 0x30]
lea rax, [rbp + 0x30]
mov qword [rsp + 0x90], rsi
xor esi, esi
mov qword [rbp - 0x18], rax
mov eax, dword [0x1400eac70]
mov edx, 0x30e254a8
mov qword [rsp + 0x38], rsi
mov qword [rsp + 0x30], rsi
lea r9d, [rsi + 0x28]
mov dword [rsp + 0x28], esi
mov dword [rbp - 0x2c], eax
mov dword [rbp + 0x30], esi
mov qword [rbp - 0x28], 0xb196a29
mov dword [rbp - 0x30], 0xf932b28
mov qword [rbp - 0x10], 4
mov qword [rsp + 0x20], rsi
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
cmp dword [rbp + 0x30], esi
jg 0x140047225
mov rdx, qword [0x1400e91a0]
mov r8d, ebx
call fcn.140042c20
test al, al
je 0x140047225
mov rax, qword [0x1400e9290]
lea r9d, [rsi + 0x28]
mov rcx, qword [0x1400eac68]
lea r8, [rbp - 0x30]
add rax, 0x1954
mov qword [rsp + 0x38], rsi
mov qword [rbp - 0x20], rax
mov edx, 0x30e254a8
lea rax, [rbp + 0x30]
mov qword [rsp + 0x30], rsi
mov qword [rbp - 0x18], rax
mov eax, dword [0x1400eac70]
mov dword [rsp + 0x28], esi
mov dword [rbp - 0x2c], eax
mov dword [rbp + 0x30], esi
mov qword [rbp - 0x28], 0xb196a29
mov dword [rbp - 0x30], 0xf932b28
mov qword [rbp - 0x10], 4
mov qword [rsp + 0x20], rsi
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
movzx ecx, word [rbp + 0x30]
mov rax, qword [0x1400eb298]
shl ecx, 5
add rax, 0x1e21418
add rcx, rax
mov dword [rbp + 0x38], esi
mov qword [rbp - 0x28], 0xb196a29
mov dword [rbp - 0x30], 0xf932b28
call fcn.140054670
mov rcx, qword [0x1400eac68]
lea r9d, [rsi + 0x28]
mov qword [rbp - 0x20], rax
lea r8, [rbp - 0x30]
lea rax, [rbp + 0x38]
mov qword [rsp + 0x38], rsi
mov qword [rbp - 0x18], rax
mov edx, 0x30e254a8
mov eax, dword [0x1400eac70]
mov qword [rsp + 0x30], rsi
mov dword [rsp + 0x28], esi
mov dword [rbp - 0x2c], eax
mov qword [rbp - 0x10], 4
mov qword [rsp + 0x20], rsi
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
cmp dword [rbp + 0x38], esi
je 0x140047225
xor ecx, ecx
call qword [sym.imp.USER32.dll_GetSystemMetrics]
cdq
lea ecx, [rsi + 1]
sub eax, edx
sar eax, 1
mov ebx, eax
call qword [sym.imp.USER32.dll_GetSystemMetrics]
movss xmm0, dword [0x1400eaca0]
cdq
mulss xmm0, dword [0x1400d76b4]
sub eax, edx
mov r8d, dword [reloc.WS2_32.dll_ioctlsocket]
sar eax, 1
addss xmm0, dword [0x1400eac80]
cvttss2si edx, xmm0
mov ecx, edx
sub ecx, r8d
cmp ebx, ecx
jl 0x140047225
lea ecx, [r8 + rdx]
cmp ebx, ecx
jg 0x140047225
movss xmm2, dword [0x1400eb6a4]
movd xmm1, eax
cvtdq2ps xmm1, xmm1
comiss xmm1, xmm2
jb 0x140047225
movss xmm0, dword [0x1400eac5c]
addss xmm0, xmm2
comiss xmm0, xmm1
jb 0x140047225
mov rax, qword [0x1400eb298]
lea r9d, [rsi + 0x28]
mov rcx, qword [0x1400eac68]
lea r8, [rbp - 0x30]
add rax, 0x7420870
mov qword [rsp + 0x38], rsi
mov qword [rbp - 0x20], rax
mov edx, 0x30e254a8
lea rax, [rbp + 0x30]
mov qword [rsp + 0x30], rsi
mov qword [rbp - 0x18], rax
mov eax, dword [0x1400eac70]
mov dword [rsp + 0x28], esi
mov dword [rbp - 0x2c], eax
mov dword [rbp + 0x30], 5
mov qword [rbp - 0x28], 0x4c1741a
mov dword [rbp - 0x30], 0xf932b28
mov qword [rbp - 0x10], 4
mov qword [rsp + 0x20], rsi
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
lea ecx, [rsi + 1]
call qword [sym.imp.KERNEL32.dll_Sleep]
mov rax, qword [0x1400eb298]
lea r9d, [rsi + 0x28]
mov rcx, qword [0x1400eac68]
lea r8, [rbp - 0x30]
add rax, 0x7420870
mov qword [rsp + 0x38], rsi
mov qword [rbp - 0x20], rax
mov edx, 0x30e254a8
lea rax, [rbp + 0x30]
mov qword [rsp + 0x30], rsi
mov qword [rbp - 0x18], rax
mov eax, dword [0x1400eac70]
mov dword [rsp + 0x28], esi
mov dword [rbp - 0x2c], eax
mov dword [rbp + 0x30], 4
mov qword [rbp - 0x28], 0x4c1741a
mov dword [rbp - 0x30], 0xf932b28
mov qword [rbp - 0x10], 4
mov qword [rsp + 0x20], rsi
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov rsi, qword [rsp + 0x90]
add rsp, 0x70
pop rdi
pop rbx
pop rbp
ret