Function at 0x14008a700
Capabilities:
Encode data using xor
Encrypt data using speck
Hash data using fnv

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x60
mov rbx, rdx
lea r13, [0x140000000]
mov r15, rcx
xor r12d, r12d
movabs rdi, 0x800000000000000f
mov rdx, qword [rbx + 0x10]
mov rcx, qword [rbx + 8]
cmp rcx, rdx
jae 0x14008a783
movzx r8d, byte [rcx]
lea rax, [rcx + 1]
test r8b, r8b
jle 0x14008a757
mov edx, r8d
mov qword [rbx + 8], rax
mov dword [rbx + 0x20], edx
jmp 0x14008a79d
cmp rax, rdx
jae 0x14008a783
movzx edx, byte [rax]
mov eax, edx
not eax
and eax, r8d
cmp eax, 0x80
jb 0x14008a783
shl edx, 7
lea rax, [rcx + 2]
add edx, 0xffffff80
mov qword [rbx + 8], rax
add edx, r8d
mov dword [rbx + 0x20], edx
jmp 0x14008a79d
mov rcx, rbx
call fcn.14006f1a0
mov edx, eax
mov dword [rbx + 0x20], eax
dec eax
cmp eax, 0x3fff
jae case.0x14008a7cb.2
mov eax, edx
shr eax, 3
cmp eax, 0x3e7
ja case.0x14008a7cb.2
je 0x14008ae62
dec eax
cmp eax, 0x1a
ja case.0x14008a7cb.2
cdqe
mov ecx, dword [r13 + rax*4 + 0x8afb8]
add rcx, r13
jmp rcx
cmp edx, 0xa
jne case.0x14008a7cb.2
or dword [r15 + 0x38], 1
mov rdx, qword [r15 + 0x40]
cmp rdx, qword [0x1401d2e90]
jne 0x14008a853
mov r9d, 0x811c9dc5
lea rcx, [0x1400e5891]
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 0x14008a800
lea r8, str.D:BuildServerDworkpackage_cacheprotobuf_blz2.6.1.7includegoogleprotobufdescriptor.pb.h
mov dword [rsp + 0x20], 0x13b4
lea edx, [rax + 0xb]
lea ecx, [rax + 0x28]
call fcn.140025410
mov rdx, rax
test rax, rax
je 0x14008a84c
mov qword [rax + 8], r12
add rax, 0x18
mov qword [rdx], rax
mov qword [rdx + 0x10], rdi
mov byte [rax], r12b
jmp 0x14008a84f
mov rdx, r12
mov qword [r15 + 0x40], rdx
mov rcx, rbx
call fcn.1400703b0
test al, al
je 0x14008afaa
mov rax, qword [r15 + 0x40]
mov edx, dword [rax + 8]
mov rcx, qword [rax]
call fcn.14004e6f0
test al, al
je 0x14008afaa
mov rax, qword [rbx + 8]
cmp rax, qword [rbx + 0x10]
jae 0x14008a731
cmp byte [rax], 0x42
jne 0x14008a731
inc rax
mov qword [rbx + 8], rax
jmp 0x14008a8a3
cmp edx, 0x42
jne case.0x14008a7cb.2
or dword [r15 + 0x38], 2
mov rdx, qword [r15 + 0x48]
cmp rdx, qword [0x1401d2e90]
jne 0x14008a923
mov r9d, 0x811c9dc5
lea rcx, [0x1400e5891]
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 0x14008a8d0
lea r8, str.D:BuildServerDworkpackage_cacheprotobuf_blz2.6.1.7includegoogleprotobufdescriptor.pb.h
mov dword [rsp + 0x20], 0x1400
lea edx, [rax + 0xb]
lea ecx, [rax + 0x28]
call fcn.140025410
mov rdx, rax
test rax, rax
je 0x14008a91c
mov qword [rax + 8], r12
add rax, 0x18
mov qword [rdx], rax
mov qword [rdx + 0x10], rdi
mov byte [rax], r12b
jmp 0x14008a91f
mov rdx, r12
mov qword [r15 + 0x48], rdx
mov rcx, rbx
call fcn.1400703b0
test al, al
je 0x14008afaa
mov rax, qword [r15 + 0x48]
mov edx, dword [rax + 8]
mov rcx, qword [rax]
call fcn.14004e6f0
test al, al
je 0x14008afaa
mov rax, qword [rbx + 8]
cmp rax, qword [rbx + 0x10]
jae 0x14008a731
cmp byte [rax], 0x48
jne 0x14008a731
inc rax
mov qword [rbx + 8], rax
jmp 0x14008a973
cmp edx, 0x48
jne case.0x14008a7cb.2
mov rax, qword [rbx + 8]
cmp rax, qword [rbx + 0x10]
jae 0x14008a993
movzx ecx, byte [rax]
cmp cl, 0x80
jae 0x14008a993
inc rax
mov dword [rbp + 0x48], ecx
mov qword [rbx + 8], rax
mov edx, ecx
jmp 0x14008a9aa
lea rdx, [rbp + 0x48]
mov rcx, rbx
call fcn.14006f350
test al, al
je 0x14008afaa
mov edx, dword [rbp + 0x48]
mov ecx, edx
sub ecx, 1
je 0x14008a9ce
sub ecx, 1
je 0x14008a9ce
cmp ecx, 1
je 0x14008a9ce
movsxd r8, edx
lea rcx, [r15 + 0x30]
mov edx, 9
call fcn.14006e110
jmp 0x14008a9d7
or dword [r15 + 0x38], 0x20
mov dword [r15 + 0x54], edx
mov rax, qword [rbx + 8]
cmp rax, qword [rbx + 0x10]
jae 0x14008a731
cmp byte [rax], 0x50
jne 0x14008a731
inc rax
mov qword [rbx + 8], rax
jmp 0x14008aa00
cmp edx, 0x50
jne case.0x14008a7cb.2
mov rax, qword [rbx + 8]
cmp rax, qword [rbx + 0x10]
jae 0x14008aa1f
movzx ecx, byte [rax]
cmp cl, 0x80
jae 0x14008aa1f
inc rax
mov qword [rbp + 0x58], rcx
mov qword [rbx + 8], rax
jmp 0x14008aa37
lea rdx, [rbp + 0x58]
mov rcx, rbx
call fcn.14006f450
test al, al
je 0x14008afaa
mov rcx, qword [rbp + 0x58]
test rcx, rcx
setne al
or dword [r15 + 0x38], 4
mov byte [r15 + 0x50], al
mov rax, qword [rbx + 8]
cmp rax, qword [rbx + 0x10]
jae 0x14008a731
cmp byte [rax], 0x5a
jne 0x14008a731
inc rax
mov qword [rbx + 8], rax
jmp 0x14008aa6f
cmp edx, 0x5a
jne case.0x14008a7cb.2
or dword [r15 + 0x38], 0x40
mov rdx, qword [r15 + 0x58]
cmp rdx, qword [0x1401d2e90]
jne 0x14008aaf3
mov r9d, 0x811c9dc5
lea rcx, [0x1400e5891]
mov eax, 0x44
nop dword [rax]
nop word [rax + rax]
xor eax, r9d
lea rcx, [rcx + 1]
imul r9d, eax, 0x1000193
movzx eax, byte [rcx - 1]
test eax, eax
jne 0x14008aaa0
lea r8, str.D:BuildServerDworkpackage_cacheprotobuf_blz2.6.1.7includegoogleprotobufdescriptor.pb.h
mov dword [rsp + 0x20], 0x14ad
lea edx, [rax + 0xb]
lea ecx, [rax + 0x28]
call fcn.140025410
mov rdx, rax
test rax, rax
je 0x14008aaec
mov qword [rax + 8], r12
add rax, 0x18
mov qword [rdx], rax
mov qword [rdx + 0x10], rdi
mov byte [rax], r12b
jmp 0x14008aaef
mov rdx, r12
mov qword [r15 + 0x58], rdx
mov rcx, rbx
call fcn.1400703b0
test al, al
je 0x14008afaa
mov rax, qword [r15 + 0x58]
mov edx, dword [rax + 8]
mov rcx, qword [rax]
call fcn.14004e6f0
test al, al
je 0x14008afaa
mov eax, dword [rbx + 0x10]
sub eax, dword [rbx + 8]
cmp eax, 2
jl 0x14008a731
mov rax, qword [rbx + 8]
cmp byte [rax], 0x80
jne 0x14008a731
cmp byte [rax + 1], 1
jne 0x14008a731
add rax, 2
mov qword [rbx + 8], rax
jmp 0x14008ab56
cmp edx, 0x80
jne case.0x14008a7cb.2
mov rax, qword [rbx + 8]
cmp rax, qword [rbx + 0x10]
jae 0x14008ab75
movzx ecx, byte [rax]
cmp cl, 0x80
jae 0x14008ab75
inc rax
mov qword [rbp - 0x30], rcx
mov qword [rbx + 8], rax
jmp 0x14008ab8d
lea rdx, [rbp - 0x30]
mov rcx, rbx
call fcn.14006f450
test al, al
je 0x14008afaa
mov rcx, qword [rbp - 0x30]
test rcx, rcx
setne al
or dword [r15 + 0x38], 0x80
mov byte [r15 + 0x53], al
mov eax, dword [rbx + 0x10]
sub eax, dword [rbx + 8]
cmp eax, 2
jl 0x14008a731
mov rax, qword [rbx + 8]
cmp byte [rax], 0x88
jne 0x14008a731
cmp byte [rax + 1], 1
jne 0x14008a731
add rax, 2
mov qword [rbx + 8], rax
jmp 0x14008abdb
cmp edx, 0x88
jne case.0x14008a7cb.2
mov rax, qword [rbx + 8]
cmp rax, qword [rbx + 0x10]
jae 0x14008abfa
movzx ecx, byte [rax]
cmp cl, 0x80
jae 0x14008abfa
inc rax
mov qword [rbp - 0x28], rcx
mov qword [rbx + 8], rax
jmp 0x14008ac12
lea rdx, [rbp - 0x28]
mov rcx, rbx
call fcn.14006f450
test al, al
je 0x14008afaa
mov rcx, qword [rbp - 0x28]
test rcx, rcx
setne al
or dword [r15 + 0x38], 0x100
mov byte [r15 + 0x78], al
mov eax, dword [rbx + 0x10]
sub eax, dword [rbx + 8]
cmp eax, 2
jl 0x14008a731
mov rax, qword [rbx + 8]
cmp byte [rax], 0x90
jne 0x14008a731
cmp byte [rax + 1], 1
jne 0x14008a731
add rax, 2
mov qword [rbx + 8], rax
jmp 0x14008ac60
cmp edx, 0x90
jne case.0x14008a7cb.2
mov rax, qword [rbx + 8]
cmp rax, qword [rbx + 0x10]
jae 0x14008ac7f
movzx ecx, byte [rax]
cmp cl, 0x80
jae 0x14008ac7f
inc rax
mov qword [rbp - 0x20], rcx
mov qword [rbx + 8], rax
jmp 0x14008ac97
lea rdx, [rbp - 0x20]
mov rcx, rbx
call fcn.14006f450
test al, al
je 0x14008afaa
mov rcx, qword [rbp - 0x20]
test rcx, rcx
setne al
or dword [r15 + 0x38], 0x200
mov byte [r15 + 0x79], al
mov eax, dword [rbx + 0x10]
sub eax, dword [rbx + 8]
cmp eax, 2
jl 0x14008a731
mov rax, qword [rbx + 8]
cmp byte [rax], 0xa0
jne 0x14008a731
cmp byte [rax + 1], 1
jne 0x14008a731
add rax, 2
mov qword [rbx + 8], rax
jmp 0x14008ace5
cmp edx, 0xa0
jne case.0x14008a7cb.2
mov rax, qword [rbx + 8]
cmp rax, qword [rbx + 0x10]
jae 0x14008ad04
movzx ecx, byte [rax]
cmp cl, 0x80
jae 0x14008ad04
inc rax
mov qword [rbp - 0x18], rcx
mov qword [rbx + 8], rax
jmp 0x14008ad1c
lea rdx, [rbp - 0x18]
mov rcx, rbx
call fcn.14006f450
test al, al
je 0x14008afaa
mov rcx, qword [rbp - 0x18]
test rcx, rcx
setne al
or dword [r15 + 0x38], 8
mov byte [r15 + 0x51], al
mov eax, dword [rbx + 0x10]
sub eax, dword [rbx + 8]
cmp eax, 2
jl 0x14008a731
mov rax, qword [rbx + 8]
cmp byte [rax], 0xb8
jne 0x14008a731
cmp byte [rax + 1], 1
jne 0x14008a731
add rax, 2
mov qword [rbx + 8], rax
jmp 0x14008ad67
cmp edx, 0xb8
jne case.0x14008a7cb.2
mov rax, qword [rbx + 8]
cmp rax, qword [rbx + 0x10]
jae 0x14008ad86
movzx ecx, byte [rax]
cmp cl, 0x80
jae 0x14008ad86
inc rax
mov qword [rbp - 0x10], rcx
mov qword [rbx + 8], rax
jmp 0x14008ad9e
lea rdx, [rbp - 0x10]
mov rcx, rbx
call fcn.14006f450
test al, al
je 0x14008afaa
mov rcx, qword [rbp - 0x10]
test rcx, rcx
setne al
or dword [r15 + 0x38], 0x400
mov byte [r15 + 0x7a], al
mov eax, dword [rbx + 0x10]
sub eax, dword [rbx + 8]
cmp eax, 2
jl 0x14008a731
mov rax, qword [rbx + 8]
cmp byte [rax], 0xd8
jne 0x14008a731
cmp byte [rax + 1], 1
jne 0x14008a731
add rax, 2
mov qword [rbx + 8], rax
jmp 0x14008adec
cmp edx, 0xd8
jne case.0x14008a7cb.2
mov rax, qword [rbx + 8]
cmp rax, qword [rbx + 0x10]
jae 0x14008ae0b
movzx ecx, byte [rax]
cmp cl, 0x80
jae 0x14008ae0b
inc rax
mov qword [rbp - 8], rcx
mov qword [rbx + 8], rax
jmp 0x14008ae23
lea rdx, [rbp - 8]
mov rcx, rbx
call fcn.14006f450
test al, al
je 0x14008afaa
mov rcx, qword [rbp - 8]
test rcx, rcx
setne al
or dword [r15 + 0x38], 0x10
mov byte [r15 + 0x52], al
mov eax, dword [rbx + 0x10]
sub eax, dword [rbx + 8]
cmp eax, 2
jl 0x14008a731
mov rax, qword [rbx + 8]
cmp byte [rax], 0xba
jne 0x14008a731
cmp byte [rax + 1], 0x3e
jne 0x14008a731
add rax, 2
mov qword [rbx + 8], rax
jmp 0x14008ae70
cmp edx, 0x1f3a
jne case.0x14008a7cb.2
nop
lea rcx, [r15 + 0x60]
call fcn.14007f980
mov rcx, qword [rbx + 8]
mov rsi, rax
cmp rcx, qword [rbx + 0x10]
jae 0x14008ae9a
movzx edx, byte [rcx]
cmp dl, 0x80
jae 0x14008ae9a
inc rcx
mov dword [rbp + 0x50], edx
mov qword [rbx + 8], rcx
jmp 0x14008aeb1
lea rdx, [rbp + 0x50]
mov rcx, rbx
call fcn.14006f350
test al, al
je 0x14008afaa
mov edx, dword [rbp + 0x50]
mov eax, dword [rbx + 0x38]
inc eax
mov dword [rbx + 0x38], eax
cmp eax, dword [rbx + 0x3c]
jg 0x14008afaa
mov rcx, rbx
call fcn.14006ed10
mov rdx, rbx
mov rcx, rsi
mov edi, eax
call fcn.14008c570
test al, al
je 0x14008afaa
cmp byte [rbx + 0x24], r12b
je 0x14008afaa
mov edx, edi
mov rcx, rbx
call fcn.14006ecc0
mov eax, dword [rbx + 0x38]
test eax, eax
jle 0x14008aeff
dec eax
mov dword [rbx + 0x38], eax
mov eax, dword [rbx + 0x10]
sub eax, dword [rbx + 8]
cmp eax, 2
jl 0x14008af26
mov rax, qword [rbx + 8]
cmp byte [rax], 0xba
jne 0x14008af26
cmp byte [rax + 1], 0x3e
jne 0x14008af26
add rax, 2
mov qword [rbx + 8], rax
jmp 0x14008ae70
mov rax, qword [rbx + 8]
movabs rdi, 0x800000000000000f
cmp rax, qword [rbx + 0x10]
jne 0x14008a731
cmp dword [rbx + 0x2c], r12d
jne 0x14008af50
mov eax, dword [rbx + 0x28]
cmp dword [rbx + 0x18], eax
jne 0x14008a731
mov dword [rbx + 0x20], r12d
mov byte [rbx + 0x24], 1
mov al, 1
mov rbx, qword [rsp + 0xa0]
add rsp, 0x60
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
test edx, edx
je 0x14008af58
mov eax, edx
and al, 7
cmp al, 4
je 0x14008af58
lea r8, [r15 + 0x30]
cmp edx, 0x1f40
jb 0x14008afae
mov r9, qword [0x1401d2ef0]
lea rcx, [r15 + 8]
mov qword [rsp + 0x20], r8
mov r8, rbx
call fcn.1400a2190
test al, al
jne 0x14008a731
xor al, al
jmp 0x14008af5a
mov rcx, rbx
call fcn.14007cdc0
jmp 0x14008afa2