Function at 0x180032020
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
lea rbp, [rsp - 0x57]
sub rsp, 0xe0
mov rax, qword [0x180068010]
xor rax, rsp
mov qword [rbp + 0x47], rax
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rbx, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
cmp rbx, 0x989680
jne 0x180032068
imul rax, rax, 0x64
jmp 0x180032083
cqo
idiv rbx
imul rcx, rax, 0x3b9aca00
imul rax, rdx, 0x3b9aca00
cqo
idiv rbx
add rax, rcx
xorps xmm0, xmm0
cvtsi2ss xmm0, rax
divss xmm0, dword [0x180060e4c]
divss xmm0, dword [0x180060e3c]
movss dword [0x1800da324], xmm0
mov rcx, qword [0x1800da340]
xor edi, edi
mov qword [rbp - 0x39], rdi
mov rax, qword [0x1800da370]
mov qword [rbp - 0x49], rax
mov rax, qword [0x1800da2f8]
mov qword [rbp - 0x41], rax
mov rax, qword [rcx]
mov r9, qword [rax + 0x1b8]
lea r8, [rbp - 0x49]
mov rdx, qword [0x1800da510]
call r9
call qword [sym.imp.USER32.dll_GetActiveWindow]
mov rbx, qword [rbp - 0x39]
cmp rax, qword [0x1800da368]
jne 0x1800321e8
lea ecx, [rdi + 0x70]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x18003217c
lea ecx, [rdi + 0x70]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
bt ax, 0xf
jae 0x18003217c
test rbx, rbx
jne 0x18003215a
mov qword [rbp - 0x49], rdi
mov qword [rbp - 0x39], rdi
mov qword [rbp - 0x31], 0xf
lea r8d, [rdi + 0x1a]
lea rdx, str.No_ships_found_around_you_
lea rcx, [rbp - 0x49]
call fcn.180001580
movss xmm2, dword [0x180060dd8]
lea rdx, [rbp - 0x49]
lea ecx, [rdi + 2]
call fcn.1800360b0
mov dword [0x1800da334], edi
jmp 0x1800323d5
cmp dword [0x1800da334], edi
jne 0x18003217c
mov dword [0x1800da334], 1
movss xmm0, dword [0x1800da324]
movss dword [0x1800da330], xmm0
mov ecx, 0x71
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x1800321e8
mov ecx, 0x71
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
bt ax, 0xf
jae 0x1800321e8
mov dword [rbp - 0x51], 2
mov dword [rbp - 0x4d], 2
lea rax, [0x18005ff7c]
mov qword [rbp - 0x59], rax
mov rcx, qword [0x1800da378]
movaps xmm0, xmmword [rbp - 0x59]
movdqa xmmword [rbp - 0x59], xmm0
mov rax, qword [rcx]
mov r9, qword [rax + 0x1b8]
lea r8, [rbp - 0x59]
mov rdx, qword [0x1800da4f0]
call r9
mov eax, edi
mov dword [0x1800da334], eax
jmp 0x1800321ee
mov eax, dword [0x1800da334]
test rbx, rbx
jne 0x180032236
mov qword [rbp - 0x49], rdi
mov qword [rbp - 0x39], rdi
mov qword [rbp - 0x31], 0xf
lea r8d, [rbx + 0x1a]
lea rdx, str.No_ships_found_around_you_
lea rcx, [rbp - 0x49]
call fcn.180001580
movss xmm2, dword [0x180060dd8]
lea rdx, [rbp - 0x49]
lea ecx, [rbx + 2]
call fcn.1800360b0
mov dword [0x1800da334], edi
jmp 0x1800323ce
cmp eax, 1
jne 0x180032382
cmp dword [0x1800da320], 0xa
jl 0x1800322bf
mov dword [0x1800da334], 2
mov dword [0x1800da320], edi
xorps xmm0, xmm0
movss dword [0x1800da330], xmm0
mov qword [rbp - 0x61], rdi
mov rax, qword [0x1800da300]
mov qword [rbp - 0x69], rax
mov rax, qword [rbx]
lea r8, [rbp - 0x69]
mov rdx, qword [0x1800da4a8]
mov rcx, rbx
call qword [rax + 0x1b8]
mov rax, qword [rbp - 0x61]
mov qword [0x1800da338], rax
mov rcx, qword [0x1800da328]
mov rax, qword [0x1800da350]
mov qword [rbp - 0x59], rax
mov rax, qword [rcx]
lea r8, [rbp - 0x59]
mov rdx, qword [0x1800da4a0]
call qword [rax + 0x1b8]
jmp 0x1800323d5
movss xmm1, dword [0x1800da330]
addss xmm1, dword [0x180060d48]
movss xmm0, dword [0x1800da324]
comiss xmm0, xmm1
jb 0x1800323ce
mov dword [rbp - 0x61], 0x80
mov dword [rbp - 0x5d], 0x80
lea rax, [0x18005ff80]
mov qword [rbp - 0x69], rax
mov rcx, qword [0x1800da340]
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp + 7], xmm0
movups xmmword [rbp + 0x17], xmm0
movups xmmword [rbp + 0x27], xmm0
mov qword [rbp + 0x37], rax
movups xmm0, xmmword [rbp - 0x69]
movaps xmmword [rbp - 9], xmm0
mov rax, qword [rcx]
mov r9, qword [rax + 0x1b8]
lea r8, [rbp - 9]
mov rdx, qword [0x1800da4e0]
call r9
mov rcx, qword [0x1800da360]
movaps xmm0, xmmword [rbp + 7]
movups xmmword [rbp - 0x49], xmm0
movaps xmm1, xmmword [rbp + 0x17]
movups xmmword [rbp - 0x39], xmm1
movaps xmm0, xmmword [rbp + 0x27]
movups xmmword [rbp - 0x29], xmm0
movsd xmm1, qword [rbp + 0x37]
movsd qword [rbp - 0x19], xmm1
mov rax, qword [rcx]
mov r9, qword [rax + 0x1b8]
lea r8, [rbp - 0x49]
mov rdx, qword [0x1800da4d8]
call r9
inc dword [0x1800da320]
mov eax, dword [0x1800da334]
cmp eax, 3
jne 0x1800323ce
mov dword [0x1800da334], 4
inc dword [0x1800da348]
mov qword [rbp - 0x49], rdi
mov qword [rbp - 0x39], rdi
mov qword [rbp - 0x31], 0xf
lea r8d, [rax + 0x1d]
lea rdx, str.The_server_is_down__V2HX_ON_TOP_
lea rcx, [rbp - 0x49]
call fcn.180001580
movss xmm2, dword [0x180060de4]
lea rdx, [rbp - 0x49]
xor ecx, ecx
call fcn.1800360b0
mov byte [0x1800da390], 1
mov rcx, qword [rbp + 0x47]
xor rcx, rsp
call fcn.180038760
lea r11, [rsp + 0xe0]
mov rbx, qword [r11 + 0x10]
mov rsi, qword [r11 + 0x18]
mov rdi, qword [r11 + 0x20]
mov rsp, r11
pop rbp
ret