Function at 0x140022922
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rcx
push rbp
push r15
sub rsp, 0x28
call fcn.1400bd990
push SafeArrayPutElement
pop rcx
call fcn.1400181d7
and rax, rax
je 0x1400229d1
lea rbp, [0x1404baa64]
mov r15, qword [rbp + 0x10]
cmp r15, 8
jne 0x140022993
push SafeArrayPutElement
pop rcx
call fcn.14009d080
mov r15, rax
push reloc.OLEAUT32.dll_SafeArrayGetLBound
pop rcx
call fcn.1400b3a10
cmp r15, rax
je 0x140022991
push reloc.OLEAUT32.dll_SafeArrayGetLBound
pop rcx
call fcn.1400b3a10
mov rax, rax
push rax
push SafeArrayPutElement
pop rcx
pop rdx
call fcn.14009cb48
jmp 0x1400229cc
push SafeArrayPutElement
pop rcx
call fcn.14009d080
mov r15, rax
push reloc.WS2_32.dll_inet_addr
pop rcx
call fcn.1400b3a10
cmp r15, rax
je 0x1400229cc
push reloc.WS2_32.dll_inet_addr
pop rcx
call fcn.1400b3a10
mov rax, rax
push rax
push SafeArrayPutElement
pop rcx
pop rdx
call fcn.14009cb48
jmp 0x140022a56
lea rbp, [0x1404baa64]
mov r15, qword [rbp + 0x10]
cmp r15, 8
jne 0x140022a1d
push SafeArrayPutElement
pop rcx
call fcn.14009d080
mov r15, rax
push reloc.OLEAUT32.dll_SafeArrayGetLBound
pop rcx
call fcn.1400b3a10
cmp r15, rax
je 0x140022a1b
push reloc.OLEAUT32.dll_SafeArrayGetLBound
pop rcx
call fcn.1400b3a10
mov rax, rax
push rax
push SafeArrayPutElement
pop rcx
pop rdx
call fcn.14009cb48
jmp 0x140022a56
push SafeArrayPutElement
pop rcx
call fcn.14009d080
mov r15, rax
push reloc.WS2_32.dll_ioctlsocket
pop rcx
call fcn.1400b3a10
cmp r15, rax
je 0x140022a56
push reloc.WS2_32.dll_ioctlsocket
pop rcx
call fcn.1400b3a10
mov rax, rax
push rax
push SafeArrayPutElement
pop rcx
pop rdx
call fcn.14009cb48
push reloc.WS2_32.dll_socket
pop rcx
call fcn.1400181d7
and rax, rax
je 0x140022aa1
push reloc.WS2_32.dll_socket
pop rcx
call fcn.14009d080
mov r15, rax
push recvfrom
pop rcx
call fcn.1400b3a10
cmp r15, rax
je 0x140022a9f
push recvfrom
pop rcx
call fcn.1400b3a10
mov rax, rax
push rax
push reloc.WS2_32.dll_socket
pop rcx
pop rdx
call fcn.14009cb48
jmp 0x140022ada
push reloc.WS2_32.dll_socket
pop rcx
call fcn.14009d080
mov r15, rax
push reloc.ODBC32.dll_SQLFetch
pop rcx
call fcn.1400b3a10
cmp r15, rax
je 0x140022ada
push reloc.ODBC32.dll_SQLFetch
pop rcx
call fcn.1400b3a10
mov rax, rax
push rax
push reloc.WS2_32.dll_socket
pop rcx
pop rdx
call fcn.14009cb48
push reloc.ODBC32.dll_SQLAllocHandle
pop rcx
call fcn.1400181d7
and rax, rax
je 0x140022b25
push reloc.ODBC32.dll_SQLAllocHandle
pop rcx
call fcn.14009d080
mov r15, rax
push reloc.OLEAUT32.dll_SafeArrayGetElemsize
pop rcx
call fcn.1400b3a10
cmp r15, rax
je 0x140022b23
push reloc.OLEAUT32.dll_SafeArrayGetElemsize
pop rcx
call fcn.1400b3a10
mov rax, rax
push rax
push reloc.ODBC32.dll_SQLAllocHandle
pop rcx
pop rdx
call fcn.14009cb48
jmp 0x140022b5e
push reloc.ODBC32.dll_SQLAllocHandle
pop rcx
call fcn.14009d080
mov r15, rax
push reloc.WS2_32.dll_recv
pop rcx
call fcn.1400b3a10
cmp r15, rax
je 0x140022b5e
push reloc.WS2_32.dll_recv
pop rcx
call fcn.1400b3a10
mov rax, rax
push rax
push reloc.ODBC32.dll_SQLAllocHandle
pop rcx
pop rdx
call fcn.14009cb48
push qword [0x1404ba72c]
pop rcx
call fcn.14004dd14
and rax, rax
je 0x140022b74
xor rax, rax
jmp 0x140022b7b
mov rax, 1
and rax, rax
je 0x140022b8d
mov qword [0x1404ba72c], 0
jmp 0x140022b8d
push SQLBindParameter
pop rcx
call fcn.1400181d7
and rax, rax
je 0x140022c3f
call fcn.1400a8340
mov r15, rax
and r15, r15
jne 0x140022c3f
lea rbp, [0x1404baa64]
mov r15, qword [rbp + 8]
cmp r15, 3
je 0x140022bd6
lea rbp, [0x1404baa64]
mov r15, qword [rbp + 8]
cmp r15, 5
je 0x140022bd6
jmp 0x140022bdf
mov rax, 1
jmp 0x140022be2
xor rax, rax
and rax, rax
je 0x140022bec
call fcn.14002ca12
push qword [0x1404ba6a4]
push 0xffffffffffffffff
push 0x4c
pop rcx
pop rdx
pop r8
call fcn.14009d164
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0xb1
sub rsp, 8
push 0x4c
pop rcx
sub rsp, 0x20
call fcn.14009cec8
add rsp, 0x28
mov rax, rax
push rax
pop rcx
pop rdx
pop r8
pop r9
call sub.USER32.dll_SendMessageW
call fcn.14002bd10
mov r15, qword [0x1404ba6ec]
and r15, r15
jle 0x140022cbd
mov r15, qword [0x1404ba2d4]
push 0
push 1
push 0
push 0x4d
pop rcx
pop rdx
pop r8
pop r9
call fcn.1400a4600
cmp r15, rax
jne 0x140022ca3
mov r15, qword [0x1404ba2e4]
push 1
push 1
push 0
push 0x4d
pop rcx
pop rdx
pop r8
pop r9
call fcn.1400a4600
cmp r15, rax
jne 0x140022ca3
jmp 0x140022cac
mov rax, 1
jmp 0x140022caf
xor rax, rax
and rax, rax
je 0x140022cbd
mov rax, 1
jmp 0x140022cc0
xor rax, rax
and rax, rax
je 0x140022d11
push 0
push 1
push 0
push 0x4d
pop rcx
pop rdx
pop r8
pop r9
call fcn.1400a4600
mov qword [0x1404ba2d4], rax
push 1
push 1
push 0
push 0x4d
pop rcx
pop rdx
pop r8
pop r9
call fcn.1400a4600
mov qword [0x1404ba2e4], rax
lea rbp, [0x1404baa64]
mov r15, qword [rbp + 8]
cmp r15, 5
jne 0x140022dd5
push reloc.OLEAUT32.dll_SafeArrayGetElemsize
pop rcx
call sub.USER32.dll_GetKeyState
mov r15, rax
cmp r15, 1
jle 0x140022dd5
push rcx
sub rsp, 0x28
call main
add rsp, 0x28
pop rcx
push rax
sub rsp, 8
push rcx
sub rsp, 0x28
call main
add rsp, 0x28
pop rcx
push rax
push 0x5f
pop rcx
pop rdx
sub rsp, 0x20
call fcn.14009cdb4
add rsp, 0x28
call fcn.1400bd860
movabs rcx, 0x14027b1a4
pop rdx
push rcx
mov rcx, rdx
sub rsp, 0x20
call fcn.1400bd890
add rsp, 0x20
pop rcx
mov rdx, rax
call fcn.1400bd7a0
or rax, rax
je 0x140022dbe
movabs rax, str.Clear_Log
push rax
push 0x5f
pop rcx
pop rdx
call fcn.14009ccd8
jmp 0x140022dd5
movabs rax, 0x14027b1a4
push rax
push 0x5f
pop rcx
pop rdx
call fcn.14009ccd8
xor rax, rax
add rsp, 0x28
pop r15
pop rbp
ret