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

Disassembly:
mov qword [rsp + 8], rcx
push rbx
push rbp
push r15
sub rsp, 0xe0
xor r15d, r15d
mov rbp, rdx
mov eax, r15d
mov rbx, rcx
mov dword [rsp + 0x110], eax
mov dword [rsp + 0x60], eax
cmp byte [rcx + 0x10], al
je 0x14009464b
call fcn.1400693b0
mov r8, qword [rbp + 0x10]
cmp qword [r8 + 0x10], rax
jne 0x14009464b
call fcn.14006d370
mov rdx, rbp
mov rcx, qword [rax]
mov r8, qword [rcx + 8]
mov rcx, rax
add rsp, 0xe0
pop r15
pop rbp
pop rbx
jmp r8
mov rbx, qword [rbx + 0x18]
mov qword [rsp + 0x108], rsi
mov qword [rsp + 0xd8], rdi
mov qword [rsp + 0xd0], r12
cmp qword [rbx + 8], r15
jne 0x140094678
mov rdx, qword [rbx]
mov rcx, rbx
call fcn.1400950d0
mov rax, qword [rbx + 8]
mov rcx, qword [rbx]
dec rcx
and rcx, rbp
lea rsi, [rax + rcx*8]
mov rax, qword [rax + rcx*8]
mov rdi, rsi
test rax, rax
je 0x1400946a6
cmp rbp, qword [rax + 8]
je 0x1400946a6
mov rdi, rax
mov rax, qword [rax]
test rax, rax
jne 0x140094695
mov rdi, qword [rdi]
mov r12d, 0x811c9dc5
test rdi, rdi
jne 0x14009478c
movzx eax, byte [str.._AU__chained_hash_node_U__pair_QEBVDescriptor_protobuf_google__PEBUTypeInfo_DynamicMessage_23__blz___blz__]
lea rcx, [0x140127d31]
mov r9d, r12d
test eax, eax
je 0x1400946e6
nop dword [rax]
xor eax, r9d
lea rcx, [rcx + 1]
imul r9d, eax, 0x1000193
movzx eax, byte [rcx - 1]
test eax, eax
jne 0x1400946d0
mov edx, ntohs
mov dword [rsp + 0x28], r15d
lea r8, str.._AU__chained_hash_node_U__pair_QEBVDescriptor_protobuf_google__PEBUTypeInfo_DynamicMessage_23__blz___blz__
mov dword [rsp + 0x20], 0xfffffffa
lea ecx, [rdx + 0xd]
call fcn.140025e30
mov rdi, rax
test rax, rax
je 0x14009471d
mov rcx, qword [rsi]
mov qword [rax], rcx
mov qword [rax + 8], rbp
mov qword [rax + 0x10], r15
mov qword [rsi], rax
xorps xmm0, xmm0
inc qword [rbx + 0x10]
mov rcx, qword [rbx + 0x10]
mov r8, qword [rbx]
test rcx, rcx
js 0x14009473a
cvtsi2ss xmm0, rcx
jmp 0x14009474f
mov rax, rcx
and ecx, 1
shr rax, 1
or rax, rcx
cvtsi2ss xmm0, rax
addss xmm0, xmm0
xorps xmm1, xmm1
test r8, r8
js 0x14009475e
cvtsi2ss xmm1, r8
jmp 0x140094776
mov rax, r8
mov rdx, r8
shr rdx, 1
and eax, 1
or rdx, rax
cvtsi2ss xmm1, rdx
addss xmm1, xmm1
divss xmm0, xmm1
comiss xmm0, dword [rbx + 0x18]
jbe 0x14009478c
lea rdx, [r8 + r8]
mov rcx, rbx
call fcn.1400950d0
mov rax, qword [rdi + 0x10]
test rax, rax
je 0x14009479e
mov rax, qword [rax + 0x40]
jmp 0x140094f82
mov qword [rsp + 0xc8], r13
lea rbx, [0x1400eb3f1]
mov qword [rsp + 0xc0], r14
mov r9d, r12d
mov r14d, 0x44
mov rcx, rbx
mov eax, r14d
nop dword [rax]
nop dword [rax + rax]
xor eax, r9d
lea rcx, [rcx + 1]
imul r9d, eax, 0x1000193
movzx eax, byte [rcx - 1]
test eax, eax
jne 0x1400947d0
lea r8, str.D:BuildServerDworkpackage_cacheprotobuf_blz2.6.1.7_srcgoogleprotobufdynamic_message.cc
mov dword [rsp + 0x20], 0x231
lea edx, [rax + 0xb]
lea ecx, [rax + 0x50]
call fcn.140025410
mov qword [rsp + 0x70], rax
mov r13, rax
test rax, rax
je 0x14009481f
mov qword [rax + 0x30], r15
mov qword [rax + 0x38], r15
mov qword [rax + 0x40], r15
mov qword [rax + 0x48], r15
jmp 0x140094827
mov r13, r15
mov qword [rsp + 0x70], r15
mov rcx, qword [rsp + 0x100]
mov qword [rdi + 0x10], r13
mov qword [r13 + 0x28], rbp
mov rax, qword [rcx + 8]
test rax, rax
jne 0x140094848
mov rax, qword [rbp + 0x10]
mov rax, qword [rax + 0x10]
mov qword [r13 + 0x20], rax
mov r9d, r12d
mov qword [r13 + 0x18], rcx
mov eax, r14d
mov rcx, rbx
nop dword [rax]
xor eax, r9d
lea rcx, [rcx + 1]
imul r9d, eax, 0x1000193
movzx eax, byte [rcx - 1]
test eax, eax
jne 0x140094860
mov eax, dword [rbp + 0x38]
lea r8, str.D:BuildServerDworkpackage_cacheprotobuf_blz2.6.1.7_srcgoogleprotobufdynamic_message.cc
add eax, dword [rbp + 0x2c]
mov rdi, 0xffffffffffffffff
movsxd rcx, eax
mov eax, 4
mul rcx
lea edx, [rdi + 0xc]
mov dword [rsp + 0x20], 0x241
cmovo rax, rdi
mov rcx, rax
call fcn.140025410
mov rcx, qword [r13 + 0x30]
mov r12, rax
mov qword [rsp + 0x78], rax
cmp rax, rcx
je 0x1400948c6
call fcn.140025570
mov qword [r13 + 0x30], r12
mov dword [r13 + 4], 0x18
mov eax, dword [rbp + 0x2c]
add eax, 0x1f
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
lea eax, [rax*4 + 0x1f]
cdq
and edx, 7
lea ebx, [rdx + rax]
and ebx, 0xfffffff8
cmp dword [rbp + 0x38], r15d
jle 0x14009490e
mov dword [r13 + 8], ebx
mov ecx, dword [rbp + 0x38]
lea eax, [rcx*4 + 7]
add eax, ebx
cdq
and edx, 7
lea ebx, [rdx + rax]
and ebx, 0xfffffff8
mov ecx, ebx
cmp dword [rbp + 0x68], r15d
jle 0x140094925
lea eax, [rbx + 0x2f]
cdq
and edx, 7
lea ebx, [rdx + rax]
and ebx, 0xfffffff8
jmp 0x140094927
mov ecx, edi
mov dword [r13 + 0x10], ecx
lea r8, [0x140000000]
mov esi, r15d
cmp dword [rbp + 0x2c], r15d
jle 0x140094a4f
mov rdi, r15
mov r14, r12
nop word [rax + rax]
mov rax, qword [rbp + 0x30]
cmp qword [rdi + rax + 0x48], r15
jne 0x140094a33
mov edx, dword [rdi + rax + 0x30]
movsxd rax, dword [rdi + rax + 0x2c]
mov ecx, dword [r8 + rax*4 + 0xe5650]
dec ecx
cmp ecx, 9
ja 0x1400949c1
movsxd rax, ecx
cmp edx, 3
jne case.default.0x14009498a
mov ecx, dword [r8 + rax*4 + 0x94fa8]
add rcx, r8
jmp rcx
mov r8d, reloc.WS2_32.dll_recv
jmp 0x140094a0f
mov ecx, dword [r8 + rax*4 + 0x94fd0]
add rcx, r8
jmp rcx
mov r8d, 4
jmp 0x140094a0f
mov r8d, 8
jmp 0x140094a0f
mov r9d, 0x8c
lea r8, str.D:BuildServerDworkpackage_cacheprotobuf_blz2.6.1.7_srcgoogleprotobufdynamic_message.cc
mov edx, 2
lea rcx, [rsp + 0x80]
call fcn.14004ce00
lea rdx, str.Cant_get_here.
mov rcx, rax
call fcn.14004d0d0
mov rdx, rax
lea rcx, [rsp + 0x110]
call fcn.14004cf00
lea rcx, [rsp + 0x80]
call fcn.14004ceb0
mov r8d, r15d
mov ecx, 8
cmp r8d, ecx
cmovl ecx, r8d
dec ebx
add ebx, ecx
mov eax, ebx
cdq
idiv ecx
sub ebx, edx
mov dword [r14], ebx
add ebx, r8d
lea r8, [0x140000000]
inc esi
add rdi, 0x88
add r14, 4
cmp esi, dword [rbp + 0x2c]
jl 0x140094950
mov r14d, 0x44
mov ecx, r15d
cmp dword [rbp + 0x38], ecx
jle 0x140094a82
nop word [rax + rax]
lea eax, [rbx + 7]
cdq
and edx, 7
lea ebx, [rdx + rax]
mov eax, dword [rbp + 0x2c]
add eax, ecx
and ebx, 0xfffffff8
cdqe
inc ecx
mov dword [r12 + rax*4], ebx
add ebx, 8
cmp ecx, dword [rbp + 0x38]
jl 0x140094a60
lea eax, [rbx + 7]
mov esi, 0x811c9dc5
cdq
mov r9d, esi
and edx, 7
mov ecx, r14d
add eax, edx
and eax, 0xfffffff8
mov dword [r13 + 0xc], eax
add eax, 0xf
cdq
and edx, 7
add eax, edx
lea rdx, [0x1400eb3f1]
and eax, 0xfffffff8
mov dword [r13], eax
nop dword [rax]
nop dword [rax + rax]
xor ecx, r9d
lea rdx, [rdx + 1]
imul r9d, ecx, 0x1000193
movzx ecx, byte [rdx - 1]
test ecx, ecx
jne 0x140094ac0
movsxd rbx, eax
lea edx, [rcx + 0xb]
mov rcx, rbx
mov dword [rsp + 0x20], 0x281
lea r8, str.D:BuildServerDworkpackage_cacheprotobuf_blz2.6.1.7_srcgoogleprotobufdynamic_message.cc
call fcn.140025410
mov r8, rbx
xor edx, edx
mov rcx, rax
mov rdi, rax
call fcn.1400be550
test rdi, rdi
je 0x140094b18
mov rdx, r13
mov rcx, rdi
call fcn.140093a70
mov r12, rax
jmp 0x140094b1b
mov r12, r15
mov qword [r13 + 0x40], r12
mov qword [rsp + 0x68], r12
cmp dword [rbp + 0x38], r15d
jle 0x140094e0d
mov ecx, r15d
lea r13, [0x140000000]
mov dword [rsp + 0x118], ecx
mov edi, r15d
mov r12, r15
movabs r9, 0x7878787878787879
nop
mov rax, qword [rbp + 0x40]
mov r14d, r15d
cmp dword [rax + r12 + 0x1c], r15d
jle 0x140094c85
mov rsi, r15
nop word [rax + rax]
mov rax, qword [r12 + rax + 0x20]
mov rbx, qword [rsi + rax]
movsxd rax, dword [rbx + 0x2c]
mov eax, dword [r13 + rax*4 + 0xe5650]
dec eax
cmp eax, 9
ja case.default.0x140094b99
cdqe
mov ecx, dword [r13 + rax*4 + 0x94ff8]
add rcx, r13
jmp rcx
mov r8d, 4
jmp 0x140094c0b
mov r8d, 8
jmp 0x140094c0b
mov r8d, 1
jmp 0x140094c0b
mov r9d, 0xaa
lea r8, str.D:BuildServerDworkpackage_cacheprotobuf_blz2.6.1.7_srcgoogleprotobufdynamic_message.cc
mov edx, 2
lea rcx, [rsp + 0x80]
call fcn.14004ce00
lea rdx, str.Cant_get_here.
mov rcx, rax
call fcn.14004d0d0
mov rdx, rax
lea rcx, [rsp + 0x110]
call fcn.14004cf00
lea rcx, [rsp + 0x80]
call fcn.14004ceb0
mov r8d, r15d
movabs r9, 0x7878787878787879
mov ecx, 8
cmp r8d, ecx
cmovb ecx, r8d
dec edi
add edi, ecx
mov eax, edi
cdq
idiv ecx
sub edi, edx
cmp byte [rbx + 0x34], r15b
jne 0x140094c32
mov rax, qword [rbx + 0x40]
sub rbx, qword [rax + 0x30]
jmp 0x140094c46
mov rax, qword [rbx + 0x50]
test rax, rax
jne 0x140094c3f
mov rax, qword [rbx + 0x20]
sub rbx, qword [rax + 0x80]
mov rcx, qword [rsp + 0x78]
mov rax, r9
imul rbx
inc r14d
add rsi, 8
sar rdx, 6
mov rax, rdx
shr rax, 0x3f
add rdx, rax
movsxd rax, edx
mov dword [rcx + rax*4], edi
add edi, r8d
mov rax, qword [rbp + 0x40]
cmp r14d, dword [rax + r12 + 0x1c]
jl 0x140094b70
mov ecx, dword [rsp + 0x118]
inc ecx
add r12, 0x28
mov dword [rsp + 0x118], ecx
cmp ecx, dword [rbp + 0x38]
jl 0x140094b50
xor r9d, r9d
movsxd rcx, edi
mov dword [rsp + 0x28], r15d
xor r8d, r8d
mov dword [rsp + 0x20], 0xfffffffa
lea edx, [r9 + 0xb]
call fcn.140025e30
mov r13, qword [rsp + 0x70]
mov r8, rax
mov rdx, qword [r13 + 0x30]
mov rcx, qword [r13 + 0x28]
mov qword [r13 + 0x48], rax
call fcn.140094330
mov eax, 0x44
lea rdx, [0x1400eb3f1]
mov ecx, 0x811c9dc5
nop dword [rax]
nop dword [rax + rax]
xor ecx, eax
movzx eax, byte [rdx]
imul ecx, ecx, 0x1000193
lea rdx, [rdx + 1]
test eax, eax
jne 0x140094cf0
mov r9d, ecx
mov dword [rsp + 0x20], 0x29a
lea ecx, [rax + 0x50]
lea r8, str.D:BuildServerDworkpackage_cacheprotobuf_blz2.6.1.7_srcgoogleprotobufdynamic_message.cc
lea edx, [rax + 0xb]
call fcn.140025410
test rax, rax
je 0x140094d86
mov ecx, dword [r13]
mov r10, qword [r13 + 0x20]
mov r11d, dword [r13 + 8]
mov rbx, qword [r13 + 0x48]
mov edi, dword [r13 + 0x10]
mov esi, dword [r13 + 0xc]
mov ebp, dword [r13 + 4]
mov r9, qword [r13 + 0x30]
mov r8, qword [r13 + 0x40]
mov rdx, qword [r13 + 0x28]
mov dword [rsp + 0x58], ecx
mov rcx, qword [rsp + 0x100]
mov qword [rsp + 0x50], rcx
mov rcx, rax
mov qword [rsp + 0x48], r10
mov dword [rsp + 0x40], r11d
mov qword [rsp + 0x38], rbx
mov dword [rsp + 0x30], edi
mov dword [rsp + 0x28], esi
mov dword [rsp + 0x20], ebp
call fcn.1400720a0
mov rbx, rax
jmp 0x140094d89
mov rbx, r15
mov rcx, qword [r13 + 0x38]
cmp rbx, rcx
je 0x140094da5
test rcx, rcx
je 0x140094da1
mov rax, qword [rcx]
mov edx, 1
call qword [rax]
mov qword [r13 + 0x38], rbx
mov r12, qword [rsp + 0x68]
mov rax, qword [r12 + 8]
mov rcx, qword [rax + 0x40]
cmp rcx, r12
je 0x140094ed3
test rcx, rcx
je 0x140094ed3
mov r9d, 0x1cf
lea r8, str.D:BuildServerDworkpackage_cacheprotobuf_blz2.6.1.7_srcgoogleprotobufdynamic_message.cc
mov edx, 3
lea rcx, [rsp + 0x80]
call fcn.14004ce00
lea rdx, str.CHECK_failed:_is_prototype__:
mov rcx, rax
call fcn.14004d0d0
mov rdx, rax
lea rcx, [rsp + 0x100]
call fcn.14004cf00
mov eax, 1
jmp 0x140094ed7
lea rax, [0x1400eb3f1]
nop dword [rax]
nop dword [rax + rax]
xor r14d, esi
lea rax, [rax + 1]
imul esi, r14d, 0x1000193
movzx r14d, byte [rax - 1]
test r14d, r14d
jne 0x140094e20
lea edx, [r14 + 0xb]
mov dword [rsp + 0x20], 0x2a8
lea ecx, [rdx + 0x45]
mov r9d, esi
lea r8, str.D:BuildServerDworkpackage_cacheprotobuf_blz2.6.1.7_srcgoogleprotobufdynamic_message.cc
call fcn.140025410
test rax, rax
je 0x140094eab
mov ecx, dword [r13]
mov r10, qword [r13 + 0x20]
mov r11d, dword [r13 + 0x10]
mov ebx, dword [r13 + 0xc]
mov edi, dword [r13 + 4]
mov r9, qword [r13 + 0x30]
mov r8, qword [r13 + 0x40]
mov rdx, qword [r13 + 0x28]
mov dword [rsp + 0x48], ecx
mov rcx, qword [rsp + 0x100]
mov qword [rsp + 0x40], rcx
mov rcx, rax
mov qword [rsp + 0x38], r10
mov dword [rsp + 0x30], r11d
mov dword [rsp + 0x28], ebx
mov dword [rsp + 0x20], edi
call fcn.140072040
mov rbx, rax
jmp 0x140094eae
mov rbx, r15
mov rcx, qword [r13 + 0x38]
cmp rbx, rcx
je 0x140094daa
test rcx, rcx
je 0x140094eca
mov rax, qword [rcx]
mov edx, 1
call qword [rax]
mov qword [r13 + 0x38], rbx
jmp 0x140094daa
mov eax, dword [rsp + 0x60]
test al, 1
je 0x140094ee8
lea rcx, [rsp + 0x80]
call fcn.14004ceb0
mov rcx, qword [r12 + 8]
mov rbp, qword [rcx + 0x28]
mov r14, qword [rcx + 0x18]
cmp dword [rbp + 0x2c], r15d
jle 0x140094f6f
mov rdi, r15
lea r13, [0x140000000]
mov rbx, r15
nop dword [rax + rax]
mov rax, qword [rcx + 0x30]
mov rdx, qword [rbp + 0x30]
movsxd r8, dword [rax + rdi]
cmp qword [rbx + rdx + 0x48], 0
lea rsi, [r8 + r12]
je 0x140094f2f
mov rsi, qword [rcx + 0x48]
add rsi, r8
movsxd rax, dword [rbx + rdx + 0x2c]
cmp dword [r13 + rax*4 + 0xe5650], 0xa
jne 0x140094f5b
cmp dword [rbx + rdx + 0x30], 3
je 0x140094f5b
mov rdx, qword [rbx + rdx + 0x58]
mov rcx, r14
call fcn.1400945f0
mov qword [rsi], rax
mov rcx, qword [r12 + 8]
inc r15d
add rbx, 0x88
add rdi, 4
cmp r15d, dword [rbp + 0x2c]
jl 0x140094f10
mov r14, qword [rsp + 0xc0]
mov rax, r12
mov r13, qword [rsp + 0xc8]
mov rdi, qword [rsp + 0xd8]
mov rsi, qword [rsp + 0x108]
mov r12, qword [rsp + 0xd0]
add rsp, 0xe0
pop r15
pop rbp
pop rbx
ret