Function at 0x1400296a0
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push r12
push r14
push r15
sub rsp, 0x40
mov r14, r9
mov rdi, r8
mov ebx, edx
mov r12, rcx
call fcn.14000b5d8
test rax, rax
je 0x140029bcb
call fcn.14000b7cc
mov r15, rax
call fcn.14000b5d8
test rax, rax
je 0x1400296f6
call fcn.14000b7cc
mov rsi, qword [rax + 0x90]
jmp 0x1400296f8
xor esi, esi
mov edx, 0x20c
mov ebp, 1
lea eax, [rdx - 8]
lea r8d, [rdx - 7]
cmp ebx, eax
ja 0x140029a9a
je 0x140029925
mov ecx, 0x100
lea eax, [rcx + 4]
cmp ebx, eax
ja 0x1400298ee
je 0x1400298e6
mov eax, ebx
sub eax, 7
je 0x1400298d3
sub eax, ebp
je 0x1400298d3
sub eax, 0x18
je 0x1400298b4
sub eax, 0xe0
je 0x14002977c
sub eax, ebp
je 0x14002977c
cmp eax, ebp
jne 0x140029bcb
lea rax, [rdi - 1]
cmp rax, 0xfffe
ja 0x140029bcb
movzx edx, di
mov rcx, r15
call fcn.140005354
jmp 0x140029bcb
cmp ebx, ecx
je 0x1400298e6
xor sil, sil
cmp rdi, rcx
jae 0x140029bcb
call fcn.14000b7cc
mov ecx, reloc.WS2_32.dll_recvfrom
mov rbx, rax
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
mov edx, 0x281
and al, bpl
mov rcx, rbx
mov r8b, al
call fcn.140005520
mov ecx, reloc.WS2_32.dll_recv
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
mov edx, 0x282
and al, bpl
mov rcx, rbx
mov r8b, al
call fcn.140005520
mov ecx, reloc.WS2_32.dll_select
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
mov edx, 0x283
and al, bpl
mov rcx, rbx
mov r8b, al
call fcn.140005520
mov ecx, 0x5d
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
mov edx, 0x284
and al, bpl
mov rcx, rbx
mov r8b, al
call fcn.140005520
cmp rdi, 0xd
jne 0x140029836
mov rax, r14
shr rax, 0x10
bt ax, 8
mov eax, 0x10d
cmovb edi, eax
movsxd rcx, edi
call fcn.14002910c
shr r14, 0x10
movzx ebx, r14b
test eax, eax
je 0x14002985a
mov r9d, ebx
mov r8d, edi
mov dl, sil
mov ecx, eax
call fcn.140028734
cmp edi, 0x10
jne 0x1400299df
mov edi, 0xa0
mov ecx, edi
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
and al, bpl
cmp al, sil
jne 0x14002988e
mov r9d, ebx
mov r8d, edi
mov dl, sil
mov ecx, 0x210
call fcn.140028734
mov edi, 0xa1
mov ecx, edi
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
and al, bpl
cmp al, sil
jne 0x140029bcb
mov ecx, 0x214
jmp 0x140029a87
cmp r14w, bp
jne 0x140029bcb
call fcn.14002905c
test al, al
je 0x140029bcb
mov rax, rbp
jmp 0x140029bcd
cmp ebx, 7
mov rcx, r15
sete dl
call fcn.1400052cc
jmp 0x140029bcb
mov sil, bpl
jmp 0x140029787
mov eax, ebx
sub eax, 0x105
je 0x140029784
sub eax, 0xfb
je 0x14002998c
sub eax, ebp
je 0x14002991a
sub eax, ebp
je 0x140029b71
cmp eax, ebp
jne 0x140029bcb
xor r14d, r14d
cmp ebx, 0x206
jne 0x140029928
mov r14d, ebp
lea eax, [rbx - 0x207]
mov ecx, 0xfffffffd
test ecx, eax
mov ebp, 2
lea eax, [rbx - 0x20b]
cmove r14d, ebp
lea ebx, [rbp - 1]
test ecx, eax
jne 0x14002995d
xor r14d, r14d
shr rdi, 0x10
cmp di, bx
setne r14b
add r14d, 3
cmp dword [rsi + 0x14], 0
jne 0x140029977
call qword [sym.imp.USER32.dll_GetCapture]
test rax, rax
jne 0x140029977
mov rcx, r12
call qword [sym.imp.USER32.dll_SetCapture]
mov eax, dword [rsi + 0x14]
mov r8b, bl
bts eax, r14d
mov edx, r14d
mov dword [rsi + 0x14], eax
jmp 0x140029bc3
cmp byte [rsi + 0x10], 0
mov qword [rsi + 8], r12
jne 0x1400299c0
and dword [rsp + 0x30], 0
lea rcx, [rsp + 0x20]
mov ebp, 2
mov dword [rsp + 0x20], Ordinal_26
mov dword [rsp + 0x24], ebp
mov qword [rsp + 0x28], r12
call qword [sym.imp.USER32.dll_TrackMouseEvent]
mov byte [rsi + 0x10], 1
mov rax, r14
shr rax, 0x10
cwde
movd xmm2, eax
movsx eax, r14w
cvtdq2ps xmm2, xmm2
movd xmm1, eax
cvtdq2ps xmm1, xmm1
jmp 0x140029b3e
cmp edi, 0x11
jne 0x140029a32
mov edi, 0xa2
mov ecx, edi
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
and al, bpl
cmp al, sil
jne 0x140029a0f
mov r9d, ebx
mov r8d, edi
mov dl, sil
mov ecx, 0x20f
call fcn.140028734
mov edi, 0xa3
mov ecx, edi
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
and al, bpl
cmp al, sil
jne 0x140029bcb
mov ecx, 0x213
jmp 0x140029a87
cmp edi, 0x12
jne 0x140029bcb
mov edi, 0xa4
mov ecx, edi
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
and al, bpl
cmp al, sil
jne 0x140029a66
mov r9d, ebx
mov r8d, edi
mov dl, sil
mov ecx, 0x211
call fcn.140028734
mov edi, 0xa5
mov ecx, edi
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
and al, bpl
cmp al, sil
jne 0x140029bcb
mov ecx, 0x215
mov r9d, ebx
mov r8d, edi
mov dl, sil
call fcn.140028734
jmp 0x140029bcb
mov eax, 0x20b
cmp ebx, eax
ja 0x140029b02
je 0x14002991a
mov eax, ebx
sub eax, r8d
je 0x140029b71
sub eax, ebp
je 0x14002991a
sub eax, ebp
je 0x14002991a
sub eax, ebp
je 0x140029b71
sub eax, ebp
je 0x14002991a
cmp eax, ebp
jne 0x140029bcb
shr rdi, 0x10
xorps xmm1, xmm1
movsx eax, di
movd xmm2, eax
cvtdq2ps xmm2, xmm2
divss xmm2, dword [0x1400c90d0]
mov rcx, r15
call fcn.1400055ec
jmp 0x140029bcb
mov eax, ebx
sub eax, edx
je 0x140029b71
sub eax, ebp
je 0x14002991a
sub eax, ebp
je 0x140029b56
sub eax, 0xb
je 0x140029b4b
cmp eax, 0x8a
jne 0x140029bcb
cmp qword [rsi + 8], r12
jne 0x140029b2f
and qword [rsi + 8], 0
movss xmm1, dword [0x1400c8f6c]
movaps xmm2, xmm1
mov byte [rsi + 0x10], 0
mov rcx, r15
call fcn.1400055a0
jmp 0x140029bcb
cmp edi, 7
jne 0x140029bcb
mov byte [rsi + 0x2d], bpl
jmp 0x140029bcb
shr rdi, 0x10
xorps xmm2, xmm2
movsx eax, di
movd xmm1, eax
cvtdq2ps xmm1, xmm1
divss xmm1, dword [0x1400c90d0]
jmp 0x140029af5
xor ebp, ebp
cmp ebx, r8d
sete bpl
cmp ebx, 0x208
jne 0x140029b89
mov ebp, 2
jmp 0x140029ba0
cmp ebx, edx
jne 0x140029ba0
xor ebp, ebp
shr rdi, 0x10
lea ebx, [rbp + 1]
cmp di, bx
setne bpl
add ebp, 3
mov eax, dword [rsi + 0x14]
btr eax, ebp
mov dword [rsi + 0x14], eax
test eax, eax
jne 0x140029bbe
call qword [sym.imp.USER32.dll_GetCapture]
cmp rax, r12
jne 0x140029bbe
call qword [sym.imp.USER32.dll_ReleaseCapture]
xor r8d, r8d
mov edx, ebp
mov rcx, r15
call fcn.14000554c
xor eax, eax
mov rbx, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x70]
mov rdi, qword [rsp + 0x78]
add rsp, 0x40
pop r15
pop r14
pop r12
ret