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

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r14
sub rsp, 0x30
mov rbx, rdx
lea rbp, [0x1400e5891]
mov rdi, rcx
xor esi, esi
movabs r14, 0x800000000000000f
mov rax, qword [rbx + 8]
cmp rax, qword [rbx + 0x10]
jae 0x14008c2c2
movzx ecx, byte [rax]
test cl, cl
jle 0x14008c2c2
inc rax
mov dword [rbx + 0x20], ecx
mov qword [rbx + 8], rax
mov edx, ecx
jmp 0x14008c2d6
mov rcx, rbx
call fcn.14006f1a0
mov edx, eax
mov dword [rbx + 0x20], eax
dec eax
cmp eax, 0x7f
jae 0x14008c2f8
mov ecx, edx
shr ecx, 3
sub ecx, 1
je 0x14008c34e
sub ecx, 1
je 0x14008c32e
sub ecx, 1
je 0x14008c323
cmp ecx, 1
jne 0x14008c2f8
cmp edx, 0x22
je 0x14008c488
test edx, edx
je 0x14008c550
mov eax, edx
and al, 7
cmp al, 4
je 0x14008c550
lea r8, [rdi + 8]
mov rcx, rbx
call fcn.14007cdc0
test al, al
jne 0x14008c2a3
xor al, al
jmp 0x14008c552
cmp edx, 0x1a
je 0x14008c3ce
jmp 0x14008c2f8
cmp edx, 0x12
je 0x14008c39c
cmp edx, 0x10
jne 0x14008c2f8
mov edx, reloc.WS2_32.dll_select
lea r9, [rdi + 0x30]
mov r8, rbx
lea ecx, [rdx - 0x11]
call fcn.140080260
jmp 0x14008c3a8
cmp edx, 0xa
jne 0x14008c361
lea rdx, [rdi + 0x18]
mov rcx, rbx
call fcn.140080170
jmp 0x14008c37a
cmp edx, 8
jne 0x14008c2f8
mov edx, 0xa
lea r9, [rdi + 0x18]
mov r8, rbx
lea ecx, [rdx - 9]
call fcn.140080260
test al, al
je 0x14008c31c
mov rax, qword [rbx + 8]
cmp rax, qword [rbx + 0x10]
jae 0x14008c2a3
cmp byte [rax], 0x12
jne 0x14008c2a3
inc rax
mov qword [rbx + 8], rax
lea rdx, [rdi + 0x30]
mov rcx, rbx
call fcn.140080170
test al, al
je 0x14008c31c
mov rax, qword [rbx + 8]
cmp rax, qword [rbx + 0x10]
jae 0x14008c2a3
cmp byte [rax], 0x1a
jne 0x14008c2a3
inc rax
mov qword [rbx + 8], rax
or dword [rdi + 0x10], 4
mov rdx, qword [rdi + 0x48]
cmp rdx, qword [0x1401d2e90]
jne 0x14008c443
mov r9d, 0x811c9dc5
mov rcx, rbp
mov eax, 0x44
nop dword [rax]
xor eax, r9d
lea rcx, [rcx + 1]
imul r9d, eax, 0x1000193
movzx eax, byte [rcx - 1]
test eax, eax
jne 0x14008c3f0
lea r8, str.D:BuildServerDworkpackage_cacheprotobuf_blz2.6.1.7includegoogleprotobufdescriptor.pb.h
mov dword [rsp + 0x20], 0x19be
lea edx, [rax + 0xb]
lea ecx, [rax + 0x28]
call fcn.140025410
mov rdx, rax
test rax, rax
je 0x14008c43c
mov qword [rax + 8], rsi
add rax, 0x18
mov qword [rdx], rax
mov qword [rdx + 0x10], r14
mov byte [rax], sil
jmp 0x14008c43f
mov rdx, rsi
mov qword [rdi + 0x48], rdx
mov rcx, rbx
call fcn.1400703b0
test al, al
je 0x14008c31c
mov rax, qword [rdi + 0x48]
mov edx, dword [rax + 8]
mov rcx, qword [rax]
call fcn.14004e6f0
test al, al
je 0x14008c31c
mov rax, qword [rbx + 8]
cmp rax, qword [rbx + 0x10]
jae 0x14008c2a3
cmp byte [rax], 0x22
jne 0x14008c2a3
inc rax
mov qword [rbx + 8], rax
or dword [rdi + 0x10], 8
mov rdx, qword [rdi + 0x50]
cmp rdx, qword [0x1401d2e90]
jne 0x14008c503
mov r9d, 0x811c9dc5
mov rcx, rbp
mov eax, 0x44
nop word [rax + rax]
xor eax, r9d
lea rcx, [rcx + 1]
imul r9d, eax, 0x1000193
movzx eax, byte [rcx - 1]
test eax, eax
jne 0x14008c4b0
lea r8, str.D:BuildServerDworkpackage_cacheprotobuf_blz2.6.1.7includegoogleprotobufdescriptor.pb.h
mov dword [rsp + 0x20], 0x1a0a
lea edx, [rax + 0xb]
lea ecx, [rax + 0x28]
call fcn.140025410
mov rdx, rax
test rax, rax
je 0x14008c4fc
mov qword [rax + 8], rsi
add rax, 0x18
mov qword [rdx], rax
mov qword [rdx + 0x10], r14
mov byte [rax], sil
jmp 0x14008c4ff
mov rdx, rsi
mov qword [rdi + 0x50], rdx
mov rcx, rbx
call fcn.1400703b0
test al, al
je 0x14008c31c
mov rax, qword [rdi + 0x50]
mov edx, dword [rax + 8]
mov rcx, qword [rax]
call fcn.14004e6f0
test al, al
je 0x14008c31c
mov rax, qword [rbx + 0x10]
cmp qword [rbx + 8], rax
jne 0x14008c2a3
cmp dword [rbx + 0x2c], esi
jne 0x14008c549
mov eax, dword [rbx + 0x28]
cmp dword [rbx + 0x18], eax
jne 0x14008c2a3
mov dword [rbx + 0x20], esi
mov byte [rbx + 0x24], 1
mov al, 1
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x58]
add rsp, 0x30
pop r14
ret