Function at 0x1401538c0
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
sub rsp, 0x40
mov rsi, rcx
mov r15, qword [rcx + 8]
mov qword [rsp + 0x80], r15
mov rcx, qword [rcx + 0x28]
cmp r15, 1
jne 0x14015394c
mov qword [rsi + 0x18], 8
mov qword [rsi + 8], 8
test rcx, rcx
jne 0x14015390d
lea ecx, [r15 + 0x3f]
call fcn.1401610ec
jmp 0x140153926
lfence
lea r9, vtable.type_info.0
mov edx, 0x40
lea r8d, [rdx - 0x3f]
call qword [sym.imp.ProtobufLite.dll_private:_void____ptr64___cdecl_google::protobuf::Arena::AllocateAlignedWithHookForArray_unsigned_long_long_unsigned___int64___unsigned_long_long_unsigned___int64___class_type_info_const____ptr64____ptr64]
xorps xmm0, xmm0
movups xmmword [rax], xmm0
movups xmmword [rax + 0x10], xmm0
movups xmmword [rax + 0x20], xmm0
movups xmmword [rax + 0x30], xmm0
mov qword [rsi + 0x20], rax
mov rax, rsi
shr rax, 4
mov qword [rsi + 0x10], rax
jmp 0x140153b98
mov r14, qword [rsi + 0x20]
mov qword [rsi + 8], rdx
lea rbx, [rdx*8]
test rcx, rcx
jne 0x14015396b
mov rcx, rbx
call fcn.1401610ec
jmp 0x140153984
lfence
lea r9, vtable.type_info.0
mov r8d, 1
mov rdx, rbx
call qword [sym.imp.ProtobufLite.dll_private:_void____ptr64___cdecl_google::protobuf::Arena::AllocateAlignedWithHookForArray_unsigned_long_long_unsigned___int64___unsigned_long_long_unsigned___int64___class_type_info_const____ptr64____ptr64]
mov rdi, rax
mov r8, rbx
xor edx, edx
mov rcx, rax
call main
mov qword [rsi + 0x20], rdi
mov rbp, qword [rsi + 0x18]
mov rax, qword [rsi + 8]
mov qword [rsi + 0x18], rax
cmp rbp, r15
jae 0x140153b81
movabs r13, 0xcbf29ce484222325
movabs r12, 0x100000001b3
mov rdi, qword [r14 + rbp*8]
mov rax, rbp
xor rax, 1
test rdi, rdi
je 0x140153b75
cmp rdi, qword [r14 + rax*8]
je 0x140153a5e
movabs r15, 0x9e3779b97f4a7c15
nop dword [rax]
mov rbx, qword [rdi + 0x40]
mov rdx, rdi
cmp qword [rdi + 0x18], 0x10
jb 0x140153a01
mov rdx, qword [rdi]
mov r9, qword [rdi + 0x10]
mov r8, r13
xor ecx, ecx
test r9, r9
je 0x140153a23
nop
movzx eax, byte [rcx + rdx]
xor r8, rax
imul r8, r12
inc rcx
cmp rcx, r9
jb 0x140153a10
xor r8, qword [rsi + 0x10]
imul r8, r15
shr r8, 0x20
mov rax, qword [rsi + 8]
dec rax
and r8, rax
mov r9, rdi
lea rdx, [rsp + 0x20]
mov rcx, rsi
call fcn.140153650
mov rdi, rbx
test rbx, rbx
jne 0x1401539f0
mov r15, qword [rsp + 0x80]
jmp 0x140153b75
test rdi, rdi
je 0x140153b75
cmp rdi, qword [r14 + rax*8]
jne 0x140153b75
inc rbp
mov rbx, qword [rdi + 8]
mov rbx, qword [rbx]
movabs r15, 0x9e3779b97f4a7c15
nop word [rax + rax]
mov rax, qword [rbx + 0x20]
mov rdx, rax
cmp qword [rax + 0x18], 0x10
jb 0x140153aa1
mov rdx, qword [rax]
mov r9, qword [rax + 0x10]
mov r8, r13
xor ecx, ecx
test r9, r9
je 0x140153ac3
nop
movzx eax, byte [rcx + rdx]
xor r8, rax
imul r8, r12
inc rcx
cmp rcx, r9
jb 0x140153ab0
xor r8, qword [rsi + 0x10]
imul r8, r15
shr r8, 0x20
mov rax, qword [rsi + 8]
dec rax
and r8, rax
mov r9, qword [rbx + 0x28]
lea rdx, [rsp + 0x20]
mov rcx, rsi
call fcn.140153650
mov rax, qword [rbx + 0x10]
cmp byte [rax + 0x19], 0
je 0x140153b18
mov rax, qword [rbx + 8]
cmp byte [rax + 0x19], 0
jne 0x140153b13
nop
cmp rbx, qword [rax + 0x10]
jne 0x140153b13
mov rbx, rax
mov rax, qword [rax + 8]
cmp byte [rax + 0x19], 0
je 0x140153b00
mov rbx, rax
jmp 0x140153b3f
mov rbx, rax
mov rcx, qword [rax]
cmp byte [rcx + 0x19], 0
jne 0x140153b3f
nop dword [rax]
nop dword [rax + rax]
mov rbx, rcx
mov rax, qword [rcx]
mov rcx, rax
cmp byte [rax + 0x19], 0
je 0x140153b30
cmp rbx, qword [rdi + 8]
jne 0x140153a90
cmp qword [rsi + 0x28], 0
mov r15, qword [rsp + 0x80]
jne 0x140153b75
mov qword [rsp + 0x90], rdi
mov rcx, rdi
call fcn.140151d90
mov edx, 0x18
mov rcx, rdi
call fcn.140027f70
inc rbp
cmp rbp, r15
jb 0x1401539c1
cmp qword [rsi + 0x28], 0
jne 0x140153b98
lea rdx, [r15*8]
mov rcx, r14
call fcn.140027f70
mov rbx, qword [rsp + 0x88]
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret