Function at 0x140076b70
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, rsp
push rdi
sub rsp, 0x60
cmp byte [rcx + 0x1279], 0
mov rdi, rcx
jne 0x140076dc7
mov qword [rax + 0x18], rbp
xor ebp, ebp
mov qword [rax + 0x20], rsi
movaps xmmword [rax - 0x18], xmm6
movss xmm6, dword [0x1400921dc]
mov qword [rax + 0x10], rbx
cmp byte [rdi + 0x134a], bpl
jne 0x140076bd2
cmp byte [rdi + 0x1348], bpl
jne 0x140076bd2
lea rdx, [rdi + 0x1388]
lea rcx, [rsp + 0x30]
call fcn.1400734e0
mov rdx, rax
call fcn.1400741f0
jmp 0x140076d52
lea rcx, [rdi + 0x1320]
call qword [sym.imp.USER32.dll_GetCursorPos]
xor edx, edx
mov qword [rsp + 0x20], rbp
xor r9d, r9d
xor r8d, r8d
lea ecx, [rdx + 0x20]
call qword [sym.imp.USER32.dll_mouse_event]
lea rcx, [rsp + 0x70]
mov qword [rsp + 0x70], 1
call fcn.140013300
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x140076cb2
xor edx, edx
mov qword [rsp + 0x20], rbp
xor r9d, r9d
xor r8d, r8d
lea ecx, [rdx + 4]
call qword [sym.imp.USER32.dll_mouse_event]
lea rdx, [rdi + 0x1388]
lea rcx, [rsp + 0x30]
call fcn.1400734e0
mov rdx, rax
call fcn.1400741f0
mov eax, dword [rdi + 0x2c]
cdq
sub eax, edx
sar eax, 1
mov r8d, eax
mov eax, dword [rdi + 0x28]
cdq
sub eax, edx
mov edx, r8d
sar eax, 1
mov ecx, eax
call qword [sym.imp.USER32.dll_SetCursorPos]
xor edx, edx
mov qword [rsp + 0x20], rbp
xor r9d, r9d
xor r8d, r8d
lea ecx, [rdx + 2]
call qword [sym.imp.USER32.dll_mouse_event]
xor edx, edx
mov qword [rsp + 0x20], rbp
xor r9d, r9d
xor r8d, r8d
lea ecx, [rdx + 4]
call qword [sym.imp.USER32.dll_mouse_event]
xor edx, edx
mov qword [rsp + 0x20], rbp
xor r9d, r9d
xor r8d, r8d
lea ecx, [rdx + 2]
call qword [sym.imp.USER32.dll_mouse_event]
mov ecx, 2
jmp 0x140076d04
lea rdx, [rdi + 0x1388]
lea rcx, [rsp + 0x30]
call fcn.1400734e0
mov rdx, rax
call fcn.1400741f0
mov eax, dword [rdi + 0x2c]
cdq
sub eax, edx
sar eax, 1
mov r8d, eax
mov eax, dword [rdi + 0x28]
cdq
sub eax, edx
mov edx, r8d
sar eax, 1
mov ecx, eax
call qword [sym.imp.USER32.dll_SetCursorPos]
xor edx, edx
mov qword [rsp + 0x20], rbp
xor r9d, r9d
xor r8d, r8d
lea ecx, [rdx + 2]
call qword [sym.imp.USER32.dll_mouse_event]
mov ecx, 4
xor r9d, r9d
mov qword [rsp + 0x20], rbp
xor r8d, r8d
xor edx, edx
call qword [sym.imp.USER32.dll_mouse_event]
lea rcx, [rsp + 0x70]
mov qword [rsp + 0x70], 1
call fcn.140013300
xor edx, edx
mov qword [rsp + 0x20], rbp
xor r9d, r9d
xor r8d, r8d
lea ecx, [rdx + 0x40]
call qword [sym.imp.USER32.dll_mouse_event]
mov edx, dword [rdi + 0x1324]
mov ecx, dword [rdi + 0x1320]
call qword [sym.imp.USER32.dll_SetCursorPos]
xor ecx, ecx
call qword [sym.imp.api_ms_win_crt_time_l1_1_0.dll__time64]
mov rcx, rax
call qword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_srand]
call qword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_rand]
movss xmm0, dword [rdi + 0x1364]
cdq
idiv dword [rdi + 0x135c]
mulss xmm0, xmm6
mov ebx, edx
mov dword [rdi + 0x1360], edx
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
cvttss2si eax, xmm0
lea rcx, [rsp + 0x70]
add eax, ebx
cdqe
mov qword [rsp + 0x70], rax
call fcn.140013300
cmp byte [rdi + 0x1279], bpl
je 0x140076ba2
movaps xmm6, xmmword [rsp + 0x50]
mov rsi, qword [rsp + 0x88]
mov rbp, qword [rsp + 0x80]
mov rbx, qword [rsp + 0x78]
add rsp, 0x60
pop rdi
ret