Function at 0x1401fdf70
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r15
sub rsp, 0x20
mov rdi, r9
mov rbx, rdx
mov r9d, dword [rcx + 0x48]
mov rsi, rcx
cmp r9d, 0xffffffff
je 0x1401fe5fb
mov r10d, dword [rsi + 0xc4]
xor r12d, r12d
mov ecx, r12d
test r10d, r10d
je 0x1401fdfdb
mov r11, qword [rsi + 0xe0]
nop dword [rax]
mov eax, ecx
mov edx, dword [r11 + rax*4]
cmp edx, r9d
jb 0x1401fdfd4
cmp edx, dword [rsi + 0x4c]
jbe 0x1401fe5fb
inc ecx
cmp ecx, r10d
jb 0x1401fdfc0
mov ebp, dword [rsp + 0x6c]
sub ebx, r8d
sub ebp, dword [rsp + 0x74]
mov qword [rsp + 0x60], r14
test r9d, r9d
je 0x1401fdffd
mov eax, dword [rsi + 0xc0]
dec eax
cmp dword [rsi + 0x4c], eax
jne 0x1401fe000
mov ebx, r12d
cmp dword [rsi + 0x70], r12d
je 0x1401fe018
mov ecx, 0x11
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
cmovns ebx, r12d
mov eax, dword [rsi + 0xc4]
mov r9d, 0xffffffff
mov r8d, r9d
test eax, eax
je 0x1401fe06f
mov r11, qword [rsi + 0xd8]
mov r10d, eax
mov rdx, qword [rsi + 0xe0]
nop dword [rax]
mov eax, dword [rdx]
mov rcx, qword [r11 + rax*8]
cmp r9d, 0xffffffff
jne 0x1401fe051
mov r8d, ecx
jmp 0x1401fe062
cmp ecx, r8d
mov eax, ecx
cmovle eax, r8d
mov r8d, eax
cmp ecx, r9d
jge 0x1401fe065
mov r9d, ecx
add rdx, 4
sub r10, 1
jne 0x1401fe040
mov r10d, dword [rsi + 0xc0]
cmp dword [rsi + 0xb8], r10d
jne 0x1401fe0ec
movsxd rax, dword [rsi + 0x48]
test eax, eax
jle 0x1401fe0b5
mov rcx, rax
mov rax, qword [rsi + 0xd8]
mov rdx, qword [rax + rcx*8 - 8]
cmp r9d, 0xffffffff
jne 0x1401fe0a1
mov r8d, edx
jmp 0x1401fe0b2
cmp edx, r8d
mov eax, edx
cmovle eax, r8d
mov r8d, eax
cmp edx, r9d
jge 0x1401fe0b5
mov r9d, edx
movsxd rcx, dword [rsi + 0x4c]
lea eax, [r10 - 1]
cmp ecx, eax
jge 0x1401fe0ec
mov rax, qword [rsi + 0xd8]
mov rdx, qword [rax + rcx*8 + 8]
cmp r9d, 0xffffffff
jne 0x1401fe0d8
mov r8d, edx
jmp 0x1401fe0e9
cmp edx, r8d
mov eax, edx
cmovle eax, r8d
mov r8d, eax
cmp edx, r9d
jge 0x1401fe0ec
mov r9d, edx
movsxd r15, dword [rsi + 0x48]
movsxd r13, dword [rsi + 0x4c]
mov r14d, r15d
cmp r15d, r13d
ja 0x1401fe1fb
mov rdi, qword [rsi + 0xd8]
mov r12d, dword [rsi + 0xcc]
nop
mov eax, r14d
mov rax, qword [rdi + rax*8]
mov qword [rsp + 0x68], rax
test ebp, ebp
je 0x1401fe14f
mov r10d, dword [rsi + 0xac]
mov rdx, rax
shr rdx, 0x20
lea ecx, [rdx + rbp]
cmp ecx, r10d
jl 0x1401fe13b
mov ebp, r10d
sub ebp, edx
mov r10d, dword [rsi + 0xa8]
lea ecx, [rdx + rbp]
cmp ecx, r10d
jge 0x1401fe14f
mov ebp, r10d
sub ebp, edx
test ebx, ebx
je 0x1401fe182
cmp dword [rsi + 0x20], 0
lea edx, [rax + rbx]
je 0x1401fe161
mov ecx, dword [rsi + 0x28]
jmp 0x1401fe167
mov ecx, dword [rsi + 0xb4]
cmp edx, ecx
jl 0x1401fe170
sub ecx, eax
lea ebx, [rcx - 1]
mov edx, dword [rsi + 0xb0]
lea ecx, [rax + rbx]
cmp ecx, edx
jg 0x1401fe182
sub edx, eax
lea ebx, [rdx + 1]
xor edx, edx
test r12d, r12d
je 0x1401fe1e7
mov r11, qword [rsi + 0xe8]
mov r10d, edx
imul rcx, r10, 0x1c
cmp dword [rcx + r11], r14d
je 0x1401fe1a6
inc edx
cmp edx, r12d
jb 0x1401fe190
jmp 0x1401fe1e7
mov edx, dword [rsp + 0x6c]
lea r11d, [rax + rbx]
mov rax, qword [rsi + 0xe8]
add edx, ebp
imul rcx, r10, 0x1c
cmp dword [rcx + rax + 8], 0
je 0x1401fe1d0
cmp edx, dword [rcx + rax + 0xc]
jl 0x1401fe1ce
cmp edx, dword [rcx + rax + 0x10]
jle 0x1401fe1d0
xor ebp, ebp
cmp dword [rcx + rax + 4], 0
je 0x1401fe1e7
cmp r11d, dword [rcx + rax + 0x14]
jl 0x1401fe1e5
cmp r11d, dword [rcx + rax + 0x18]
jle 0x1401fe1e7
xor ebx, ebx
inc r14d
cmp r14d, r13d
jbe 0x1401fe110
mov rdi, qword [rsp + 0x78]
xor r12d, r12d
mov r14, qword [rsp + 0x60]
cmp r9d, 0xffffffff
je 0x1401fe243
test ebx, ebx
je 0x1401fe247
mov rcx, qword [rsi + 0xd8]
jle 0x1401fe22c
mov ecx, dword [rcx + r13*8]
lea eax, [rcx + rbx]
cmp eax, r8d
jl 0x1401fe243
cmp ecx, r8d
jge 0x1401fe243
sub r8d, ecx
mov ebx, r8d
jmp 0x1401fe243
mov ecx, dword [rcx + r15*8]
lea eax, [rcx + rbx]
cmp eax, r9d
jg 0x1401fe243
cmp ecx, r9d
jle 0x1401fe243
sub r9d, ecx
mov ebx, r9d
test ebx, ebx
jne 0x1401fe24f
test ebp, ebp
je 0x1401fe5fb
cmp r15d, r13d
ja 0x1401fe289
nop dword [rax]
nop dword [rax + rax]
mov eax, r15d
inc r15d
lea rcx, [rax*8]
mov rax, qword [rsi + 0xd8]
add dword [rcx + rax], ebx
mov rax, qword [rsi + 0xd8]
add dword [rcx + rax + 4], ebp
cmp r15d, dword [rsi + 0x4c]
jbe 0x1401fe260
mov rcx, qword [rsp + 0x80]
test ebx, ebx
je 0x1401fe297
mov dword [rcx], edi
test ebp, ebp
je 0x1401fe2a2
mov eax, dword [rsp + 0x7c]
mov dword [rcx + 4], eax
test ebx, ebx
jns 0x1401fe44e
mov eax, dword [rsi + 0x48]
mov r11d, 1
cmp eax, r11d
jbe 0x1401fe5e7
nop dword [rax]
mov r8, qword [rsi + 0xd8]
mov r9d, eax
cdqe
mov edx, r11d
mov ecx, dword [r8 + rax*8]
cmp dword [r8 + rdx*8], ecx
jl 0x1401fe42b
mov edx, dword [rsi + 0xcc]
mov r10d, r12d
test edx, edx
je 0x1401fe365
mov r8, qword [rsi + 0xe8]
mov eax, r10d
imul rcx, rax, 0x1c
cmp dword [rcx + r8], r11d
je 0x1401fe308
inc r10d
cmp r10d, edx
jb 0x1401fe2f1
jmp 0x1401fe365
lea eax, [rdx - 1]
cmp r10d, eax
jae 0x1401fe35c
mov r8, qword [rsi + 0xe8]
lea r9d, [r10 + 1]
mov eax, r9d
imul rdx, rax, 0x1c
mov eax, r10d
mov r10d, r9d
imul rcx, rax, 0x1c
movups xmm0, xmmword [rdx + r8]
movups xmmword [rcx + r8], xmm0
movsd xmm1, qword [rdx + r8 + 0x10]
movsd qword [rcx + r8 + 0x10], xmm1
mov eax, dword [rdx + r8 + 0x18]
mov dword [rcx + r8 + 0x18], eax
mov edx, dword [rsi + 0xcc]
lea eax, [rdx - 1]
cmp r9d, eax
jb 0x1401fe310
lea eax, [rdx - 1]
mov dword [rsi + 0xcc], eax
mov eax, dword [rsi + 0xc0]
dec eax
cmp r11d, eax
jae 0x1401fe41b
lea r9d, [r11 + 1]
nop word [rax + rax]
mov r8, qword [rsi + 0xd8]
lea ecx, [r9 - 1]
mov rax, qword [r8 + r9*8]
mov qword [r8 + rcx*8], rax
mov eax, r12d
mov r8d, dword [rsi + 0xc4]
test r8d, r8d
je 0x1401fe3cb
mov r10, qword [rsi + 0xe0]
nop dword [rax]
mov ecx, eax
mov edx, dword [r10 + rcx*4]
cmp edx, r9d
je 0x1401fe3c4
inc eax
cmp eax, r8d
jb 0x1401fe3b0
jmp 0x1401fe3cb
lea eax, [rdx - 1]
mov dword [r10 + rcx*4], eax
mov r8d, dword [rsi + 0xcc]
mov ecx, r12d
test r8d, r8d
je 0x1401fe404
mov r10, qword [rsi + 0xe8]
mov edx, ecx
imul rax, rdx, 0x1c
cmp dword [rax + r10], r9d
je 0x1401fe3f6
inc ecx
cmp ecx, r8d
jb 0x1401fe3e1
jmp 0x1401fe404
mov rax, qword [rsi + 0xe8]
imul rcx, rdx, 0x1c
dec dword [rcx + rax]
mov eax, dword [rsi + 0xc0]
inc r9d
dec eax
lea ecx, [r9 - 1]
cmp ecx, eax
jb 0x1401fe380
dec dword [rsi + 0x48]
dec dword [rsi + 0x4c]
dec dword [rsi + 0xc0]
mov r9d, dword [rsi + 0x48]
inc r11d
mov eax, r9d
cmp r11d, r9d
jb 0x1401fe2c0
mov eax, 1
add rsp, 0x20
pop r15
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov r9d, dword [rsi + 0xc0]
mov r11d, dword [rsi + 0x4c]
inc r11d
lea eax, [r9 - 1]
cmp r11d, eax
jae 0x1401fe5e7
nop dword [rax]
mov r8, qword [rsi + 0xd8]
movsxd rax, dword [rsi + 0x4c]
mov ecx, dword [r8 + rax*8]
cmp dword [r8 + r11*8], ecx
jg 0x1401fe5d7
mov edx, dword [rsi + 0xcc]
mov r10d, r12d
test edx, edx
je 0x1401fe515
mov r8, qword [rsi + 0xe8]
nop dword [rax]
mov eax, r10d
imul rcx, rax, 0x1c
cmp dword [rcx + r8], r11d
je 0x1401fe4b7
inc r10d
cmp r10d, edx
jb 0x1401fe4a0
jmp 0x1401fe515
lea eax, [rdx - 1]
cmp r10d, eax
jae 0x1401fe50c
nop
mov r8, qword [rsi + 0xe8]
lea r9d, [r10 + 1]
mov eax, r9d
imul rdx, rax, 0x1c
mov eax, r10d
mov r10d, r9d
imul rcx, rax, 0x1c
movups xmm0, xmmword [rdx + r8]
movups xmmword [rcx + r8], xmm0
movsd xmm1, qword [rdx + r8 + 0x10]
movsd qword [rcx + r8 + 0x10], xmm1
mov eax, dword [rdx + r8 + 0x18]
mov dword [rcx + r8 + 0x18], eax
mov edx, dword [rsi + 0xcc]
lea eax, [rdx - 1]
cmp r9d, eax
jb 0x1401fe4c0
lea eax, [rdx - 1]
mov dword [rsi + 0xcc], eax
mov edx, dword [rsi + 0xc0]
lea eax, [rdx - 1]
cmp r11d, eax
jae 0x1401fe5cc
lea r9d, [r11 + 1]
nop dword [rax + rax]
mov r8, qword [rsi + 0xd8]
lea ecx, [r9 - 1]
mov rax, qword [r8 + r9*8]
mov qword [r8 + rcx*8], rax
mov eax, r12d
mov r8d, dword [rsi + 0xc4]
test r8d, r8d
je 0x1401fe57b
mov r10, qword [rsi + 0xe0]
nop dword [rax]
mov ecx, eax
mov edx, dword [r10 + rcx*4]
cmp edx, r9d
je 0x1401fe574
inc eax
cmp eax, r8d
jb 0x1401fe560
jmp 0x1401fe57b
lea eax, [rdx - 1]
mov dword [r10 + rcx*4], eax
mov r8d, dword [rsi + 0xcc]
mov eax, r12d
test r8d, r8d
je 0x1401fe5b4
mov r10, qword [rsi + 0xe8]
mov edx, eax
imul rcx, rdx, 0x1c
cmp dword [rcx + r10], r9d
je 0x1401fe5a6
inc eax
cmp eax, r8d
jb 0x1401fe591
jmp 0x1401fe5b4
mov rax, qword [rsi + 0xe8]
imul rcx, rdx, 0x1c
dec dword [rcx + rax]
mov edx, dword [rsi + 0xc0]
inc r9d
lea ecx, [r9 - 1]
lea eax, [rdx - 1]
cmp ecx, eax
jb 0x1401fe530
lea r9d, [rdx - 1]
mov dword [rsi + 0xc0], r9d
inc r11d
lea ecx, [r9 - 1]
cmp r11d, ecx
jb 0x1401fe470
mov eax, 1
add rsp, 0x20
pop r15
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
xor eax, eax
add rsp, 0x20
pop r15
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret