Function at 0x140088830
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, 0x40
mov r15, r9
mov rdi, r8
mov ebx, edx
mov r13, rcx
call fcn.140074954
test rax, rax
je 0x140088d5e
call fcn.140074c44
mov r12, rax
call fcn.140074954
xor edx, edx
test rax, rax
je 0x140088889
call fcn.140074c44
xor edx, edx
mov rbp, qword [rax + 0x88]
jmp 0x14008888c
mov rbp, rdx
mov ecx, 0x20c
mov esi, 1
lea eax, [rcx - 8]
lea r8d, [rcx - 7]
cmp ebx, eax
ja 0x140088c2c
je 0x140088aba
mov eax, 0x104
lea r14d, [rax - 4]
cmp ebx, eax
ja 0x140088a83
je 0x140088a7b
mov eax, ebx
sub eax, 7
je 0x140088a68
sub eax, esi
je 0x140088a68
sub eax, 0x18
je 0x140088a49
sub eax, 0xe0
je 0x140088911
sub eax, esi
je 0x140088911
cmp eax, esi
jne 0x140088d5e
lea rax, [rdi - 1]
cmp rax, 0xfffe
ja 0x140088d5e
movzx edx, di
mov rcx, r12
call fcn.14006eb6c
jmp 0x140088d5e
cmp ebx, r14d
je 0x140088a7b
mov bpl, dl
cmp rdi, r14
jae 0x140088d5e
call fcn.140074c44
mov ecx, send
mov rbx, rax
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
mov edx, 0x281
and al, sil
mov rcx, rbx
mov r8b, al
call fcn.14006ed28
mov ecx, reloc.WS2_32.dll_recv
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
mov edx, 0x282
and al, sil
mov rcx, rbx
mov r8b, al
call fcn.14006ed28
mov ecx, reloc.WS2_32.dll_select
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
mov edx, 0x283
and al, sil
mov rcx, rbx
mov r8b, al
call fcn.14006ed28
mov ecx, 0x5d
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
mov edx, 0x284
and al, sil
mov rcx, rbx
mov r8b, al
call fcn.14006ed28
cmp rdi, 0xd
jne 0x1400889cb
mov rax, r15
shr rax, 0x10
test r14w, ax
mov eax, 0x10d
cmovne edi, eax
movsxd rcx, edi
call fcn.14008829c
shr r15, 0x10
movzx ebx, r15b
test eax, eax
je 0x1400889ef
mov r9d, ebx
mov r8d, edi
mov dl, bpl
mov ecx, eax
call fcn.140087860
cmp edi, 0x10
jne 0x140088b71
mov edi, 0xa0
mov ecx, edi
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
and al, sil
cmp al, bpl
jne 0x140088a23
mov r9d, ebx
mov r8d, edi
mov dl, bpl
mov ecx, 0x210
call fcn.140087860
mov edi, 0xa1
mov ecx, edi
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
and al, sil
cmp al, bpl
jne 0x140088d5e
mov ecx, 0x214
jmp 0x140088c19
cmp r15w, si
jne 0x140088d5e
call fcn.1400881ec
test al, al
je 0x140088d5e
mov rax, rsi
jmp 0x140088d60
cmp ebx, 7
mov rcx, r12
sete dl
call fcn.14006eaec
jmp 0x140088d5e
mov bpl, sil
jmp 0x14008891d
mov eax, ebx
sub eax, 0x105
je 0x14008891a
sub eax, 0xfb
je 0x140088b1e
sub eax, esi
je 0x140088aaf
sub eax, esi
je 0x140088d01
cmp eax, esi
jne 0x140088d5e
mov r15d, edx
cmp ebx, 0x206
jne 0x140088abd
mov r15d, esi
lea eax, [rbx - 0x207]
mov ecx, 0xfffffffd
test ecx, eax
mov r14d, 2
lea eax, [rbx - 0x20b]
cmove r15d, r14d
test ecx, eax
jne 0x140088af0
shr rdi, 0x10
mov r15d, edx
cmp di, si
setne r15b
add r15d, 3
cmp dword [rbp + 0x14], edx
jne 0x140088b09
call qword [sym.imp.USER32.dll_GetCapture]
test rax, rax
jne 0x140088b09
mov rcx, r13
call qword [sym.imp.USER32.dll_SetCapture]
mov eax, dword [rbp + 0x14]
mov r8b, sil
bts eax, r15d
mov edx, r15d
mov dword [rbp + 0x14], eax
jmp 0x140088d56
mov qword [rbp + 8], r13
cmp byte [rbp + 0x10], dl
jne 0x140088b52
mov r14d, 2
mov dword [rsp + 0x20], 0x18
lea rcx, [rsp + 0x20]
mov dword [rsp + 0x24], r14d
mov qword [rsp + 0x28], r13
mov dword [rsp + 0x30], edx
call qword [sym.imp.USER32.dll_TrackMouseEvent]
mov byte [rbp + 0x10], sil
mov rax, r15
shr rax, 0x10
cwde
movd xmm2, eax
movsx eax, r15w
cvtdq2ps xmm2, xmm2
movd xmm1, eax
cvtdq2ps xmm1, xmm1
jmp 0x140088cce
cmp edi, 0x11
jne 0x140088bc4
mov edi, 0xa2
mov ecx, edi
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
and al, sil
cmp al, bpl
jne 0x140088ba1
mov r9d, ebx
mov r8d, edi
mov dl, bpl
mov ecx, 0x20f
call fcn.140087860
mov edi, 0xa3
mov ecx, edi
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
and al, sil
cmp al, bpl
jne 0x140088d5e
mov ecx, 0x213
jmp 0x140088c19
cmp edi, 0x12
jne 0x140088d5e
mov edi, 0xa4
mov ecx, edi
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
and al, sil
cmp al, bpl
jne 0x140088bf8
mov r9d, ebx
mov r8d, edi
mov dl, bpl
mov ecx, 0x211
call fcn.140087860
mov edi, 0xa5
mov ecx, edi
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
and al, sil
cmp al, bpl
jne 0x140088d5e
mov ecx, 0x215
mov r9d, ebx
mov r8d, edi
mov dl, bpl
call fcn.140087860
jmp 0x140088d5e
mov eax, 0x20b
cmp ebx, eax
ja 0x140088c94
je 0x140088aaf
mov eax, ebx
sub eax, r8d
je 0x140088d01
sub eax, esi
je 0x140088aaf
sub eax, esi
je 0x140088aaf
sub eax, esi
je 0x140088d01
sub eax, esi
je 0x140088aaf
cmp eax, esi
jne 0x140088d5e
shr rdi, 0x10
xorps xmm1, xmm1
movsx eax, di
movd xmm2, eax
cvtdq2ps xmm2, xmm2
divss xmm2, dword [0x1402264f8]
mov rcx, r12
call fcn.14006edcc
jmp 0x140088d5e
mov eax, ebx
sub eax, ecx
je 0x140088d01
sub eax, esi
je 0x140088aaf
sub eax, esi
je 0x140088ce6
sub eax, 0xb
je 0x140088cdb
cmp eax, 0x8a
jne 0x140088d5e
cmp qword [rbp + 8], r13
jne 0x140088cc0
mov qword [rbp + 8], rdx
movss xmm1, dword [0x140220bbc]
movaps xmm2, xmm1
mov byte [rbp + 0x10], dl
mov rcx, r12
call fcn.14006ed8c
jmp 0x140088d5e
cmp edi, 7
jne 0x140088d5e
mov byte [rbp + 0x2d], sil
jmp 0x140088d5e
shr rdi, 0x10
xorps xmm2, xmm2
movsx eax, di
movd xmm1, eax
cvtdq2ps xmm1, xmm1
divss xmm1, dword [0x1402264f8]
jmp 0x140088c87
cmp ebx, r8d
mov r14d, edx
sete r14b
cmp ebx, 0x208
jne 0x140088d1b
mov r14d, 2
jmp 0x140088d31
cmp ebx, ecx
jne 0x140088d31
shr rdi, 0x10
mov r14d, edx
cmp di, si
setne r14b
add r14d, 3
mov eax, dword [rbp + 0x14]
btr eax, r14d
mov dword [rbp + 0x14], eax
test eax, eax
jne 0x140088d50
call qword [sym.imp.USER32.dll_GetCapture]
cmp rax, r13
jne 0x140088d50
call qword [sym.imp.USER32.dll_ReleaseCapture]
xor r8d, r8d
mov edx, r14d
mov rcx, r12
call fcn.14006ed40
xor eax, eax
lea r11, [rsp + 0x40]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret