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

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x80
mov r15, qword [rdx + 8]
xor ebx, ebx
mov r12, r8
mov r14, rdx
mov r13, rcx
mov r9d, ebx
test r15, r15
je 0x14007e6ab
mov r10, qword [rdx]
movabs rdx, 0x21ffffff80ffd
nop dword [rax]
movzx ecx, byte [r10]
lea eax, [rcx - 0x2e]
cmp al, 0x31
ja 0x14007e691
bt rdx, rax
jb 0x14007e69d
sub cl, 0x61
cmp cl, 0x19
ja 0x14007e7b3
inc r9d
inc r10
movsxd rax, r9d
cmp rax, r15
jb 0x14007e680
mov qword [rsp + 0xb0], rsi
lea rdx, [rbp + 0x38]
mov r8, r14
mov qword [rsp + 0xc0], rdi
mov rcx, r13
call fcn.14007ef50
mov rsi, qword [rbp + 0x38]
lea rdi, [r13 + 0x28]
cmp rsi, rdi
jne 0x14007e803
mov rdx, qword [r14]
lea rcx, [rbp - 0x40]
mov r8, r15
call fcn.1400027c0
movups xmm0, xmmword [r12]
lea r8, [rbp - 0x40]
mov rcx, rdi
lea rdx, [rbp - 0x50]
movups xmmword [rbp - 0x18], xmm0
call fcn.140068b20
mov r14, qword [rbp - 0x48]
test r14, r14
je 0x14007ea33
movzx ecx, byte [str.._AU__rb_node_U__pair___CBV__basic_string_DU__char_traits_D_blz__V__allocator_D_2__blz__U__pair_PEBXH_2__blz___blz__]
lea rax, [0x140127c01]
mov r9d, 0x811c9dc5
test ecx, ecx
je 0x14007e746
nop dword [rax + rax]
xor ecx, r9d
lea rax, [rax + 1]
imul r9d, ecx, 0x1000193
movzx ecx, byte [rax - 1]
test ecx, ecx
jne 0x14007e730
mov edx, ntohs
mov dword [rsp + 0x28], ebx
lea r8, str.._AU__rb_node_U__pair___CBV__basic_string_DU__char_traits_D_blz__V__allocator_D_2__blz__U__pair_PEBXH_2__blz___blz__
mov dword [rsp + 0x20], 0xfffffffa
lea ecx, [rdx + 0x4d]
call fcn.140025e30
mov rsi, rax
test rax, rax
je 0x14007e787
mov r8, qword [rbp - 0x38]
lea rcx, [rax + 0x20]
mov rdx, qword [rbp - 0x40]
call fcn.1400027c0
movups xmm0, xmmword [rbp - 0x18]
movups xmmword [rsi + 0x48], xmm0
inc qword [rdi + 0x20]
mov qword [rsi + 8], rbx
mov qword [rsi + 0x10], rbx
mov byte [rsi + 0x18], 0
mov rcx, qword [rbp - 0x50]
mov qword [rsi], rcx
cmp rcx, rdi
jne 0x14007e9ff
mov qword [rdi], rsi
mov qword [rdi + 8], rsi
jmp 0x14007ea24
mov r9d, 0x5e
lea r8, str.D:BuildServerDworkpackage_cacheprotobuf_blz2.6.1.7_srcgoogleprotobufdescriptor_database.cc
lea rcx, [rbp - 0x40]
lea edx, [r9 - 0x5c]
call fcn.14004ce00
lea rdx, str.Invalid_symbol_name:
mov rcx, rax
call fcn.14004d0d0
mov rdx, r14
mov rcx, rax
call fcn.14004cfc0
mov rdx, rax
lea rcx, [rbp + 0x38]
call fcn.14004cf00
lea rcx, [rbp - 0x40]
call fcn.14004ceb0
xor al, al
jmp 0x14007ea63
mov r8, r14
lea rdx, [rsi + 0x20]
mov rcx, r13
call fcn.14007f060
test al, al
je 0x14007e862
mov r9d, WSAGetLastError
lea r8, str.D:BuildServerDworkpackage_cacheprotobuf_blz2.6.1.7_srcgoogleprotobufdescriptor_database.cc
lea rcx, [rbp - 0x40]
lea edx, [r9 - 0x6b]
call fcn.14004ce00
lea rdx, str.Symbol_name__
mov rcx, rax
call fcn.14004d0d0
mov rdx, r14
mov rcx, rax
call fcn.14004cfc0
lea rdx, str.__conflicts_with_the_existing_symbol__
mov rcx, rax
call fcn.14004d0d0
lea rdx, [rsi + 0x20]
jmp 0x14007e90a
mov rbx, qword [rsi + 0x10]
test rbx, rbx
je 0x14007e882
mov rax, qword [rbx + 8]
test rax, rax
je 0x14007e8a7
mov rbx, rax
mov rax, qword [rax + 8]
test rax, rax
jne 0x14007e874
jmp 0x14007e8a7
mov rax, qword [rsi]
cmp rsi, qword [rax + 0x10]
jne 0x14007e89c
nop dword [rax + rax]
mov rsi, rax
mov rax, qword [rax]
cmp rsi, qword [rax + 0x10]
je 0x14007e890
cmp qword [rsi + 0x10], rax
mov rbx, rsi
cmovne rbx, rax
cmp rbx, rdi
je 0x14007e93d
lea r8, [rbx + 0x20]
mov rdx, r14
mov rcx, r13
call fcn.14007f060
test al, al
je 0x14007e93d
mov r9d, 0x7a
lea r8, str.D:BuildServerDworkpackage_cacheprotobuf_blz2.6.1.7_srcgoogleprotobufdescriptor_database.cc
lea rcx, [rbp - 0x40]
lea edx, [r9 - 0x78]
call fcn.14004ce00
lea rdx, str.Symbol_name__
mov rcx, rax
call fcn.14004d0d0
mov rdx, r14
mov rcx, rax
call fcn.14004cfc0
lea rdx, str.__conflicts_with_the_existing_symbol__
mov rcx, rax
call fcn.14004d0d0
lea rdx, [rbx + 0x20]
mov rcx, rax
call fcn.14004cfc0
lea rdx, [0x1400e5dc0]
mov rcx, rax
call fcn.14004d0d0
mov rdx, rax
lea rcx, [rbp + 0x38]
call fcn.14004cf00
lea rcx, [rbp - 0x40]
call fcn.14004ceb0
xor al, al
jmp 0x14007ea53
mov rdx, qword [r14]
lea rcx, [rbp - 0x40]
mov r8, r15
call fcn.1400027c0
movups xmm0, xmmword [r12]
lea r9, [rbp - 0x40]
mov r8, rbx
lea rdx, [rbp - 0x50]
mov rcx, rdi
movups xmmword [rbp - 0x18], xmm0
call fcn.14007f3f0
mov r14, qword [rbp - 0x48]
test r14, r14
je 0x14007ea33
movzx ecx, byte [str.._AU__rb_node_U__pair___CBV__basic_string_DU__char_traits_D_blz__V__allocator_D_2__blz__U__pair_PEBXH_2__blz___blz__]
lea rax, [0x140127c01]
mov r9d, 0x811c9dc5
test ecx, ecx
je 0x14007e9a6
nop dword [rax]
xor ecx, r9d
lea rax, [rax + 1]
imul r9d, ecx, 0x1000193
movzx ecx, byte [rax - 1]
test ecx, ecx
jne 0x14007e990
xor r15d, r15d
lea r8, str.._AU__rb_node_U__pair___CBV__basic_string_DU__char_traits_D_blz__V__allocator_D_2__blz__U__pair_PEBXH_2__blz___blz__
mov dword [rsp + 0x28], r15d
mov dword [rsp + 0x20], 0xfffffffa
lea edx, [r15 + 0xb]
lea ecx, [rdx + 0x4d]
call fcn.140025e30
mov rsi, rax
test rax, rax
je 0x14007e9ea
mov r8, qword [rbp - 0x38]
lea rcx, [rax + 0x20]
mov rdx, qword [rbp - 0x40]
call fcn.1400027c0
movups xmm0, xmmword [rbp - 0x18]
movups xmmword [rsi + 0x48], xmm0
inc qword [rdi + 0x20]
mov qword [rsi + 8], r15
mov qword [rsi + 0x10], r15
mov byte [rsi + 0x18], r15b
jmp 0x14007e797
mov qword [r14], rsi
cmp rcx, qword [rdi + 8]
jne 0x14007ea15
lea rax, [rcx + 8]
cmp r14, rax
jne 0x14007ea15
mov qword [rdi + 8], rsi
cmp rcx, qword [rdi + 0x10]
jne 0x14007ea28
lea rax, [rcx + 0x10]
cmp r14, rax
jne 0x14007ea28
mov qword [rdi + 0x10], rsi
mov rdx, rsi
mov rcx, rdi
call fcn.140068950
cmp qword [rbp - 0x30], 0
jl 0x14007ea51
mov rcx, qword [rbp - 0x40]
lea rdx, [0x1401262a0]
xor r9d, r9d
lea r8d, [r9 - 6]
call fcn.140025f00
mov al, 1
mov rsi, qword [rsp + 0xb0]
mov rdi, qword [rsp + 0xc0]
mov rbx, qword [rsp + 0xc8]
add rsp, 0x80
pop r15
pop r14
pop r13
pop r12
pop rbp
ret