Function at 0x140087b20
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x60
mov r12, r8
mov r13, rcx
mov r15, qword [rdx + 8]
mov rbx, qword [r15]
movabs rsi, 0xcbf29ce484222325
xor r14d, r14d
movabs r10, 0x100000001b3
cmp rbx, r15
je 0x140087c53
nop dword [rax]
nop dword [rax + rax]
lea rdi, [rbx + 0x10]
mov r8, qword [rdi + 0x10]
mov rdx, rdi
cmp qword [rdi + 0x18], 8
jb 0x140087b85
mov rdx, qword [rdi]
mov r9, rsi
xor ecx, ecx
add r8, r8
je 0x140087ba3
nop
movzx eax, byte [rcx + rdx]
xor r9, rax
imul r9, r10
inc rcx
cmp rcx, r8
jb 0x140087b90
mov r8, rdi
lea rdx, [rbp - 0x10]
lea rcx, [r13 + 8]
call fcn.140034130
mov rcx, qword [rax + 8]
test rcx, rcx
jne 0x140087bc0
mov rcx, qword [r13 + 0x10]
cmp rcx, qword [r13 + 0x10]
je 0x140087c3a
lea r8, [rcx + 0x30]
mov rcx, r12
cmp qword [rdi + 0x30], r14
jne 0x140087c0b
lea rdx, [rbp - 0x40]
call fcn.14003bb80
mov rcx, qword [rax]
add rcx, 0x30
lea r9, [0x14035ed20]
cmp rcx, r9
je 0x140087c3a
mov rdx, r9
cmp qword [reloc.WS2_32.dll_getsockopt], 8
cmovae rdx, qword [0x14035ed20]
mov r8, qword [0x14035ed30]
jmp 0x140087c35
add rdi, 0x20
lea rdx, [rbp - 0x20]
call fcn.14003bb80
mov rcx, qword [rax]
add rcx, 0x30
cmp rcx, rdi
je 0x140087c3a
mov r8, qword [rdi + 0x10]
cmp qword [rdi + 0x18], 8
jb 0x140087c32
mov rdi, qword [rdi]
mov rdx, rdi
call fcn.140025e70
mov rax, qword [rbx]
mov rbx, rax
cmp rax, r15
movabs r10, 0x100000001b3
jne 0x140087b70
mov qword [rbp - 0x40], r14
mov qword [rbp - 0x30], r14
mov qword [rbp - 0x28], 7
mov r8d, 1
lea rdx, reloc.WS2_32.dll_WSACleanup
lea rcx, [rbp - 0x40]
call fcn.140025e70
lea rdx, [rbp - 0x40]
cmp qword [rbp - 0x28], 8
cmovae rdx, qword [rbp - 0x40]
mov rax, qword [rbp - 0x30]
lea r8, [rax + rax]
mov rcx, r14
test r8, r8
je 0x140087cb4
movabs r9, 0x100000001b3
movzx eax, byte [rcx + rdx]
xor rsi, rax
imul rsi, r9
inc rcx
cmp rcx, r8
jb 0x140087ca1
mov r9, rsi
lea r8, [rbp - 0x40]
lea rdx, [rbp - 0x20]
mov rcx, r12
call fcn.140034130
mov rbx, qword [rax + 8]
test rbx, rbx
jne 0x140087cd5
mov rbx, qword [r12 + 8]
lea rcx, [rbp - 0x40]
call fcn.140025de0
cmp rbx, qword [r12 + 8]
je 0x140087eb3
lea r9, [rbx + 0x30]
mov rbx, qword [r9 + 0x10]
mov r10, r9
mov rdi, qword [r9 + 0x18]
cmp rdi, 8
jb 0x140087d01
mov r10, qword [r9]
cmp rbx, 5
jne 0x140087d4a
mov rdx, rbx
lea rax, str.Event
movzx ecx, word [r10]
mov r8d, 0x45
cmp cx, r8w
jb 0x140087d4a
sub r10, rax
cmp cx, r8w
ja 0x140087d4a
cmp rdx, 1
je 0x140087dfa
dec rdx
add rax, 2
movzx ecx, word [rax + r10]
movzx r8d, word [rax]
cmp cx, r8w
jae 0x140087d28
mov r11, r9
cmp rdi, 8
jb 0x140087d56
mov r11, qword [r9]
mov r8d, 6
cmp rbx, r8
jne 0x140087da4
mov edx, r8d
lea rax, str.Screen
movzx ecx, word [r11]
mov r10d, 0x53
cmp cx, r10w
jb 0x140087da4
sub r11, rax
cmp cx, r10w
ja 0x140087da4
cmp rdx, 1
je 0x140087e53
dec rdx
add rax, 2
movzx ecx, word [rax + r11]
movzx r10d, word [rax]
cmp cx, r10w
jae 0x140087d82
cmp rdi, 8
jb 0x140087dad
mov r9, qword [r9]
cmp rbx, r8
jne 0x140087eb3
lea rax, str.screen
movzx ecx, word [r9]
mov edx, reloc.WS2_32.dll_WSAStartup
cmp cx, dx
jb 0x140087eb3
sub r9, rax
cmp cx, dx
ja 0x140087eb3
cmp r8, 1
je 0x140087e53
dec r8
add rax, 2
movzx ecx, word [r9 + rax]
movzx edx, word [rax]
cmp cx, dx
jae 0x140087dd5
jmp 0x140087eb3
mov qword [rbp - 0x40], r14
movdqa xmm0, xmmword [0x1403149c0]
movdqu xmmword [rbp - 0x30], xmm0
mov word [rbp - 0x40], r14w
mov r8d, 1
lea rdx, reloc.WS2_32.dll_WSACleanup
lea rcx, [rbp - 0x40]
call fcn.140025e70
nop
lea r8, [rbp - 0x40]
lea rdx, [rbp - 0x20]
mov rcx, r12
call fcn.14003be30
mov rcx, qword [rax]
add rcx, 0x30
mov r8d, 5
lea rdx, str.event
call fcn.140025e70
nop
jmp 0x140087eaa
mov qword [rbp - 0x40], r14
movdqa xmm0, xmmword [0x1403149c0]
movdqu xmmword [rbp - 0x30], xmm0
mov word [rbp - 0x40], r14w
mov r8d, 1
lea rdx, reloc.WS2_32.dll_WSACleanup
lea rcx, [rbp - 0x40]
call fcn.140025e70
nop
lea r8, [rbp - 0x40]
lea rdx, [rbp - 0x20]
mov rcx, r12
call fcn.14003be30
mov rcx, qword [rax]
add rcx, 0x30
mov r8d, 0xa
lea rdx, str.screenview
call fcn.140025e70
nop
lea rcx, [rbp - 0x40]
call fcn.140025de0
mov rbx, qword [rsp + 0xa8]
add rsp, 0x60
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret