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

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0xe8
lea rbp, [rsp + 0x80]
movaps xmmword [rbp + 0x50], xmm7
movaps xmmword [rbp + 0x40], xmm6
mov qword [rbp + 0x38], 0xfffffffffffffffe
mov r14, rdx
xorps xmm6, xmm6
movlps qword [rbp + 0x10], xmm6
lea r12, [rbp + 0x10]
mov rdx, r12
call fcn.1400e0b40
test al, al
je 0x14005016a
xor esi, esi
movaps xmm7, xmmword [0x14025e8c0]
movabs r13, 0x100000001b3
mov qword [rbp + 8], r14
jmp 0x14004fc3d
mov rcx, r14
mov rdx, rdi
lea r8, [rbp + 0x34]
call fcn.140057750
mov rsi, qword [rbp]
nop word cs:[rax + rax]
inc rsi
cmp rsi, 0xe
je 0x140050165
lea rax, str.head
mov rbx, qword [rax + rsi*8]
movaps xmmword [rbp + 0x20], xmm6
movaps xmmword [rbp + 0x10], xmm6
mov rcx, rbx
call fcn.14023e390
test rax, rax
js 0x140050186
mov rdi, rax
cmp rax, 0xf
mov qword [rbp], rsi
mov qword [rbp - 0x10], rbx
ja 0x14004fca0
mov qword [rbp + 0x20], rdi
mov qword [rbp + 0x28], reloc.WS2_32.dll_ntohs
mov rcx, r12
mov rdx, rbx
mov r8, rdi
call fcn.14021e3b0
add rdi, rbp
add rdi, 0x10
jmp 0x14004fd09
mov rsi, rdi
or rsi, 0xf
cmp rsi, 0x17
mov eax, reloc.WS2_32.dll_shutdown
cmovb rsi, rax
cmp rsi, 0xfff
jb 0x14004fce0
lea rcx, [rsi + 0x28]
call fcn.140140ff0
lea r15, [rax + 0x27]
and r15, 0xffffffffffffffe0
mov qword [r15 - 8], rax
jmp 0x14004fcec
lea rcx, [rsi + 1]
call fcn.140140ff0
mov r15, rax
mov qword [rbp + 0x10], r15
mov qword [rbp + 0x20], rdi
mov qword [rbp + 0x28], rsi
mov rcx, r15
mov rdx, rbx
mov r8, rdi
call fcn.14021e3b0
add rdi, r15
mov rax, r12
mov byte [rdi], 0
mov rcx, qword [rbp + 0x10]
mov r12, qword [rbp + 0x20]
mov r15, qword [rbp + 0x28]
cmp r15, 0x10
mov rdi, rax
mov qword [rbp - 8], rcx
cmovae rdi, rcx
movabs rdx, 0xcbf29ce484222325
test r12, r12
je 0x14004fde6
lea rcx, [r12 - 1]
mov eax, r12d
and eax, 3
cmp rcx, 3
jae 0x14004fd60
xor ecx, ecx
movabs rsi, 0xcbf29ce484222325
jmp 0x14004fdb8
mov rbx, r12
and rbx, 0xfffffffffffffffc
xor ecx, ecx
movabs rsi, 0xcbf29ce484222325
nop word cs:[rax + rax]
movzx edx, byte [rdi + rcx]
xor rdx, rsi
imul rdx, r13
movzx esi, byte [rdi + rcx + 1]
xor rsi, rdx
imul rsi, r13
movzx edx, byte [rdi + rcx + 2]
xor rdx, rsi
imul rdx, r13
movzx esi, byte [rdi + rcx + 3]
xor rsi, rdx
imul rsi, r13
add rcx, 4
cmp rbx, rcx
jne 0x14004fd80
mov rdx, rsi
test rax, rax
je 0x14004fde6
add rcx, rdi
xor ebx, ebx
nop word cs:[rax + rax]
movzx edx, byte [rcx + rbx]
xor rdx, rsi
imul rdx, r13
inc rbx
mov rsi, rdx
cmp rax, rbx
jne 0x14004fdd0
and rdx, qword [0x14032b320]
mov rax, qword [0x14032b308]
mov rcx, rdx
shl rcx, 4
mov rbx, qword [rax + rcx + 8]
cmp rbx, qword [0x14032b2f8]
je 0x14004fe70
add rdx, rdx
mov r14, qword [rax + rdx*8]
cmp r12, qword [rbx + 0x20]
jne 0x14004fe43
nop word cs:[rax + rax]
cmp qword [rbx + 0x28], 0x10
jb 0x14004fe30
mov rdx, qword [rbx + 0x10]
jmp 0x14004fe34
lea rdx, [rbx + 0x10]
mov rcx, rdi
mov r8, r12
call fcn.14021e2b0
test eax, eax
je 0x14004fe62
cmp rbx, r14
je 0x14004fe60
mov rbx, qword [rbx + 8]
cmp r12, qword [rbx + 0x20]
je 0x14004fe20
jmp 0x14004fe43
xor ebx, ebx
mov r14, qword [rbp + 8]
jmp 0x14004fe72
xor ebx, ebx
cmp r15, 0x10
lea r12, [rbp + 0x10]
jb 0x14004feb9
lea rdx, [r15 + 1]
cmp rdx, 0x1000
jb 0x14004feb0
mov rcx, qword [rbp - 8]
mov rax, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, rax
cmp rcx, 0x20
jae 0x14005018b
add r15, 0x28
mov rdx, r15
mov rcx, rax
jmp 0x14004feb4
mov rcx, qword [rbp - 8]
call fcn.140141034
test rbx, rbx
mov rsi, qword [rbp]
je 0x14004fc30
movaps xmmword [rbp + 0x20], xmm6
movaps xmmword [rbp + 0x10], xmm6
mov rbx, qword [rbp - 0x10]
mov rcx, rbx
call fcn.14023e390
test rax, rax
js 0x140050186
mov rdi, rax
cmp rax, 0xf
ja 0x14004ff10
mov qword [rbp + 0x20], rdi
mov qword [rbp + 0x28], reloc.WS2_32.dll_ntohs
mov rcx, r12
mov rdx, rbx
mov r8, rdi
call fcn.14021e3b0
add rdi, rbp
add rdi, 0x10
jmp 0x14004ff75
mov qword [rbp + 0x28], reloc.WS2_32.dll_ntohs
mov rsi, rdi
or rsi, 0xf
cmp rsi, 0x17
mov eax, reloc.WS2_32.dll_shutdown
cmovb rsi, rax
cmp rsi, 0xfff
jb 0x14004ff4c
lea rcx, [rsi + 0x28]
call fcn.140140ff0
lea r15, [rax + 0x27]
and r15, 0xffffffffffffffe0
mov qword [r15 - 8], rax
jmp 0x14004ff58
lea rcx, [rsi + 1]
call fcn.140140ff0
mov r15, rax
mov qword [rbp + 0x10], r15
mov qword [rbp + 0x20], rdi
mov qword [rbp + 0x28], rsi
mov rcx, r15
mov rdx, rbx
mov r8, rdi
call fcn.14021e3b0
add rdi, r15
mov byte [rdi], 0
lea rcx, [0x14032b2f0]
lea rdx, [rbp - 0x30]
mov r8, r12
call fcn.14005a2f0
mov rax, qword [rbp - 0x30]
mov edi, dword [rax + 0x30]
mov rax, qword [rbp + 0x28]
cmp rax, 0x10
jb 0x14004ffd1
mov rcx, qword [rbp + 0x10]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x14004ffcc
mov rbx, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, rbx
cmp rcx, 0x20
jae 0x14005018b
add rax, 0x28
mov rdx, rax
mov rcx, rbx
call fcn.140141034
mov dword [rbp + 0x34], edi
mov rax, qword [r14]
mov rsi, qword [r14 + 8]
mov r15, rsi
cmp rax, rsi
je 0x140050005
nop word cs:[rax + rax]
cmp dword [rax], edi
je 0x140050002
add rax, 4
cmp rax, rsi
jne 0x14004fff0
mov r15, rsi
jmp 0x140050005
mov r15, rax
cmp r15, rsi
setne bl
lea rax, [0x1402daa6e]
lea rcx, [0x1402db96f]
cmove rax, rcx
movlps qword [rbp - 0x38], xmm6
mov qword [rbp + 0x20], rax
mov rax, qword [rbp - 0x10]
mov qword [rbp + 0x28], rax
movaps xmmword [rbp + 0x10], xmm7
mov qword [rbp - 0x58], 2
mov qword [rbp - 0x50], r12
lea rax, [0x1402d4e20]
mov qword [rbp - 0x48], rax
mov qword [rbp - 0x40], 4
lea rdi, [rbp - 0x30]
mov rcx, rdi
lea rdx, [rbp - 0x48]
lea r8, [rbp - 0x58]
call fcn.140034980
cmp qword [rbp - 0x18], 0x10
jb 0x14005006f
mov rdi, qword [rbp - 0x30]
mov rcx, rdi
mov edx, ebx
xor r8d, r8d
lea r9, [rbp - 0x38]
call fcn.1400cf2f0
mov ebx, eax
mov rax, qword [rbp - 0x18]
cmp rax, 0x10
jb 0x1400500c1
mov rcx, qword [rbp - 0x30]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x1400500bc
mov rdi, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, rdi
cmp rcx, 0x20
jae 0x14005018b
add rax, 0x28
mov rdx, rax
mov rcx, rdi
call fcn.140141034
test bl, bl
je 0x140050135
mov rdi, qword [r14 + 8]
cmp r15, rsi
je 0x14005014c
mov rcx, qword [r14]
mov r8d, dword [rbp + 0x34]
mov rdx, rdi
call fcn.140146190
mov rbx, rax
cmp rax, rdi
je 0x140050108
mov rax, rbx
nop dword [rax + rax]
add rax, 4
cmp rax, rdi
je 0x140050108
mov ecx, dword [rax]
cmp ecx, dword [rbp + 0x34]
je 0x1400500f0
mov dword [rbx], ecx
add rbx, 4
jmp 0x1400500f0
cmp rbx, rdi
je 0x140050135
mov rax, qword [rbp + 8]
mov r14, qword [rax + 8]
sub r14, rdi
mov rcx, rbx
mov rdx, rdi
mov r8, r14
call fcn.14021e3b0
add r14, rbx
mov rax, qword [rbp + 8]
mov qword [rax + 8], r14
mov r14, qword [rbp + 8]
cmp r15, rsi
mov rsi, qword [rbp]
je 0x14004fc30
call fcn.14009ed20
jmp 0x14004fc30
cmp rdi, qword [r14 + 0x10]
je 0x14004fc12
mov eax, dword [rbp + 0x34]
mov dword [rdi], eax
add qword [r14 + 8], 4
jmp 0x14004fc21
call fcn.1400e0e50
movaps xmm6, xmmword [rbp + 0x40]
movaps xmm7, xmmword [rbp + 0x50]
add rsp, 0xe8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
call fcn.1400026a0
call fcn.140231990
int3