Function at 0x1400527a0
Capabilities:
Log keystrokes via polling

Disassembly:
sub rsp, 0x98
mov ecx, 0x61
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14005283b
cmp byte [0x140068a53], 0
sete al
mov byte [0x140068a53], al
cmp al, 1
jne 0x140052809
mov byte [0x140068a3c], 0
mov byte [0x140068a64], 0
mov byte [0x140068a56], 0
mov byte [0x140068a3f], 0
mov byte [0x140068a57], 0
mov byte [0x140068a3d], 0
mov byte [0x140068a55], 0
mov byte [0x140068a3e], 0
jmp 0x14005282b
test al, al
jne 0x14005282b
mov byte [0x140068a54], al
mov byte [0x140068a65], al
mov byte [0x140068a51], al
mov byte [0x140068a3a], al
mov byte [0x140068a3b], al
mov edx, 0x96
mov ecx, 0x12c
call qword [sym.imp.KERNEL32.dll_Beep]
mov ecx, 0x62
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1400528cf
cmp byte [0x140068a3c], 0
sete al
mov byte [0x140068a3c], al
cmp al, 1
jne 0x14005289d
mov byte [0x140068a53], 0
mov byte [0x140068a64], 0
mov byte [0x140068a56], 0
mov byte [0x140068a3f], 0
mov byte [0x140068a57], 0
mov byte [0x140068a3d], 0
mov byte [0x140068a55], 0
mov byte [0x140068a3e], 0
jmp 0x1400528bf
test al, al
jne 0x1400528bf
mov byte [0x140068a54], al
mov byte [0x140068a65], al
mov byte [0x140068a51], al
mov byte [0x140068a3a], al
mov byte [0x140068a3b], al
mov edx, 0x96
mov ecx, 0x12c
call qword [sym.imp.KERNEL32.dll_Beep]
mov ecx, 0x63
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x140052963
cmp byte [0x140068a64], 0
sete al
mov byte [0x140068a64], al
cmp al, 1
jne 0x140052931
mov byte [0x140068a53], 0
mov byte [0x140068a3c], 0
mov byte [0x140068a56], 0
mov byte [0x140068a3f], 0
mov byte [0x140068a57], 0
mov byte [0x140068a3d], 0
mov byte [0x140068a55], 0
mov byte [0x140068a3e], 0
jmp 0x140052953
test al, al
jne 0x140052953
mov byte [0x140068a54], al
mov byte [0x140068a65], al
mov byte [0x140068a51], al
mov byte [0x140068a3a], al
mov byte [0x140068a3b], al
mov edx, 0x96
mov ecx, 0x12c
call qword [sym.imp.KERNEL32.dll_Beep]
mov ecx, 0x65
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1400529f7
cmp byte [0x140068a56], 0
sete al
mov byte [0x140068a56], al
cmp al, 1
jne 0x1400529c5
mov byte [0x140068a53], 0
mov byte [0x140068a3c], 0
mov byte [0x140068a64], 0
mov byte [0x140068a3f], 0
mov byte [0x140068a57], 0
mov byte [0x140068a3d], 0
mov byte [0x140068a55], 0
mov byte [0x140068a3e], 0
jmp 0x1400529e7
test al, al
jne 0x1400529e7
mov byte [0x140068a54], al
mov byte [0x140068a65], al
mov byte [0x140068a51], al
mov byte [0x140068a3a], al
mov byte [0x140068a3b], al
mov edx, 0x96
mov ecx, 0x12c
call qword [sym.imp.KERNEL32.dll_Beep]
mov ecx, 0x64
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x140052a8b
cmp byte [0x140068a3f], 0
sete al
mov byte [0x140068a3f], al
cmp al, 1
jne 0x140052a59
mov byte [0x140068a53], 0
mov byte [0x140068a3c], 0
mov byte [0x140068a64], 0
mov byte [0x140068a56], 0
mov byte [0x140068a57], 0
mov byte [0x140068a3d], 0
mov byte [0x140068a55], 0
mov byte [0x140068a3e], 0
jmp 0x140052a7b
test al, al
jne 0x140052a7b
mov byte [0x140068a54], al
mov byte [0x140068a65], al
mov byte [0x140068a51], al
mov byte [0x140068a3a], al
mov byte [0x140068a3b], al
mov edx, 0x96
mov ecx, 0x12c
call qword [sym.imp.KERNEL32.dll_Beep]
mov ecx, 0x66
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x140052b1f
cmp byte [0x140068a55], 0
sete al
mov byte [0x140068a55], al
cmp al, 1
jne 0x140052aed
mov byte [0x140068a53], 0
mov byte [0x140068a3c], 0
mov byte [0x140068a64], 0
mov byte [0x140068a56], 0
mov byte [0x140068a3f], 0
mov byte [0x140068a57], 0
mov byte [0x140068a3d], 0
mov byte [0x140068a3e], 0
jmp 0x140052b0f
test al, al
jne 0x140052b0f
mov byte [0x140068a54], al
mov byte [0x140068a65], al
mov byte [0x140068a51], al
mov byte [0x140068a3a], al
mov byte [0x140068a3b], al
mov edx, 0x96
mov ecx, 0x12c
call qword [sym.imp.KERNEL32.dll_Beep]
mov ecx, 0x67
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x140052bb3
cmp byte [0x140068a57], 0
sete al
mov byte [0x140068a57], al
cmp al, 1
jne 0x140052b81
mov byte [0x140068a53], 0
mov byte [0x140068a3c], 0
mov byte [0x140068a64], 0
mov byte [0x140068a56], 0
mov byte [0x140068a3f], 0
mov byte [0x140068a3d], 0
mov byte [0x140068a55], 0
mov byte [0x140068a3e], 0
jmp 0x140052ba3
test al, al
jne 0x140052ba3
mov byte [0x140068a54], al
mov byte [0x140068a65], al
mov byte [0x140068a51], al
mov byte [0x140068a3a], al
mov byte [0x140068a3b], al
mov edx, 0x96
mov ecx, 0x12c
call qword [sym.imp.KERNEL32.dll_Beep]
mov ecx, 0x68
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x140052c47
cmp byte [0x140068a3d], 0
sete al
mov byte [0x140068a3d], al
cmp al, 1
jne 0x140052c15
mov byte [0x140068a53], 0
mov byte [0x140068a3c], 0
mov byte [0x140068a64], 0
mov byte [0x140068a56], 0
mov byte [0x140068a3f], 0
mov byte [0x140068a57], 0
mov byte [0x140068a55], 0
mov byte [0x140068a3e], 0
jmp 0x140052c37
test al, al
jne 0x140052c37
mov byte [0x140068a54], al
mov byte [0x140068a65], al
mov byte [0x140068a51], al
mov byte [0x140068a3a], al
mov byte [0x140068a3b], al
mov edx, 0x96
mov ecx, 0x12c
call qword [sym.imp.KERNEL32.dll_Beep]
mov ecx, 0x69
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x140052ce2
cmp byte [0x140068a3e], 0
sete al
mov byte [0x140068a3e], al
cmp al, 1
jne 0x140052cb0
mov byte [0x140068a53], 0
mov byte [0x140068a3c], 0
mov byte [0x140068a64], 0
mov byte [0x140068a56], 0
mov byte [0x140068a3f], 0
mov byte [0x140068a57], 0
mov byte [0x140068a3d], 0
mov byte [0x140068a55], 0
mov byte [0x140068a3e], 0
jmp 0x140052cd2
test al, al
jne 0x140052cd2
mov byte [0x140068a54], al
mov byte [0x140068a65], al
mov byte [0x140068a51], al
mov byte [0x140068a3a], al
mov byte [0x140068a3b], al
mov edx, 0x96
mov ecx, 0x12c
call qword [sym.imp.KERNEL32.dll_Beep]
mov ecx, 0x71
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x140052d2b
cmp byte [0x140068a54], 0
sete al
mov byte [0x140068a54], al
cmp al, 1
jne 0x140052d1b
mov byte [0x140068a51], 0
mov byte [0x140068a50], 0
mov byte [0x140068a65], 0
mov edx, 0x96
mov ecx, 0x12c
call qword [sym.imp.KERNEL32.dll_Beep]
mov ecx, 0x72
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x140052d74
cmp byte [0x140068a65], 0
sete al
mov byte [0x140068a65], al
cmp al, 1
jne 0x140052d64
mov byte [0x140068a51], 0
mov byte [0x140068a50], 0
mov byte [0x140068a54], 0
mov edx, 0x96
mov ecx, 0x12c
call qword [sym.imp.KERNEL32.dll_Beep]
mov ecx, 0x74
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x140052dca
cmp byte [0x140068a50], 0
sete al
mov byte [0x140068a50], al
cmp al, 1
jne 0x140052db6
mov byte [0x140068a54], 0
mov byte [0x140068a51], 0
mov byte [0x140068a3a], 0
mov byte [0x140068a65], 0
jmp 0x140052dca
test al, al
jne 0x140052dca
mov edx, 0x96
mov ecx, 0x12c
call qword [sym.imp.KERNEL32.dll_Beep]
mov ecx, 0x73
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x140052e20
cmp byte [0x140068a51], 0
sete al
mov byte [0x140068a51], al
cmp al, 1
jne 0x140052e0c
mov byte [0x140068a54], 0
mov byte [0x140068a50], 0
mov byte [0x140068a3a], 0
mov byte [0x140068a65], 0
jmp 0x140052e20
test al, al
jne 0x140052e20
mov edx, 0x96
mov ecx, 0x12c
call qword [sym.imp.KERNEL32.dll_Beep]
mov ecx, 0x75
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x140052e54
cmp byte [0x140068a52], 0
sete al
mov byte [0x140068a52], al
test al, al
jne 0x140052e54
mov edx, 0x96
mov ecx, 0x12c
call qword [sym.imp.KERNEL32.dll_Beep]
mov ecx, 0x7b
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x140052e74
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov cl, 0x70
call qword [sym.imp.USER32.dll_keybd_event]
cmp byte [0x140068a53], 1
je 0x140052ec9
cmp byte [0x140068a3c], 1
je 0x140052ec9
cmp byte [0x140068a64], 1
je 0x140052ec9
cmp byte [0x140068a3f], 1
je 0x140052ec9
cmp byte [0x140068a56], 1
je 0x140052ec9
cmp byte [0x140068a57], 1
je 0x140052ec9
cmp byte [0x140068a3d], 1
je 0x140052ec9
cmp byte [0x140068a55], 1
je 0x140052ec9
cmp byte [0x140068a3e], 1
jne 0x140053121
mov qword [rsp + 0x58], r15
xor r15d, r15d
mov dword [rsp + 0xb0], r15d
call fcn.140052480
test eax, eax
js 0x14005311c
mov qword [rsp + 0x90], rbx
mov qword [rsp + 0x88], rbp
mov qword [rsp + 0x80], rsi
mov qword [rsp + 0x78], rdi
mov qword [rsp + 0x70], r12
mov qword [rsp + 0x68], r13
mov qword [rsp + 0x60], r14
movaps xmmword [rsp + 0x40], xmm6
movss xmm6, dword [0x14005e698]
nop
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x1400530eb
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x1400530eb
mov ecx, r15d
call fcn.140051b70
mov ecx, r15d
cvttsd2si r12d, xmm0
call fcn.1400513c0
mov ecx, r15d
cvttsd2si r13d, xmm0
call fcn.1400523d0
movzx eax, byte [0x140068a52]
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
cmp al, 1
jne 0x140052f90
movaps xmm0, xmm1
mulss xmm0, xmm6
subss xmm1, xmm0
cvttss2si ebp, xmm1
add ebp, 2
jmp 0x140052f94
cvttss2si ebp, xmm1
call fcn.140052330
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
cmp al, 1
jne 0x140052fba
movaps xmm0, xmm1
mulss xmm0, xmm6
subss xmm1, xmm0
cvttss2si r14d, xmm1
add r14d, 2
jmp 0x140052fbf
cvttss2si r14d, xmm1
xor ecx, ecx
mov dword [rsp + 0xa8], r14d
xor r9d, r9d
mov dword [rsp + 0xa0], ecx
cmp ebp, 1
jl 0x140053068
mov r15d, ebp
mov dword [rsp + 0x30], r12d
mov dword [rsp + 0xb8], r13d
mov r14d, ebp
nop
mov eax, r13d
mov qword [rsp + 0x20], 0
cdq
idiv ebp
mov esi, eax
mov eax, r12d
cdq
idiv ebp
mov edi, eax
mov eax, r15d
cdq
mov r8d, edi
idiv ebp
sub r8d, r9d
mov edx, esi
xor r9d, r9d
sub edx, ecx
mov ebx, eax
lea ecx, [r9 + 1]
call qword [sym.imp.USER32.dll_mouse_event]
mov ecx, ebx
sub ecx, dword [rsp + 0xa0]
call fcn.140051130
add r13d, dword [rsp + 0xb8]
add r15d, ebp
add r12d, dword [rsp + 0x30]
mov ecx, esi
mov dword [rsp + 0xa0], ebx
mov r9d, edi
sub r14, 1
jne 0x140052ff0
mov r14d, dword [rsp + 0xa8]
mov r15d, dword [rsp + 0xb0]
sub r14d, ebp
mov ecx, r14d
call fcn.140051130
cmp byte [0x140068a55], 1
je 0x1400530b8
cmp byte [0x140068a57], 1
je 0x1400530d2
call fcn.140052480
cmp r15d, eax
jne 0x1400530d2
cmp byte [0x140068a39], 1
jne 0x1400530b8
mov edx, 0x5a
mov ecx, 0x4b0
call qword [sym.imp.KERNEL32.dll_Beep]
mov edx, 0x5a
mov ecx, 0x5dc
call qword [sym.imp.KERNEL32.dll_Beep]
xor edx, edx
mov qword [rsp + 0x20], 0
xor r9d, r9d
xor r8d, r8d
lea ecx, [rdx + 4]
call qword [sym.imp.USER32.dll_mouse_event]
inc r15d
mov dword [rsp + 0xb0], r15d
call fcn.140052480
cmp r15d, eax
jle 0x140052f20
mov rbx, qword [rsp + 0x90]
mov r14, qword [rsp + 0x60]
mov r13, qword [rsp + 0x68]
mov r12, qword [rsp + 0x70]
mov rdi, qword [rsp + 0x78]
mov rsi, qword [rsp + 0x80]
mov rbp, qword [rsp + 0x88]
movaps xmm6, xmmword [rsp + 0x40]
mov r15, qword [rsp + 0x58]
add rsp, 0x98
ret