Function at 0x14001f920
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x80
movaps xmmword [rsp + 0x70], xmm6
mov rax, qword [0x140057030]
xor rax, rsp
mov qword [rsp + 0x68], rax
lea rcx, [rsp + 0x60]
call qword [sym.imp.USER32.dll_GetCursorPos]
test eax, eax
je 0x14001f9a8
mov eax, dword [rsp + 0x60]
sub eax, dword [0x14005ddd8]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm0, dword [0x140057064]
cvttss2si eax, xmm0
mov dword [0x14005de08], eax
mov eax, dword [rsp + 0x64]
sub eax, dword [0x14005ddcc]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm0, dword [0x140057068]
cvttss2si eax, xmm0
mov dword [0x14005de24], eax
xor r15d, r15d
cmp byte [0x14005de28], r15b
je 0x14001fa87
mov ebx, 3
nop dword [rax]
mov ecx, ebx
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov rdx, qword [0x14005de18]
test ax, ax
je 0x14001f9da
mov rax, qword [rdx + 0x30]
mov dword [rax], ebx
inc ebx
cmp ebx, 0x100
jl 0x14001f9c0
cmp byte [0x14005de29], r15b
je 0x14001fa87
mov r10d, dword [0x14005706c]
lea eax, [r10 + 0xaf]
mov r8d, dword [0x14005de24]
mov r9d, dword [0x140057070]
mov r11d, dword [0x14005de08]
cmp r11d, eax
jge 0x14001fa49
lea eax, [r10 + 0x7d]
cmp r11d, eax
jle 0x14001fa49
lea eax, [r9 + 0xe1]
cmp r8d, eax
jge 0x14001fa49
lea eax, [r9 + 0xaf]
movzx ecx, byte [0x14005de28]
cmp r8d, eax
cmovg ecx, r15d
mov byte [0x14005de28], cl
lea eax, [r10 + 0x113]
cmp r11d, eax
jge 0x14001fa87
lea eax, [r10 + 0xe1]
cmp r11d, eax
jle 0x14001fa87
lea eax, [r9 + 0xe1]
cmp r8d, eax
jge 0x14001fa87
lea eax, [r9 + 0xaf]
cmp r8d, eax
jle 0x14001fa87
mov byte [0x14005de28], r15b
mov rax, qword [rdx + 0x30]
mov dword [rax], r15d
mov r13d, 1
mov ecx, r13d
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
setne byte [0x14005de29]
lea ecx, [r13 + 1]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
setne byte [0x14005de12]
mov esi, dword [0x14005de08]
mov edi, dword [0x14005de24]
movzx r14d, byte [0x14005de29]
mov ebx, dword [0x14005706c]
mov r11d, dword [0x140057070]
test r14b, r14b
je 0x14001fb2a
lea eax, [rbx + 0x190]
cmp esi, eax
jge 0x14001fb06
cmp esi, ebx
jle 0x14001fb06
lea eax, [r11 + 0x14]
cmp edi, eax
jge 0x14001fb06
movzx eax, byte [0x14005de11]
cmp edi, r11d
cmovg eax, r13d
mov byte [0x14005de11], al
jmp 0x14001fb0d
movzx eax, byte [0x14005de11]
test al, al
je 0x14001fb31
lea ebx, [rsi - 0xc8]
mov dword [0x14005706c], ebx
lea r11d, [rdi - 0xa]
mov dword [0x140057070], r11d
jmp 0x14001fb31
mov byte [0x14005de11], r15b
mov r9d, r15d
mov rbp, qword [0x14005f080]
mov r8, qword [0x14005f078]
sub rbp, r8
sar rbp, 6
test rbp, rbp
je 0x14001fba9
xor edx, edx
mov eax, 0x190
div rbp
mov r10, rax
nop dword [rax + rax]
test r14b, r14b
je 0x14001fb9e
lea ecx, [r9 + 1]
imul ecx, r10d
add ecx, ebx
cmp esi, ecx
jge 0x14001fb9e
mov eax, r10d
imul eax, r9d
add eax, ebx
cmp esi, eax
jle 0x14001fb9e
lea eax, [r11 + 0x3c]
cmp edi, eax
jge 0x14001fb9e
lea eax, [r11 + 0x14]
mov ecx, dword [0x14005de14]
cmp edi, eax
cmovg ecx, r9d
mov dword [0x14005de14], ecx
inc r9d
movsxd rax, r9d
cmp rax, rbp
jb 0x14001fb60
mov r10d, r15d
movsxd r9, dword [0x14005de14]
cmp rbp, r9
jbe 0x140020136
mov rbp, r9
shl rbp, 6
movabs r12, 0x4924924924924925
nop dword [rax]
mov rcx, qword [r8 + rbp + 0x30]
sub rcx, qword [r8 + rbp + 0x28]
mov rax, r12
imul rcx
mov rcx, rdx
sar rcx, 4
mov rax, rcx
shr rax, 0x3f
add rcx, rax
movsxd rax, r10d
cmp rax, rcx
mov rax, qword [0x14005f080]
jae 0x14001fc71
sub rax, r8
sar rax, 6
cmp rax, r9
jbe 0x140020136
xor edx, edx
mov eax, 0x190
div rcx
test r14b, r14b
je 0x14001fc52
lea ecx, [r10 + 1]
imul ecx, eax
add ecx, ebx
cmp esi, ecx
jge 0x14001fc52
imul eax, r10d
add eax, ebx
cmp esi, eax
jle 0x14001fc52
lea eax, [r11 + 0x64]
cmp edi, eax
jge 0x14001fc52
lea eax, [r11 + 0x3c]
cmp edi, eax
jle 0x14001fc52
mov dword [r8 + rbp + 0x20], r10d
mov r8, qword [0x14005f078]
inc r10d
mov rax, qword [0x14005f080]
sub rax, r8
sar rax, 6
cmp rax, r9
jbe 0x140020136
jmp 0x14001fbd0
mov ebp, r15d
sub rax, r8
sar rax, 6
cmp rax, r9
jbe 0x140020136
mov rdi, r15
movss xmm6, dword [0x14004a78c]
mov r14d, 2
shl r9, 6
movsxd r10, dword [0x14005de14]
mov rax, qword [0x14005f080]
sub rax, r8
sar rax, 6
cmp rax, r10
jbe 0x140020136
shl r10, 6
movsxd rbx, dword [r10 + r8 + 0x20]
mov r11, qword [r9 + r8 + 0x28]
mov rcx, qword [r9 + r8 + 0x30]
sub rcx, r11
mov rax, r12
imul rcx
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp rdx, rbx
jbe 0x14002013c
imul r9, rbx, 0x38
mov rcx, qword [r9 + r11 + 0x28]
sub rcx, qword [r9 + r11 + 0x20]
sar rcx, 3
movsxd rax, ebp
cmp rax, rcx
jae 0x1400200f7
mov esi, r15d
cmp ebp, 5
setg sil
cmp ebp, 0xa
cmovg esi, r14d
mov r11, qword [r10 + r8 + 0x28]
mov rcx, qword [r10 + r8 + 0x30]
sub rcx, r11
mov rax, r12
imul rcx
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp rdx, rbx
jbe 0x14002013c
mov rbx, qword [r11 + r9 + 0x20]
mov rax, qword [r11 + r9 + 0x28]
sub rax, rbx
sar rax, 3
cmp rax, rdi
jbe 0x140020130
mov rbx, qword [rbx + rdi*8]
cmp dword [rbx], 1
jne 0x14001fe66
mov dword [rsp + 0x20], r13d
lea rdx, [rbx + 8]
lea rcx, [rsp + 0x28]
call fcn.14000b460
mov rdx, qword [rbx + 0x28]
mov qword [rsp + 0x48], rdx
mov rax, qword [rbx + 0x30]
mov qword [rsp + 0x50], rax
movzx r9d, byte [rbx + 0x38]
mov byte [rsp + 0x58], r9b
mov eax, dword [0x14005de0c]
add eax, 0x64
cmp eax, dword [0x14005de20]
jge 0x14001fe1b
imul r8d, esi, 0x96
add r8d, dword [0x14005706c]
lea eax, [r8 + 0x19]
mov ecx, dword [0x14005de08]
cmp ecx, eax
jge 0x14001fe1b
lea eax, [r8 + 0xa]
cmp ecx, eax
jle 0x14001fe1b
lea ecx, [rsi + rsi*2]
add ecx, ecx
mov eax, ebp
sub eax, ecx
imul r8d, eax, 0x1e
add r8d, dword [0x140057070]
lea eax, [r8 + 0x7d]
mov ecx, dword [0x14005de24]
cmp ecx, eax
jge 0x14001fe1b
lea eax, [r8 + 0x6e]
cmp ecx, eax
jle 0x14001fe1b
cmp byte [0x14005de29], 0
je 0x14001ff92
cmp byte [rdx], 0
sete al
mov byte [rdx], al
mov dword [0x14005de0c], r15d
mov dword [0x14005de20], r15d
mov r8, qword [0x14005f078]
mov rdx, qword [rsp + 0x40]
cmp rdx, 0x10
jb 0x14001fe66
inc rdx
mov rcx, qword [rsp + 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14001fe5a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400200f0
call fcn.14003efdc
mov r8, qword [0x14005f078]
movsxd rcx, dword [0x14005de14]
mov rax, qword [0x14005f080]
sub rax, r8
sar rax, 6
cmp rax, rcx
jbe 0x140020136
shl rcx, 6
movsxd r10, dword [rcx + r8 + 0x20]
mov r9, qword [rcx + r8 + 0x28]
mov rcx, qword [rcx + r8 + 0x30]
sub rcx, r9
mov rax, r12
imul rcx
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp rdx, r10
jbe 0x14002013c
imul rax, r10, 0x38
mov rbx, qword [rax + r9 + 0x20]
mov rcx, qword [rax + r9 + 0x28]
sub rcx, rbx
sar rcx, 3
cmp rcx, rdi
jbe 0x140020130
mov rbx, qword [rbx + rdi*8]
cmp dword [rbx], 2
jne 0x1400200cc
mov dword [rsp + 0x20], r14d
lea rdx, [rbx + 8]
lea rcx, [rsp + 0x28]
call fcn.14000b460
movss xmm3, dword [rbx + 0x28]
movss dword [rsp + 0x48], xmm3
movss xmm2, dword [rbx + 0x2c]
movss dword [rsp + 0x4c], xmm2
mov rbx, qword [rbx + 0x30]
cmp byte [0x14005de29], 0
je 0x140020085
imul r10d, esi, 0x96
mov r11d, dword [0x14005706c]
lea ecx, [r10 + r11]
lea eax, [rcx + 0x6e]
mov edx, dword [0x14005de08]
cmp edx, eax
jge 0x140020051
lea eax, [rcx + 0xa]
cmp edx, eax
jle 0x140020051
lea ecx, [rsi + rsi*2]
add ecx, ecx
mov eax, ebp
sub eax, ecx
imul r8d, eax, 0x1e
add r8d, dword [0x140057070]
lea eax, [r8 + 0x87]
mov r9d, dword [0x14005de24]
cmp r9d, eax
jge 0x140020051
lea eax, [r8 + 0x7d]
movzx ecx, byte [0x14005de13]
cmp r9d, eax
cmovg ecx, r13d
mov byte [0x14005de13], cl
jmp 0x140020058
cmp byte [0x14005de12], 0
je 0x14001fe1b
cmp byte [0x14005de28], 0
jne 0x14001fe1b
test r9b, r9b
jne 0x14001ffb6
jmp 0x14002008c
mov byte [0x14005de28], 1
movsxd rcx, dword [0x14005de14]
mov rax, qword [0x14005f080]
mov r8, qword [0x14005f078]
sub rax, r8
sar rax, 6
cmp rax, rcx
jbe 0x14002014e
shl rcx, 6
movsxd r9, dword [rcx + r8 + 0x20]
mov r10, qword [rcx + r8 + 0x28]
mov rcx, qword [rcx + r8 + 0x30]
sub rcx, r10
mov rax, r12
imul rcx
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp rdx, r9
jbe 0x140020148
imul rax, r9, 0x38
mov rcx, qword [rax + r10 + 0x20]
mov rax, qword [rax + r10 + 0x28]
sub rax, rcx
sar rax, 3
cmp rax, rdi
jbe 0x140020142
mov rax, qword [rcx + rdi*8]
mov qword [0x14005de18], rax
mov dword [0x14005de0c], r15d
mov dword [0x14005de20], r15d
jmp 0x14001fe22
movzx ecx, byte [0x14005de13]
test cl, cl
je 0x14002008c
sub edx, r10d
sub edx, r11d
sub edx, 0xa
movd xmm1, edx
cvtdq2ps xmm1, xmm1
movaps xmm0, xmm2
divss xmm0, xmm6
mulss xmm1, xmm0
maxss xmm3, xmm1
minss xmm2, xmm3
movss dword [rbx], xmm2
jmp 0x14002008c
mov byte [0x14005de13], 0
mov rdx, qword [rsp + 0x40]
cmp rdx, 0x10
jb 0x1400200c5
inc rdx
mov rcx, qword [rsp + 0x28]
cmp rdx, 0x1000
mov rax, rcx
jb 0x1400200c0
mov rcx, qword [rcx - 8]
sub rax, rcx
add rdx, 0x27
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400200f0
call fcn.14003efdc
mov r8, qword [0x14005f078]
inc ebp
inc rdi
movsxd r9, dword [0x14005de14]
mov rax, qword [0x14005f080]
sub rax, r8
sar rax, 6
cmp rax, r9
jbe 0x140020136
jmp 0x14001fc95
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
inc dword [0x14005de20]
mov rcx, qword [rsp + 0x68]
xor rcx, rsp
call fcn.14003ed20
lea r11, [rsp + 0x80]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
movaps xmm6, xmmword [rsp + 0x70]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
call fcn.140032160
int3
call fcn.140032160
int3
call fcn.140032160
nop
call fcn.140032160
nop
call fcn.140032160
int3
call fcn.140032160
int3