Function at 0x140030a16
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rcx
mov qword [rsp + 0x10], rdx
push r15
push r14
mov rax, 8
sub rsp, 8
mov qword [rsp], 0
dec rax
jne 0x140030a2b
sub rsp, 0x28
call fcn.1400c8640
mov rdx, qword [rsp + 0x80]
lea rcx, [rsp + 0x28]
sub rsp, 0x10
call fcn.1400c86e0
add rsp, 0x10
mov rdx, qword [rsp + 0x88]
lea rcx, [rsp + 0x30]
sub rsp, 0x10
call fcn.1400c86e0
add rsp, 0x10
mov qword [rsp + 0x38], 0x1a4
mov qword [rsp + 0x40], 0xa0
push qword [0x1416813d0]
pop rcx
call fcn.1400a3b70
mov r15, rax
push qword [0x1416813d0]
pop rcx
call fcn.1400a406c
mov r14, rax
mov rax, r14
mov rcx, 2
cqo
idiv rcx
mov r14, rax
add r15, r14
mov r14, qword [rsp + 0x38]
mov rax, r14
mov rcx, 2
cqo
idiv rcx
mov r14, rax
sub r15, r14
mov qword [rsp + 0x48], r15
push qword [0x1416813d0]
pop rcx
call fcn.1400a3c10
mov r15, rax
push qword [0x1416813d0]
pop rcx
call fcn.1400a46b4
mov r14, rax
mov rax, r14
mov rcx, 2
cqo
idiv rcx
mov r14, rax
add r15, r14
mov r14, qword [rsp + 0x40]
mov rax, r14
mov rcx, 2
cqo
idiv rcx
mov r14, rax
sub r15, r14
mov qword [rsp + 0x50], r15
push rcx
sub rsp, 0x28
call fcn.1400c8360
add rsp, 0x28
pop rcx
push rax
movabs rax, 0x80000004
push rax
mov rcx, qword [0x141681168]
push rcx
sub rsp, 0x28
call fcn.1400c8360
add rsp, 0x28
pop rcx
push rax
sub rsp, 0x28
call fcn.1400c83b0
add rsp, 0x28
mov rcx, qword [rsp + 0x40]
sub rsp, 0x28
call fcn.1400c83b0
add rsp, 0x28
call fcn.1400c85c0
push qword [rsp + 0x58]
push qword [rsp + 0x58]
push qword [rsp + 0x78]
push qword [rsp + 0x78]
push 1
push rax
call fcn.1400c8590
mov rdx, rax
pop rax
add qword [rsp + 0x28], rdx
pop rcx
pop rdx
pop r8
pop r9
sub rsp, 0x20
call fcn.1400a40f4
add rsp, 0x38
pop rcx
push rax
sub rsp, 0x28
call fcn.140070d50
add rsp, 0x28
pop rax
push qword [rsp + 0x30]
push 0x50
push 0x17c
push reloc.WS2_32.dll_ioctlsocket
push reloc.WS2_32.dll_ntohs
push 3
pop rcx
pop rdx
pop r8
pop r9
sub rsp, 0x20
call fcn.14009ea14
add rsp, 0x30
push qword [0x141680fe0]
push 0x1e
push 0x14a
push WSASetLastError
push reloc.msi.dll_MsiGetActiveDatabase
push 7
pop rcx
pop rdx
pop r8
pop r9
sub rsp, 0x20
call fcn.14009b2e0
add rsp, 0x30
call fcn.14004e3ed
call fcn.1400a3f8c
mov qword [rsp + 0x58], rax
cmp qword [rsp + 0x58], 0
je 0x140030dec
call fcn.1400a86c8
mov rax, rax
push rax
mov r15, 1
cmp r15, qword [rsp]
jne 0x140030de9
push qword [rsp + 0x60]
mov r15, 0x332c
cmp r15, qword [rsp]
jne 0x140030de5
sub rsp, 0x20
call fcn.1400a8690
add rsp, 0x20
mov rax, rax
push rax
mov r15, 7
cmp r15, qword [rsp]
jne 0x140030de4
push qword [rsp + 0x40]
movabs rcx, 0x1401ec9b4
pop rdx
sub rsp, 0x28
call fcn.1400c8500
add rsp, 0x28
or rax, rax
je 0x140030cdd
sub rsp, 8
movabs rax, 0x1401de70a
push rax
pop rcx
sub rsp, 0x20
call fcn.140091aa8
add rsp, 0x28
jmp 0x140030dde
push qword [rsp + 0x40]
movabs rcx, 0x1401e54ee
pop rdx
sub rsp, 0x28
call fcn.1400c8500
add rsp, 0x28
or rax, rax
je 0x140030d20
sub rsp, 8
movabs rax, 0x1401d7680
push rax
pop rcx
sub rsp, 0x20
call fcn.140091aa8
add rsp, 0x28
jmp 0x140030dde
push qword [rsp + 0x40]
movabs rcx, 0x1401db6c6
pop rdx
sub rsp, 0x28
call fcn.1400c8500
add rsp, 0x28
or rax, rax
je 0x140030d60
sub rsp, 8
movabs rax, 0x1401ee042
push rax
pop rcx
sub rsp, 0x20
call fcn.140091aa8
add rsp, 0x28
jmp 0x140030dde
push qword [rsp + 0x40]
movabs rcx, 0x1401ea042
pop rdx
sub rsp, 0x28
call fcn.1400c8500
add rsp, 0x28
or rax, rax
je 0x140030da0
sub rsp, 8
movabs rax, 0x1401e6640
push rax
pop rcx
sub rsp, 0x20
call fcn.140091aa8
add rsp, 0x28
jmp 0x140030dde
push qword [rsp + 0x40]
movabs rcx, 0x1401e5636
pop rdx
sub rsp, 0x28
call fcn.1400c8500
add rsp, 0x28
or rax, rax
je 0x140030dde
sub rsp, 8
movabs rax, 0x1401e9ea0
push rax
pop rcx
sub rsp, 0x20
call fcn.140091aa8
add rsp, 0x28
add rsp, 0x18
jmp 0x140030e4e
pop rax
add rsp, 8
pop rax
jmp 0x140030df7
push 1
pop rcx
call fcn.1400a4744
push 0x1b
pop rcx
call sub.USER32.dll_GetKeyState
mov r15, rax
cmp r15, 1
jle 0x140030e20
call fcn.1400a45a0
mov r15, rax
cmp r15, 1
jne 0x140030e20
call fcn.14004e3ed
jmp 0x140030e4e
push reloc.WS2_32.dll_listen
pop rcx
call sub.USER32.dll_GetKeyState
mov r15, rax
cmp r15, 1
jle 0x140030e49
call fcn.1400a45a0
mov r15, rax
cmp r15, 1
jne 0x140030e49
call fcn.14004e3ed
jmp 0x140030e4e
jmp 0x140030c33
push 1
pop rcx
call fcn.1400a37a4
xor rax, rax
push rax
mov rcx, qword [rsp + 0x30]
sub rsp, 0x28
call fcn.1400c86b0
add rsp, 0x28
mov rcx, qword [rsp + 0x38]
sub rsp, 0x28
call fcn.1400c86b0
add rsp, 0x28
pop rax
add rsp, 0x68
pop r14
pop r15
ret