Function at 0x180002810
Capabilities:
Log keystrokes via polling

Disassembly:
push rbp
push rbx
lea rbp, [rsp - 0x38]
sub rsp, 0x138
mov rax, qword [0x18001e010]
xor rax, rsp
mov qword [rbp - 0x40], rax
mov rbx, qword [0x18001fe88]
mov edx, 4
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x1800031f7
cmp dword [rbx], 1
jne 0x1800031f7
mov rbx, qword [0x18001ff20]
lea edx, [rax + 4]
mov qword [rsp + 0x150], rsi
mov qword [rsp + 0x158], rdi
mov qword [rsp + 0x160], r12
mov qword [rsp + 0x130], r13
lea rcx, [rbx + 8]
mov qword [rsp + 0x128], r14
mov qword [rsp + 0x120], r15
movaps xmmword [rsp + 0x110], xmm6
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
xor r14d, r14d
test eax, eax
mov eax, r14d
jne 0x1800028ac
mov eax, dword [rbx + 8]
mov rbx, qword [0x18001ff20]
mov edx, 4
mov dword [0x18001fd54], eax
lea rcx, [rbx + 0xc]
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
mov eax, r14d
jne 0x1800028d2
mov eax, dword [rbx + 0xc]
mov ecx, 0x20
mov dword [0x18001fd78], eax
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x180002955
mov rbx, qword [0x18001fea8]
mov edx, 4
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x180002955
mov r9d, 0x40
mov dword [rbp - 0x78], r14d
lea rax, [rbp - 0x78]
mov qword [rbp - 0x80], rbx
lea r8, [rbp - 0x70]
mov qword [rbp - 0x70], 0x100
lea rdx, [rbp - 0x80]
mov qword [rsp + 0x20], rax
lea rcx, [r9 - 0x41]
call fcn.180003b10
mov r9d, dword [rbp - 0x78]
lea rax, [rbp - 0x78]
lea r8, [rbp - 0x70]
mov qword [rsp + 0x20], rax
lea rdx, [rbp - 0x80]
mov dword [rbx], r14d
mov rcx, 0xffffffffffffffff
call fcn.180003b10
cmp byte [0x18001e9f0], r14b
je 0x1800029fd
call fcn.180007de8
mov rdi, qword [0x18001fd58]
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 0x1800029ee
mov r9d, 0x40
mov dword [rbp - 0x78], r14d
lea rax, [rbp - 0x78]
mov qword [rbp - 0x80], rdi
lea r8, [rbp - 0x70]
mov qword [rbp - 0x70], 0x100
lea rdx, [rbp - 0x80]
mov qword [rsp + 0x20], rax
lea rcx, [r9 - 0x41]
call fcn.180003b10
mov r9d, dword [rbp - 0x78]
lea rax, [rbp - 0x78]
lea r8, [rbp - 0x70]
mov qword [rsp + 0x20], rax
lea rdx, [rbp - 0x80]
mov dword [rdi], ebx
mov rcx, 0xffffffffffffffff
call fcn.180003b10
mov ecx, 1
call fcn.180003d80
mov byte [rax], 1
jmp 0x180002a0a
mov ecx, 1
call fcn.180003d80
mov byte [rax], r14b
lea rcx, [rax + 1]
mov qword [rbp - 0x60], rax
mov qword [rbp - 0x50], rcx
lea rdx, [rbp - 0x60]
mov qword [rbp - 0x58], rcx
mov rcx, qword [0x18001ff60]
call fcn.180001280
mov rbx, qword [0x18001fe90]
mov edx, 8
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
mov rax, r14
jne 0x180002a49
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 0x180002b21
cmp dword [rbx], 1
jne 0x180002b21
call qword [sym.imp.KERNEL32.dll_GetTickCount64]
sub rax, qword [0x18001fe38]
cmp rax, 0x64
jb 0x180002b21
call qword [sym.imp.KERNEL32.dll_GetTickCount64]
mov rbx, qword [0x18001fe90]
mov edx, 8
mov rcx, rbx
mov qword [0x18001fe38], rax
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
je 0x180002ab1
mov rbx, r14
jmp 0x180002ab4
mov rbx, qword [rbx]
add rbx, 0x8b0
mov edx, 4
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x180002b21
mov r9d, 0x40
mov dword [rbp - 0x78], r14d
lea rax, [rbp - 0x78]
mov qword [rbp - 0x80], rbx
lea r8, [rbp - 0x70]
mov qword [rbp - 0x70], 0x100
lea rdx, [rbp - 0x80]
mov qword [rsp + 0x20], rax
lea rcx, [r9 - 0x41]
call fcn.180003b10
mov r9d, dword [rbp - 0x78]
lea rax, [rbp - 0x78]
lea r8, [rbp - 0x70]
mov qword [rsp + 0x20], rax
lea rdx, [rbp - 0x80]
mov dword [rbx], r14d
mov rcx, 0xffffffffffffffff
call fcn.180003b10
mov rbx, qword [0x18001fe68]
xor eax, eax
mov rcx, rbx
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x38], eax
xorps xmm6, xmm6
mov qword [rsp + 0x60], rax
lea edx, [rax + 4]
mov dword [rsp + 0x68], eax
mov qword [rsp + 0x40], rax
mov dword [rsp + 0x48], eax
mov qword [rsp + 0x50], rax
mov dword [rsp + 0x58], eax
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
mov eax, r14d
jne 0x180002b66
mov eax, dword [rbx]
mov ecx, eax
cmp rcx, 1
je 0x180002c0c
cmp rcx, 0x36
ja 0x180002b8c
movabs rax, 0x414108025106cc
bt rax, rcx
jb 0x180002c0c
cmp rcx, 0xf
jne 0x180002b98
lea r15d, [rcx - 0xa]
jmp 0x180002c12
cmp rcx, 0x2f
ja 0x180002bb6
movabs rax, 0x8000000a5020
bt rax, rcx
jae 0x180002bb6
mov r15d, 0x1e
jmp 0x180002c12
cmp rcx, 0x29
je 0x180002c04
lea rax, [rcx - 4]
test rax, 0xffffffffffffffdf
je 0x180002bfc
cmp rcx, 0x1f
ja 0x180002be1
mov eax, 0x81000800
bt rax, rcx
jae 0x180002be1
mov r15d, 4
jmp 0x180002c12
cmp rcx, 0x2d
ja 0x180002bf7
movabs rax, 0x200114000000
bt rax, rcx
jb 0x180002c0c
mov r15, r14
jmp 0x180002c12
mov r15d, 0x10
jmp 0x180002c12
mov r15d, 0xe
jmp 0x180002c12
mov r15d, 8
mov rbx, qword [0x18001fea0]
mov edx, 4
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
mov eax, r14d
jne 0x180002c30
mov eax, dword [rbx]
mov rbx, qword [0x18001fe98]
lea esi, [rax + 1]
mov rcx, rbx
mov dword [rbp - 0x80], r14d
mov edx, 8
mov r12d, r14d
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
je 0x180002c58
mov rbx, r14
jmp 0x180002c5b
mov rbx, qword [rbx]
mov edx, 8
lea rcx, [rbx + 0xa0]
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
je 0x180002c76
xorps xmm0, xmm0
jmp 0x180002c7e
movss xmm0, dword [rbx + 0xa0]
mov edx, 8
movss dword [0x18001ff78], xmm0
lea rcx, [rbx + 0xa4]
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
je 0x180002ca1
xorps xmm0, xmm0
jmp 0x180002ca9
movss xmm0, dword [rbx + 0xa4]
mov edx, 8
movss dword [0x18001ff80], xmm0
lea rcx, [rbx + 0xa8]
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
je 0x180002ccc
xorps xmm0, xmm0
jmp 0x180002cd4
movss xmm0, dword [rbx + 0xa8]
mov r14d, 1
movss dword [0x18001ff7c], xmm0
mov dword [rbp - 0x78], r14d
lea r13d, [r14 + 5]
cmp r15, r14
jb 0x180003019
movaps xmmword [rsp + 0x100], xmm7
mov edi, r14d
movss xmm7, dword [0x18001ad04]
movaps xmmword [rsp + 0xf0], xmm8
movss xmm8, dword [0x18001ad00]
movaps xmmword [rsp + 0xe0], xmm9
movss xmm9, dword [0x18001ad0c]
movsxd rax, esi
movaps xmmword [rsp + 0xd0], xmm10
movss xmm10, dword [0x18001acd0]
mov qword [rbp - 0x70], rax
mov r12d, r14d
mov r13, rdi
cmp r15, 8
jne 0x180002d78
cmp byte [0x18001fd53], 0
je 0x180002d61
cmp rax, rdi
je 0x180002fd9
cmp rax, 8
jg 0x180002e4a
lea r12d, [r14 + 8]
lea r13, [rdi + 8]
jmp 0x180002e4a
cmp r15, 0x10
jne 0x180002d8c
cmp rax, rdi
je 0x180002fd9
jmp 0x180002e4a
cmp r15, 0x1e
jne 0x180002fd9
lea rbx, [rax - 1]
mov eax, dword [0x18001fe4c]
imul rbx, rax
lea edx, [r15 - 0x16]
add rbx, qword [0x18001fe80]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
je 0x180002dc0
xor esi, esi
jmp 0x180002dc3
mov rsi, qword [rbx]
mov eax, dword [0x18001fe4c]
lea rbx, [rdi - 1]
imul rbx, rax
mov edx, 8
add rbx, qword [0x18001fe80]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x180002fd5
mov r14, qword [rbx]
test r14, r14
je 0x180002fd1
mov ebx, dword [0x18001fe58]
lea edx, [rax + 1]
add rbx, rsi
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
je 0x180002e18
xor sil, sil
jmp 0x180002e1b
movzx esi, byte [rbx]
mov ebx, dword [0x18001fe58]
mov edx, 1
add rbx, r14
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
je 0x180002e3a
xor al, al
jmp 0x180002e3d
movzx eax, byte [rbx]
mov r14d, dword [rbp - 0x78]
cmp sil, al
je 0x180002fd5
mov eax, dword [0x18001fe4c]
lea rbx, [r13 - 1]
imul rbx, rax
mov edx, 8
add rbx, qword [0x18001fe78]
lea rcx, [rbx + 0x18]
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x180002fd5
mov rax, qword [rbx + 0x18]
test rax, rax
je 0x180002fd5
mov ebx, dword [0x18001fe50]
mov edx, 1
add rbx, rax
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x180002ea6
cmp byte [rbx], al
jne 0x180002fd5
movsxd rbx, r12d
lea rdx, [rsp + 0x30]
mov rcx, rbx
xor r8d, r8d
call fcn.180001ff0
test al, al
je 0x180002fd5
movss xmm1, dword [rsp + 0x38]
lea rdx, [rsp + 0x60]
movsd xmm0, qword [rsp + 0x30]
addss xmm1, xmm9
lea rcx, [rsp + 0x70]
movsd qword [rsp + 0x70], xmm0
movss dword [rsp + 0x38], xmm1
movss dword [rsp + 0x78], xmm1
call fcn.180001e40
mov r13d, 6
test eax, eax
je 0x180003167
mov r8d, r13d
lea rdx, [rsp + 0x30]
mov rcx, rbx
call fcn.180001ff0
test al, al
je 0x180003167
movss xmm1, dword [rsp + 0x38]
lea rdx, [rsp + 0x40]
movsd xmm0, qword [rsp + 0x30]
addss xmm1, xmm8
lea rcx, [rbp - 0x60]
movsd qword [rbp - 0x60], xmm0
movss dword [rsp + 0x38], xmm1
movss dword [rbp - 0x58], xmm1
call fcn.180001e40
test eax, eax
je 0x180003167
mov eax, dword [0x18001fd54]
xorps xmm1, xmm1
xorps xmm0, xmm0
cvtsi2ss xmm1, rax
mov eax, dword [0x18001fd78]
cvtsi2ss xmm0, rax
mulss xmm1, xmm10
mulss xmm0, xmm10
subss xmm1, dword [rsp + 0x40]
subss xmm0, dword [rsp + 0x44]
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm1, xmm0
xorps xmm0, xmm0
ucomiss xmm0, xmm1
ja 0x180002f9f
xorps xmm0, xmm0
sqrtss xmm0, xmm1
jmp 0x180002fa7
movaps xmm0, xmm1
call fcn.180011f8c
comiss xmm7, xmm0
jbe 0x180003167
cmp dword [rbp - 0x80], 0
mov rax, qword [rbp - 0x70]
jne 0x180002fc3
mov dword [rbp - 0x80], r12d
movaps xmm6, xmm0
jmp 0x180002fe3
comiss xmm6, xmm0
jbe 0x180002fdf
mov dword [rbp - 0x80], r12d
movaps xmm6, xmm0
jmp 0x180002fe3
mov r14d, dword [rbp - 0x78]
mov rax, qword [rbp - 0x70]
mov r13d, 6
mov r12d, dword [rbp - 0x80]
inc r14d
inc rdi
mov dword [rbp - 0x78], r14d
cmp rdi, r15
jle 0x180002d43
movaps xmm10, xmmword [rsp + 0xd0]
movaps xmm9, xmmword [rsp + 0xe0]
movaps xmm8, xmmword [rsp + 0xf0]
movaps xmm7, xmmword [rsp + 0x100]
mov eax, dword [0x18001fe4c]
mov edx, 8
movsxd rdi, r12d
lea rbx, [rdi - 1]
imul rbx, rax
add rbx, qword [0x18001fe78]
lea rcx, [rbx + 0x18]
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
movaps xmm6, xmmword [rsp + 0x110]
mov r15, qword [rsp + 0x120]
mov r14, qword [rsp + 0x128]
mov r12, qword [rsp + 0x160]
mov rsi, qword [rsp + 0x150]
test eax, eax
jne 0x180003170
mov rax, qword [rbx + 0x18]
test rax, rax
je 0x180003170
mov ebx, dword [0x18001fe50]
mov edx, 1
add rbx, rax
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x1800030a0
cmp byte [rbx], al
jne 0x180003170
cmp byte [0x18001fd51], 0
jne 0x1800030cf
call fcn.180007de8
mov r8d, eax
mov eax, 0x8d3dcb09
imul r8d
add edx, r8d
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
imul ecx, edx, 0x1d
sub r8d, ecx
mov r13d, r8d
mov r8d, r13d
lea rdx, [rsp + 0x50]
mov rcx, rdi
call fcn.180001ff0
test al, al
je 0x1800031e7
cmp byte [0x18001fd52], 0
mov ecx, 2
jne 0x1800030fa
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
xor ecx, ecx
test ax, ax
setne cl
test ecx, ecx
je 0x180003170
movss xmm0, dword [0x18001ff78]
lea r9, [rbp - 0x60]
movss xmm1, dword [0x18001ff7c]
mov r8d, 2
movss xmm2, dword [0x18001ff80]
mov eax, dword [rsp + 0x58]
mov edx, dword [0x18001ff88]
mov rcx, qword [0x18001fe40]
movss dword [rbp - 0x60], xmm0
movsd xmm0, qword [rsp + 0x50]
movsd qword [rbp - 0x54], xmm0
movss dword [rbp - 0x5c], xmm1
movss dword [rbp - 0x58], xmm2
mov dword [rbp - 0x4c], eax
call qword [sym.imp.USER32.dll_SendMessageA]
jmp 0x1800031e7
mov rax, qword [rbp - 0x70]
jmp 0x180002fdf
mov rbx, qword [0x18001ff38]
mov edx, 8
mov rdi, qword [0x18001ff30]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x1800031e7
mov r9d, 0x40
mov dword [rbp - 0x78], 0
lea rax, [rbp - 0x78]
mov qword [rbp - 0x80], rbx
lea r8, [rbp - 0x70]
mov qword [rsp + 0x20], rax
lea rdx, [rbp - 0x80]
mov qword [rbp - 0x70], 0x100
lea rcx, [r9 - 0x41]
call fcn.180003b10
mov r9d, dword [rbp - 0x78]
lea rax, [rbp - 0x78]
lea r8, [rbp - 0x70]
mov qword [rsp + 0x20], rax
lea rdx, [rbp - 0x80]
mov qword [rbx], rdi
mov rcx, 0xffffffffffffffff
call fcn.180003b10
mov rdi, qword [rsp + 0x158]
mov r13, qword [rsp + 0x130]
mov rcx, qword [rbp - 0x40]
xor rcx, rsp
call fcn.180003d60
add rsp, 0x138
pop rbx
pop rbp
ret
sub rsp, 0x28
call fcn.1800019f0
mov ecx, 0x31
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x1800032c9
cmp byte [0x18001e9f0], 0
lea r9, [0x18001ac4c]
mov edx, dword [0x18001ff88]
mov r8d, 1
mov rcx, qword [0x18001fe40]
sete al
mov byte [0x18001e9f0], al
test al, al
jne 0x180003262
lea r9, [0x18001ac54]
call qword [sym.imp.USER32.dll_SendMessageA]
mov ecx, 0x1f4
call qword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, 0x32
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x1800032c9
cmp byte [0x18001fd51], 0
lea r9, [0x18001ac5c]
mov edx, dword [0x18001ff88]
mov r8d, 1
mov rcx, qword [0x18001fe40]
sete al
mov byte [0x18001fd51], al
test al, al
jne 0x1800032b8
lea r9, [0x18001ac60]
call qword [sym.imp.USER32.dll_SendMessageA]
mov ecx, 0x1f4
call qword [sym.imp.KERNEL32.dll_Sleep]
add rsp, 0x28
jmp 0x180002810