Function at 0x1800022d0
Capabilities:
Log keystrokes via polling

Disassembly:
push rbp
push rbx
lea rbp, [rsp - 0x4f]
sub rsp, 0xe8
mov rax, qword [0x18001d010]
xor rax, rsp
mov qword [rbp - 9], rax
mov rbx, qword [0x18001eeb0]
mov edx, 4
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x180002b61
cmp dword [rbx], 1
jne 0x180002b61
mov rbx, qword [0x18001ee38]
lea edx, [rax + 4]
mov qword [rsp + 0x100], rsi
mov qword [rsp + 0x108], rdi
mov qword [rsp + 0x110], r12
mov qword [rsp + 0xe0], r13
lea rcx, [rbx + 8]
mov qword [rsp + 0xd8], r14
mov qword [rsp + 0xd0], r15
movaps xmmword [rsp + 0xc0], xmm6
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
xor r12d, r12d
test eax, eax
mov eax, r12d
jne 0x18000236c
mov eax, dword [rbx + 8]
mov rbx, qword [0x18001ee38]
mov edx, 4
mov dword [0x18001ee18], eax
lea rcx, [rbx + 0xc]
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
mov eax, r12d
jne 0x180002392
mov eax, dword [rbx + 0xc]
cmp byte [0x18001d9f0], r12b
mov dword [0x18001ee28], eax
je 0x18000241e
mov ecx, 0x20
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x18000241e
mov rbx, qword [0x18001eec0]
mov edx, 4
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x18000241e
mov r9d, 0x40
mov dword [rbp - 0x41], r12d
lea rax, [rbp - 0x41]
mov qword [rbp - 0x39], rbx
lea r8, [rbp - 0x49]
mov qword [rbp - 0x49], 0x100
lea rdx, [rbp - 0x39]
mov qword [rsp + 0x20], rax
lea rcx, [r9 - 0x41]
call fcn.1800038c0
mov r9d, dword [rbp - 0x41]
lea rax, [rbp - 0x41]
lea r8, [rbp - 0x49]
mov qword [rsp + 0x20], rax
lea rdx, [rbp - 0x39]
mov dword [rbx], r12d
mov rcx, 0xffffffffffffffff
call fcn.1800038c0
cmp byte [0x18001ed40], r12b
je 0x1800024bd
call fcn.180007ba8
mov rdi, qword [0x18001ed48]
mov ebx, eax
mov eax, 0x21f94b43
imul ebx
sar edx, 0xe
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
imul ecx, edx, 0x1e241
mov edx, 4
sub ebx, ecx
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x1800024ea
mov r9d, 0x40
mov dword [rbp - 0x41], r12d
lea rax, [rbp - 0x41]
mov qword [rbp - 0x49], rdi
lea r8, [rbp - 0x39]
mov qword [rbp - 0x39], 0x100
lea rdx, [rbp - 0x49]
mov qword [rsp + 0x20], rax
lea rcx, [r9 - 0x41]
call fcn.1800038c0
mov r9d, dword [rbp - 0x41]
lea rax, [rbp - 0x41]
lea r8, [rbp - 0x39]
mov qword [rsp + 0x20], rax
lea rdx, [rbp - 0x49]
mov dword [rdi], ebx
mov rcx, 0xffffffffffffffff
call fcn.1800038c0
jmp 0x1800024ea
mov ecx, 1
call fcn.180003b40
lea rdx, [rbp - 0x29]
mov qword [rbp - 0x29], rax
lea rcx, [rax + 1]
mov byte [rax], r12b
mov qword [rbp - 0x19], rcx
mov qword [rbp - 0x21], rcx
mov rcx, qword [0x18001ee80]
call fcn.180001240
mov rbx, qword [0x18001ee88]
mov edx, 8
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
mov rax, r12
jne 0x180002509
mov rax, qword [rbx]
lea rbx, [rax + 0x2e8]
mov edx, 4
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x1800025df
cmp dword [rbx], 1
jne 0x1800025df
call qword [sym.imp.KERNEL32.dll_GetTickCount64]
sub rax, qword [0x18001ee20]
cmp rax, 0x64
jb 0x1800025df
call qword [sym.imp.KERNEL32.dll_GetTickCount64]
mov rbx, qword [0x18001ee88]
mov edx, 8
mov rcx, rbx
mov qword [0x18001ee20], rax
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
mov rax, r12
jne 0x180002572
mov rax, qword [rbx]
lea rbx, [rax + 0x8b0]
mov edx, 4
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x1800025df
mov r9d, 0x40
mov dword [rbp - 0x41], r12d
lea rax, [rbp - 0x41]
mov qword [rbp - 0x49], rbx
lea r8, [rbp - 0x39]
mov qword [rbp - 0x39], 0x100
lea rdx, [rbp - 0x49]
mov qword [rsp + 0x20], rax
lea rcx, [r9 - 0x41]
call fcn.1800038c0
mov r9d, dword [rbp - 0x41]
lea rax, [rbp - 0x41]
lea r8, [rbp - 0x39]
mov qword [rsp + 0x20], rax
lea rdx, [rbp - 0x49]
mov dword [rbx], r12d
mov rcx, 0xffffffffffffffff
call fcn.1800038c0
mov rbx, qword [0x18001ee78]
xor eax, eax
mov rcx, rbx
mov qword [rbp - 0x69], rax
mov dword [rbp - 0x61], eax
xorps xmm6, xmm6
mov qword [rbp - 0x59], rax
lea edx, [rax + 4]
mov dword [rbp - 0x51], eax
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
mov eax, r12d
jne 0x18000260e
mov eax, dword [rbx]
mov ecx, eax
cmp rcx, 1
je 0x1800026ab
cmp rcx, 0x36
ja 0x180002630
movabs rax, 0x414108025106cc
bt rax, rcx
jb 0x1800026ab
cmp rcx, 0xf
jne 0x18000263b
lea esi, [rcx - 0xa]
jmp 0x1800026b0
cmp rcx, 0x2f
ja 0x180002658
movabs rax, 0x8000000a5020
bt rax, rcx
jae 0x180002658
mov esi, 0x1e
jmp 0x1800026b0
cmp rcx, 0x29
je 0x1800026a4
lea rax, [rcx - 4]
test rax, 0xffffffffffffffdf
je 0x18000269d
cmp rcx, 0x1f
ja 0x180002682
mov eax, 0x81000800
bt rax, rcx
jae 0x180002682
mov esi, 4
jmp 0x1800026b0
cmp rcx, 0x2d
ja 0x180002698
movabs rax, 0x200114000000
bt rax, rcx
jb 0x1800026ab
mov rsi, r12
jmp 0x1800026b0
mov esi, 0x10
jmp 0x1800026b0
mov esi, 0xe
jmp 0x1800026b0
mov esi, 8
mov rbx, qword [0x18001eea8]
mov edx, 4
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
mov eax, r12d
jne 0x1800026ce
mov eax, dword [rbx]
mov rbx, qword [0x18001eea0]
lea r14d, [rax + 1]
mov rcx, rbx
mov dword [rbp - 0x41], r12d
mov edx, 8
mov r15d, r12d
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
je 0x1800026f7
mov rbx, r12
jmp 0x1800026fa
mov rbx, qword [rbx]
mov edx, 8
lea rcx, [rbx + 0xa0]
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
je 0x180002715
xorps xmm0, xmm0
jmp 0x18000271d
movss xmm0, dword [rbx + 0xa0]
mov edx, 8
movss dword [0x18001eed0], xmm0
lea rcx, [rbx + 0xa4]
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
je 0x180002740
xorps xmm0, xmm0
jmp 0x180002748
movss xmm0, dword [rbx + 0xa4]
mov edx, 8
movss dword [0x18001eed8], xmm0
lea rcx, [rbx + 0xa8]
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
je 0x18000276b
xorps xmm2, xmm2
jmp 0x180002773
movss xmm2, dword [rbx + 0xa8]
mov r13d, 1
movss dword [0x18001eed4], xmm2
cmp rsi, r13
jb 0x180002a1f
movaps xmmword [rsp + 0xb0], xmm7
mov edi, r13d
movss xmm7, dword [0x180019bb8]
movsxd rcx, r14d
movaps xmmword [rsp + 0xa0], xmm8
movss xmm8, dword [0x180019b98]
mov qword [rbp - 0x49], rcx
nop word [rax + rax]
mov r12d, r13d
mov rax, rdi
cmp rsi, 8
jne 0x1800027f5
cmp byte [0x18001eda9], 0
je 0x1800027de
cmp rcx, rdi
je 0x1800029f3
cmp rcx, 8
jg 0x1800028cb
lea r12d, [r13 + 8]
lea rax, [rdi + 8]
jmp 0x1800028cb
cmp rsi, 0x10
jne 0x180002809
cmp rcx, rdi
je 0x1800029f3
jmp 0x1800028cb
cmp rsi, 0x1e
jne 0x1800029f3
mov eax, dword [0x18001ee58]
lea rbx, [rcx - 1]
imul rbx, rax
lea edx, [rsi - 0x16]
add rbx, qword [0x18001ee98]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
je 0x18000283d
xor r14d, r14d
jmp 0x180002840
mov r14, qword [rbx]
mov eax, dword [0x18001ee58]
lea rbx, [rdi - 1]
imul rbx, rax
mov edx, 8
add rbx, qword [0x18001ee98]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x1800029f3
mov r15, qword [rbx]
test r15, r15
je 0x1800029ef
mov ebx, dword [0x18001ee60]
lea edx, [rax + 1]
add rbx, r14
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
je 0x180002895
xor r14b, r14b
jmp 0x180002899
movzx r14d, byte [rbx]
mov ebx, dword [0x18001ee60]
mov edx, 1
add rbx, r15
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
je 0x1800028b8
xor al, al
jmp 0x1800028bb
movzx eax, byte [rbx]
mov r15d, dword [rbp - 0x41]
cmp r14b, al
je 0x1800029f3
mov rax, rdi
cmp byte [0x18001ed47], 0
jne 0x1800029f3
lea rbx, [rax - 1]
mov edx, 8
mov eax, dword [0x18001ee58]
imul rbx, rax
add rbx, qword [0x18001ee90]
lea rcx, [rbx + 0x18]
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x1800029f3
mov rax, qword [rbx + 0x18]
test rax, rax
je 0x1800029f3
mov ebx, dword [0x18001ee5c]
mov edx, 1
add rbx, rax
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x180002934
cmp byte [rbx], al
jne 0x1800029f3
movsxd rcx, r12d
lea rdx, [rbp - 0x69]
mov r8d, 6
call fcn.180001b10
test al, al
je 0x1800029f3
movsd xmm0, qword [rbp - 0x69]
lea rdx, [rbp - 0x59]
mov eax, dword [rbp - 0x61]
lea rcx, [rbp - 0x29]
movsd qword [rbp - 0x29], xmm0
mov dword [rbp - 0x21], eax
call fcn.180001960
test eax, eax
je 0x1800029f3
mov eax, dword [0x18001ee18]
xorps xmm1, xmm1
xorps xmm0, xmm0
cvtsi2ss xmm1, rax
mov eax, dword [0x18001ee28]
cvtsi2ss xmm0, rax
mulss xmm1, xmm8
mulss xmm0, xmm8
subss xmm1, dword [rbp - 0x59]
subss xmm0, dword [rbp - 0x55]
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm1, xmm0
xorps xmm0, xmm0
ucomiss xmm0, xmm1
ja 0x1800029c0
xorps xmm0, xmm0
sqrtss xmm0, xmm1
jmp 0x1800029c8
movaps xmm0, xmm1
call fcn.1800118a8
comiss xmm7, xmm0
jbe 0x1800029f3
test r15d, r15d
jne 0x1800029de
mov r15d, r12d
mov dword [rbp - 0x41], r12d
movaps xmm6, xmm0
jmp 0x1800029f3
comiss xmm6, xmm0
jbe 0x1800029f3
mov r15d, r12d
mov dword [rbp - 0x41], r12d
movaps xmm6, xmm0
jmp 0x1800029f3
mov r15d, dword [rbp - 0x41]
mov rcx, qword [rbp - 0x49]
inc r13d
inc rdi
cmp rdi, rsi
jle 0x1800027c0
movaps xmm8, xmmword [rsp + 0xa0]
movaps xmm7, xmmword [rsp + 0xb0]
movss xmm2, dword [0x18001eed4]
cmp byte [0x18001ed47], 0
movaps xmm6, xmmword [rsp + 0xc0]
mov r14, qword [rsp + 0xd8]
mov r13, qword [rsp + 0xe0]
mov r12, qword [rsp + 0x110]
mov rdi, qword [rsp + 0x108]
mov rsi, qword [rsp + 0x100]
jne 0x180002b59
test r15d, r15d
je 0x180002b59
cmp byte [0x18001ed43], 0
je 0x180002abc
cmp byte [0x18001ed41], 0
je 0x180002abc
movss xmm0, dword [0x18001eed0]
lea r9, [rbp - 0x29]
movss xmm1, dword [0x18001eed8]
xor r8d, r8d
mov edx, dword [0x18001eee0]
mov rcx, qword [0x18001ee30]
movss dword [rbp - 0x25], xmm0
movss dword [rbp - 0x1d], xmm1
movss dword [rbp - 0x21], xmm2
mov dword [rbp - 0x29], r15d
call qword [sym.imp.USER32.dll_SendMessageA]
movss xmm2, dword [0x18001eed4]
cmp byte [0x18001d9f1], 0
je 0x180002b13
cmp byte [0x18001ed46], 0
je 0x180002b13
movss xmm0, dword [0x18001eed0]
lea r9, [rbp - 0x29]
movss xmm1, dword [0x18001eed8]
xor r8d, r8d
mov edx, dword [0x18001eee0]
mov rcx, qword [0x18001ee30]
movss dword [rbp - 0x25], xmm0
movss dword [rbp - 0x1d], xmm1
movss dword [rbp - 0x21], xmm2
mov dword [rbp - 0x29], r15d
call qword [sym.imp.USER32.dll_SendMessageA]
movss xmm2, dword [0x18001eed4]
cmp byte [0x18001ed45], 0
je 0x180002b59
movss xmm0, dword [0x18001eed0]
lea r9, [rbp - 0x29]
movss xmm1, dword [0x18001eed8]
xor r8d, r8d
mov edx, dword [0x18001eee0]
mov rcx, qword [0x18001ee30]
movss dword [rbp - 0x25], xmm0
movss dword [rbp - 0x1d], xmm1
movss dword [rbp - 0x21], xmm2
mov dword [rbp - 0x29], r15d
call qword [sym.imp.USER32.dll_SendMessageA]
mov r15, qword [rsp + 0xd0]
mov rcx, qword [rbp - 9]
xor rcx, rsp
call fcn.180003b20
add rsp, 0xe8
pop rbx
pop rbp
ret