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

Disassembly:
push rsi
push rdi
push r12
push r13
push r15
sub rsp, 0x30
mov qword [rsp + 0x68], rbx
lea r13, [0x1400e5891]
mov rbx, qword [rcx]
mov rdi, rcx
or dword [rdx + 0x10], 1
mov rsi, rdx
mov rcx, qword [rdx + 0x18]
mov r15d, 0x811c9dc5
cmp rcx, qword [0x1401d2e90]
mov r12d, 0x44
mov qword [rsp + 0x70], rbp
movabs rbp, 0x800000000000000f
jne 0x140058da6
mov r9d, r15d
mov rcx, r13
mov eax, r12d
nop word [rax + rax]
xor eax, r9d
lea rcx, [rcx + 1]
imul r9d, eax, 0x1000193
movzx eax, byte [rcx - 1]
test eax, eax
jne 0x140058d50
lea r8, str.D:BuildServerDworkpackage_cacheprotobuf_blz2.6.1.7includegoogleprotobufdescriptor.pb.h
mov dword [rsp + 0x20], 0xb84
lea edx, [rax + 0xb]
lea ecx, [rax + 0x28]
call fcn.140025410
mov rcx, rax
test rax, rax
je 0x140058da0
mov qword [rax + 8], 0
add rax, 0x18
mov qword [rcx], rax
mov qword [rcx + 0x10], rbp
mov byte [rax], 0
jmp 0x140058da2
xor ecx, ecx
mov qword [rsi + 0x18], rcx
cmp rcx, rbx
je 0x140058db7
mov r8, qword [rbx + 8]
mov rdx, qword [rbx]
call fcn.14000a820
mov rbx, qword [rdi + 8]
cmp qword [rbx + 8], 0
je 0x140058e47
or dword [rsi + 0x10], 2
mov rcx, qword [rsi + 0x20]
cmp rcx, qword [0x1401d2e90]
jne 0x140058e36
mov r9d, r15d
mov rdx, r13
mov eax, r12d
xor eax, r9d
lea rdx, [rdx + 1]
imul r9d, eax, 0x1000193
movzx eax, byte [rdx - 1]
test eax, eax
jne 0x140058de0
lea r8, str.D:BuildServerDworkpackage_cacheprotobuf_blz2.6.1.7includegoogleprotobufdescriptor.pb.h
mov dword [rsp + 0x20], 0xbd0
lea edx, [rax + 0xb]
lea ecx, [rax + 0x28]
call fcn.140025410
mov rcx, rax
test rax, rax
je 0x140058e30
mov qword [rax + 8], 0
add rax, 0x18
mov qword [rcx], rax
mov qword [rcx + 0x10], rbp
mov byte [rax], 0
jmp 0x140058e32
xor ecx, ecx
mov qword [rsi + 0x20], rcx
cmp rcx, rbx
je 0x140058e47
mov r8, qword [rbx + 8]
mov rdx, qword [rbx]
call fcn.14000a820
xor ebp, ebp
mov qword [rsp + 0x78], r14
cmp dword [rdi + 0x18], ebp
jle 0x140058ed4
xor r15d, r15d
nop word [rax + rax]
mov rax, qword [rdi + 0x20]
movsxd rdx, dword [rsi + 0x30]
mov rcx, qword [r15 + rax]
mov eax, dword [rsi + 0x34]
mov r14, qword [rcx]
cmp edx, eax
jge 0x140058e86
mov rax, qword [rsi + 0x28]
mov rcx, qword [rax + rdx*8]
lea eax, [rdx + 1]
mov dword [rsi + 0x30], eax
jmp 0x140058eb2
mov edx, dword [rsi + 0x38]
cmp eax, edx
jne 0x140058e98
inc edx
lea rcx, [rsi + 0x28]
call fcn.14007f6f0
call fcn.14007f670
movsxd r8, dword [rsi + 0x30]
mov rcx, rax
inc dword [rsi + 0x34]
mov rax, qword [rsi + 0x28]
mov qword [rax + r8*8], rcx
inc dword [rsi + 0x30]
cmp rcx, r14
je 0x140058ec3
mov r8, qword [r14 + 8]
mov rdx, qword [r14]
call fcn.14000a820
inc ebp
add r15, 8
cmp ebp, dword [rdi + 0x18]
jl 0x140058e60
mov r15d, 0x811c9dc5
xor ebx, ebx
cmp dword [rdi + 0x28], ebx
jle 0x140058f05
xor r14d, r14d
nop
mov rax, qword [rdi + 0x30]
lea rdx, [rsp + 0x60]
mov ecx, dword [r14 + rax]
mov dword [rsp + 0x60], ecx
lea rcx, [rsi + 0x40]
call fcn.140051190
inc ebx
lea r14, [r14 + 4]
cmp ebx, dword [rdi + 0x28]
jl 0x140058ee0
xor ebx, ebx
cmp dword [rdi + 0x38], ebx
jle 0x140058f35
xor r14d, r14d
nop
mov rax, qword [rdi + 0x40]
lea rdx, [rsp + 0x60]
mov ecx, dword [r14 + rax]
mov dword [rsp + 0x60], ecx
lea rcx, [rsi + 0x50]
call fcn.140051190
inc ebx
lea r14, [r14 + 4]
cmp ebx, dword [rdi + 0x38]
jl 0x140058f10
xor ebp, ebp
cmp dword [rdi + 0x48], ebp
jle 0x140058f69
nop dword [rax]
movsxd rax, ebp
lea rcx, [rsi + 0x60]
imul rbx, rax, 0x88
add rbx, qword [rdi + 0x50]
call fcn.140051280
mov rdx, rax
mov rcx, rbx
call fcn.140057eb0
inc ebp
cmp ebp, dword [rdi + 0x48]
jl 0x140058f40
xor ebp, ebp
cmp dword [rdi + 0x58], ebp
jle 0x140058f96
movsxd rax, ebp
lea rcx, [rsi + 0x78]
imul rbx, rax, 0x38
add rbx, qword [rdi + 0x60]
call fcn.140051330
mov rdx, rax
mov rcx, rbx
call fcn.1400583a0
inc ebp
cmp ebp, dword [rdi + 0x58]
jl 0x140058f70
xor ebp, ebp
cmp dword [rdi + 0x68], ebp
jle 0x140059076
movsxd r8, dword [rsi + 0x98]
movsxd rax, ebp
lea rbx, [rax + rax*2]
mov eax, dword [rsi + 0x9c]
shl rbx, 4
add rbx, qword [rdi + 0x70]
cmp r8d, eax
jge 0x140058fdc
mov rax, qword [rsi + 0x90]
mov rdx, qword [rax + r8*8]
lea eax, [r8 + 1]
mov dword [rsi + 0x98], eax
jmp 0x140059063
mov edx, dword [rsi + 0xa0]
cmp eax, edx
jne 0x140058ff4
inc edx
lea rcx, [rsi + 0x90]
call fcn.14007f6f0
mov r9d, r15d
lea rcx, [0x1400e75d1]
mov eax, r12d
xor eax, r9d
lea rcx, [rcx + 1]
imul r9d, eax, 0x1000193
movzx eax, byte [rcx - 1]
test eax, eax
jne 0x140059001
lea r8, str.D:BuildServerDworkpackage_cacheprotobuf_blz2.6.1.7includegoogleprotobuf_repeated_field.h
mov dword [rsp + 0x20], 0x16c
lea edx, [rax + 0xb]
lea ecx, [rax + 0x40]
call fcn.140025410
test rax, rax
je 0x140059043
mov rcx, rax
call fcn.140080b20
mov rdx, rax
jmp 0x140059045
xor edx, edx
movsxd r8, dword [rsi + 0x98]
inc dword [rsi + 0x9c]
mov rax, qword [rsi + 0x90]
mov qword [rax + r8*8], rdx
inc dword [rsi + 0x98]
mov rcx, rbx
call fcn.140059560
inc ebp
cmp ebp, dword [rdi + 0x68]
jl 0x140058fa1
xor ebp, ebp
cmp dword [rdi + 0x78], ebp
jle 0x1400590af
nop dword [rax]
movsxd rax, ebp
lea rcx, [rsi + 0xa8]
imul rbx, rax, 0x88
add rbx, qword [rdi + 0x80]
call fcn.1400513e0
mov rdx, rax
mov rcx, rbx
call fcn.1400586f0
inc ebp
cmp ebp, dword [rdi + 0x78]
jl 0x140059080
call fcn.140091050
mov r14, qword [rsp + 0x78]
mov rbp, qword [rsp + 0x70]
mov rbx, qword [rsp + 0x68]
cmp qword [rdi + 0x88], rax
je 0x14005913a
or dword [rsi + 0x10], 0x200
mov rax, qword [rsi + 0xc0]
test rax, rax
jne 0x14005912b
nop
xor r12d, r15d
lea r13, [r13 + 1]
imul r15d, r12d, 0x1000193
movzx r12d, byte [r13 - 1]
test r12d, r12d
jne 0x1400590e0
lea edx, [r12 + 0xb]
mov dword [rsp + 0x20], 0xd03
lea ecx, [rdx + 0x75]
mov r9d, r15d
lea r8, str.D:BuildServerDworkpackage_cacheprotobuf_blz2.6.1.7includegoogleprotobufdescriptor.pb.h
call fcn.140025410
test rax, rax
je 0x140059124
mov rcx, rax
call fcn.1400809d0
mov qword [rsi + 0xc0], rax
mov rdx, qword [rdi + 0x88]
mov rcx, rax
call fcn.140084ff0
add rsp, 0x30
pop r15
pop r13
pop r12
pop rdi
pop rsi
ret