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

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x38]
sub rsp, 0x138
mov rax, qword [0x140298cb8]
xor rax, rsp
mov qword [rbp + 0x28], rax
mov r13, r9
mov r12, r8
mov qword [rsp + 0x60], rdx
mov r14, rcx
lea rdx, str.message
call fcn.1401deb30
test al, al
je 0x1401e559e
mov rcx, qword [r12 + 8]
mov r15, qword [r12]
mov qword [rbp - 0x50], r15
mov qword [rbp - 0x48], rcx
call fcn.1401ee210
mov rbx, rax
mov qword [rbp - 0x40], rax
lea rdi, [rax + 0x18]
mov rdx, qword [r12 + 0x10]
add rdx, 0x18
mov rcx, rdi
call fcn.140146570
mov rcx, qword [r15]
mov edx, dword [rcx + 0x28]
mov dword [rsp + 0x50], edx
lea rsi, [rbx + 0x30]
lea rdx, [rsp + 0x50]
mov rcx, rsi
call fcn.140146170
mov rax, qword [r15]
mov edx, dword [rax + 0x2c]
mov dword [rsp + 0x58], edx
lea rdx, [rsp + 0x58]
mov rcx, rsi
call fcn.140146170
mov ebx, 1
mov dword [rsp + 0x40], ebx
lea rdx, [rsp + 0x40]
mov rcx, rdi
call fcn.140146170
nop
xor r8d, r8d
mov rdi, qword [rsp + 0x60]
mov rdx, rdi
lea rcx, [rbp - 0x50]
call fcn.1401ed320
or dword [rdi + 0x10], ebx
mov rax, qword [rdi + 8]
and rax, 0xfffffffffffffffe
test byte [rdi + 8], bl
je 0x1401e4bbb
mov rax, qword [rax]
mov rdx, qword [rdi + 0xd8]
lea rcx, [0x14029d860]
cmp rdx, rcx
jne 0x1401e4be7
mov r8, rcx
mov rdx, rax
lea rcx, [rdi + 0xd8]
call fcn.1400040b0
mov rdx, qword [rdi + 0xd8]
lea r8, str.Expected_message_name.
mov rcx, r14
call fcn.1401df170
test al, al
je 0x1401e5557
mov r8, qword [rdi + 0xd8]
mov rdx, qword [r8 + 0x10]
xor edi, edi
movabs r10, 0x7fffffffffffffff
test rdx, rdx
je 0x1401e4dee
mov rax, r8
mov r9, qword [r8 + 0x18]
cmp r9, 0x10
jb 0x1401e4c2e
mov rax, qword [r8]
movzx eax, byte [rax]
sub al, 0x41
cmp al, 0x19
ja 0x1401e4c68
cmp rdx, 1
jbe 0x1401e4dee
mov rcx, rbx
mov rax, r8
cmp r9, 0x10
jb 0x1401e4c50
mov rax, qword [r8]
cmp byte [rcx + rax], 0x5f
je 0x1401e4c68
inc ebx
inc rcx
movsxd rax, ebx
cmp rax, rdx
jb 0x1401e4c44
jmp 0x1401e4dee
mov rax, r10
sub rax, rdx
cmp rax, 0x31
jb 0x1401e55c6
mov rax, r8
cmp r9, 0x10
jb 0x1401e4c84
mov rax, qword [r8]
mov qword [rsp + 0x30], rdx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], 0x31
lea r9, str.Message_name_should_be_in_UpperCamelCase._Found:
movzx edx, byte [rsp + 0x48]
lea rcx, [rbp - 0x18]
call fcn.140003c70
nop
mov rcx, qword [rbp - 8]
mov rdx, qword [rbp]
mov rax, rdx
sub rax, rcx
cmp rax, 0x3f
jb 0x1401e4cf8
lea rax, [rcx + 0x3f]
mov qword [rbp - 8], rax
lea rbx, [rbp - 0x18]
cmp rdx, 0x10
cmovae rbx, qword [rbp - 0x18]
add rbx, rcx
mov r8d, 0x3f
lea rdx, str.._See_https:__developers.google.com_protocol_buffers_docs_style
mov rcx, rbx
call sub.VCRUNTIME140.dll_memmove
mov byte [rbx + 0x3f], 0
lea rax, [rbp - 0x18]
jmp 0x1401e4d18
mov qword [rsp + 0x20], 0x3f
lea r9, str.._See_https:__developers.google.com_protocol_buffers_docs_style
xor r8d, r8d
lea edx, [r8 + 0x3f]
lea rcx, [rbp - 0x18]
call fcn.140003960
mov qword [rbp - 0x38], rdi
mov qword [rbp - 0x28], rdi
mov qword [rbp - 0x20], rdi
movups xmm0, xmmword [rax]
movups xmmword [rbp - 0x38], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp - 0x28], xmm1
mov qword [rax + 0x10], rdi
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
mov rcx, qword [r14 + 8]
test rcx, rcx
je 0x1401e4d61
mov rax, qword [r14]
mov r10, qword [rcx]
lea r9, [rbp - 0x38]
mov r8d, dword [rax + 0x2c]
mov edx, dword [rax + 0x28]
call qword [r10 + 0x10]
nop
mov rdx, qword [rbp - 0x20]
cmp rdx, 0x10
jb 0x1401e4d9f
inc rdx
mov rcx, qword [rbp - 0x38]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1401e4d9a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1401e4d9a
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1401f41fc
mov qword [rbp - 0x28], rdi
mov qword [rbp - 0x20], 0xf
mov byte [rbp - 0x38], 0
mov rdx, qword [rbp]
cmp rdx, 0x10
jb 0x1401e4dee
inc rdx
mov rcx, qword [rbp - 0x18]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1401e4de8
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1401e4de8
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1401f41fc
nop
mov rcx, rsi
call fcn.1401475a0
cmp eax, 2
jg 0x1401e4e35
mov rbx, qword [r15]
xor edx, edx
mov rcx, rsi
call fcn.140146710
mov ecx, dword [rbx + 0x60]
cmp ecx, dword [rax]
je 0x1401e4e20
mov dword [rsp + 0x40], ecx
lea rdx, [rsp + 0x40]
mov rcx, rsi
call fcn.140146170
mov eax, dword [rbx + 0x68]
mov dword [rsp + 0x40], eax
lea rdx, [rsp + 0x40]
mov rcx, rsi
call fcn.140146170
nop
mov r9, r13
mov r8, r12
mov r15, qword [rsp + 0x60]
mov rdx, r15
mov rcx, r14
call fcn.1401e4890
test al, al
je 0x1401e559e
lea rdx, [r14 + 0x28]
cmp qword [r14 + 0x40], 0x10
jb 0x1401e4e62
mov rdx, qword [r14 + 0x28]
cmp qword [r14 + 0x38], 6
jne 0x1401e5553
xor r13d, r13d
mov ecx, r13d
lea r8, str.proto3
nop word [rax + rax]
movzx eax, byte [rdx + rcx]
inc rcx
cmp al, byte [r8 + rcx - 1]
jne 0x1401e4e99
cmp rcx, 6
jne 0x1401e4e80
mov eax, r13d
jmp 0x1401e4e9e
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1401e5553
xorps xmm0, xmm0
movss dword [rsp + 0x70], xmm0
mov qword [rsp + 0x78], r13
mov qword [rbp - 0x80], r13
lea ecx, [rax + 0x30]
call fcn.1401f41c0
mov qword [rax], rax
mov qword [rax + 8], rax
mov qword [rsp + 0x78], rax
mov qword [rbp - 0x78], r13
xorps xmm0, xmm0
movdqa xmmword [rbp - 0x70], xmm0
mov qword [rbp - 0x60], 7
mov qword [rbp - 0x58], 8
movss xmm0, dword [0x14020afc0]
movss dword [rsp + 0x70], xmm0
mov r8, rax
mov edx, 0x10
lea rcx, [rbp - 0x78]
call fcn.14003d6a0
nop
mov rcx, qword [r15 + 0x28]
test rcx, rcx
je 0x1401e4f1d
add rcx, 8
mov rdx, rcx
mov rbx, rcx
jmp 0x1401e4f26
mov rcx, r13
mov rdx, r13
mov rbx, r13
movsxd rax, dword [r15 + 0x20]
lea rdi, [rcx + rax*8]
cmp rdx, rdi
je 0x1401e4f5e
nop dword [rax]
nop word [rax + rax]
mov rax, qword [rbx]
mov r8, qword [rax + 0x18]
lea rdx, [rbp - 0x18]
lea rcx, [rsp + 0x70]
call fcn.14006b160
add rbx, 8
cmp rbx, rdi
jne 0x1401e4f40
mov rcx, qword [r15 + 0xa0]
test rcx, rcx
je 0x1401e4f76
add rcx, 8
mov rdx, rcx
mov rbx, rcx
jmp 0x1401e4f7f
mov rcx, r13
mov rdx, r13
mov rbx, r13
movsxd rax, dword [r15 + 0x98]
lea rdi, [rcx + rax*8]
cmp rdx, rdi
je 0x1401e4fae
nop
mov rax, qword [rbx]
mov r8, qword [rax + 0x18]
lea rdx, [rbp - 0x18]
lea rcx, [rsp + 0x70]
call fcn.14006b160
add rbx, 8
cmp rbx, rdi
jne 0x1401e4f90
mov rcx, qword [r15 + 0x28]
test rcx, rcx
je 0x1401e4fc3
add rcx, 8
mov rdx, rcx
mov rbx, rcx
jmp 0x1401e4fcc
mov rcx, r13
mov rdx, r13
mov rbx, r13
movsxd rax, dword [r15 + 0x20]
lea rdi, [rcx + rax*8]
mov qword [rsp + 0x50], rdi
cmp rdx, rdi
je 0x1401e54df
movabs rdx, 0x8000000000000027
mov r8d, 0x16
mov rax, qword [rbx]
mov qword [rbp - 0x18], rax
cmp byte [rax + 0x50], 0
je 0x1401e54d2
mov r14, qword [rax + 0x18]
mov qword [rbp - 0x38], r13
mov qword [rbp - 0x28], r13
mov qword [rbp - 0x20], r13
mov rsi, qword [r14 + 0x10]
mov qword [rsp + 0x58], rsi
cmp qword [r14 + 0x18], 0x10
jb 0x1401e5026
mov r14, qword [r14]
cmp rsi, 0x10
jae 0x1401e5043
movups xmm0, xmmword [r14]
movups xmmword [rbp - 0x38], xmm0
mov r12d, 0xf
mov r13, qword [rbp - 0x38]
jmp 0x1401e50c5
mov r12, rsi
or r12, 0xf
movabs rax, 0x7fffffffffffffff
cmp r12, rax
cmova r12, rax
lea rcx, [r12 + 1]
cmp rcx, 0x1000
jb 0x1401e5095
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x1401e55cc
mov rcx, rax
call fcn.1401f41c0
test rax, rax
je 0x1401e551d
lea r13, [rax + 0x27]
and r13, 0xffffffffffffffe0
mov qword [r13 - 8], rax
jmp 0x1401e50a2
test rcx, rcx
je 0x1401e50a2
call fcn.1401f41c0
mov r13, rax
mov qword [rbp - 0x38], r13
lea r8, [rsi + 1]
mov rdx, r14
mov rcx, r13
call sub.VCRUNTIME140.dll_memcpy
movabs rdx, 0x8000000000000027
mov r8d, 0x16
mov qword [rbp - 0x20], r12
mov qword [rbp - 0x28], rsi
mov r15, rsi
test rsi, rsi
je 0x1401e50ea
lea rax, [rbp - 0x38]
cmp r12, 0x10
cmovae rax, r13
cmp byte [rax], 0x5f
je 0x1401e5213
movabs rcx, 0x7fffffffffffffff
cmp rsi, rcx
je 0x1401e55c0
lea rax, [rbp - 0x38]
cmp r12, 0x10
cmovae rax, r13
mov qword [rsp + 0x40], rax
mov qword [rbp + 8], 0
lea r15, [rsi + 1]
mov esi, 0xf
lea r14, [rbp + 8]
cmp r15, rsi
jbe 0x1401e519d
mov rsi, r15
or rsi, 0xf
cmp rsi, rcx
jbe 0x1401e513c
mov rsi, rcx
mov rax, rdx
jmp 0x1401e515e
cmp rsi, 0x16
cmovb rsi, r8
lea rcx, [rsi + 1]
cmp rcx, 0x1000
jb 0x1401e5182
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x1401e55d2
mov rcx, rax
call fcn.1401f41c0
test rax, rax
je 0x1401e5516
lea r14, [rax + 0x27]
and r14, 0xffffffffffffffe0
mov qword [r14 - 8], rax
mov rax, qword [rsp + 0x40]
jmp 0x1401e5199
test rcx, rcx
je 0x1401e5196
call fcn.1401f41c0
mov r14, rax
mov rax, qword [rsp + 0x40]
jmp 0x1401e5199
xor r14d, r14d
mov qword [rbp + 8], r14
mov qword [rbp + 0x18], r15
mov qword [rbp + 0x20], rsi
mov byte [r14], 0x5f
lea rcx, [r14 + 1]
mov r8, qword [rsp + 0x58]
mov rdx, rax
call sub.VCRUNTIME140.dll_memcpy
mov byte [r14 + r15], 0
cmp r12, 0x10
jb 0x1401e51f7
lea rdx, [r12 + 1]
cmp rdx, 0x1000
mov rax, r13
jb 0x1401e51ef
mov r13, qword [r13 - 8]
sub rax, r13
add rdx, 0x27
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1401e5516
mov rcx, r13
call fcn.1401f41fc
movups xmm0, xmmword [rbp + 8]
movups xmm1, xmmword [rbp + 0x18]
movups xmmword [rbp - 0x38], xmm0
movups xmmword [rbp - 0x28], xmm1
mov r13, qword [rbp - 0x38]
mov r15, qword [rbp - 0x28]
mov r12, qword [rbp - 0x20]
lea r8, [rbp - 0x38]
cmp r12, 0x10
cmovae r8, r13
movabs rcx, 0xcbf29ce484222325
xor edx, edx
test r15, r15
je 0x1401e5259
movabs rdi, 0x100000001b3
nop word [rax + rax]
movzx eax, byte [rdx + r8]
xor rcx, rax
imul rcx, rdi
inc rdx
cmp rdx, r15
jb 0x1401e5240
mov rdi, qword [rsp + 0x50]
and rcx, qword [rbp - 0x60]
add rcx, rcx
mov rax, qword [rbp - 0x78]
mov rsi, qword [rax + rcx*8 + 8]
cmp rsi, qword [rsp + 0x78]
je 0x1401e52ac
mov r14, qword [rax + rcx*8]
lea rdx, [rsi + 0x10]
cmp qword [rsi + 0x28], 0x10
jb 0x1401e5283
mov rdx, qword [rsi + 0x10]
lea rcx, [rbp - 0x38]
cmp r12, 0x10
cmovae rcx, r13
cmp r15, qword [rsi + 0x20]
jne 0x1401e52a1
mov r8, r15
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
je 0x1401e52ae
cmp rsi, r14
je 0x1401e52ac
mov rsi, qword [rsi + 8]
jmp 0x1401e5274
xor esi, esi
test rsi, rsi
je 0x1401e53a5
movabs rcx, 0x7fffffffffffffff
cmp r15, rcx
je 0x1401e55c0
lea rdx, [rbp - 0x38]
cmp r12, 0x10
cmovae rdx, r13
mov qword [rsp + 0x40], rdx
mov qword [rbp + 8], 0
lea rax, [r15 + 1]
mov esi, 0xf
lea r14, [rbp + 8]
cmp rax, rsi
jbe 0x1401e5382
mov rsi, rax
or rsi, 0xf
cmp rsi, rcx
jbe 0x1401e5314
mov rsi, rcx
movabs rax, 0x8000000000000027
jmp 0x1401e533b
cmp rsi, 0x16
mov ecx, 0x16
cmovb rsi, rcx
lea rcx, [rsi + 1]
cmp rcx, 0x1000
jb 0x1401e5363
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x1401e55d2
mov rcx, rax
call fcn.1401f41c0
test rax, rax
je 0x1401e5516
lea r14, [rax + 0x27]
and r14, 0xffffffffffffffe0
mov qword [r14 - 8], rax
lea rax, [r15 + 1]
mov rdx, qword [rsp + 0x40]
jmp 0x1401e537e
test rcx, rcx
je 0x1401e537b
call fcn.1401f41c0
mov r14, rax
lea rax, [r15 + 1]
mov rdx, qword [rsp + 0x40]
jmp 0x1401e537e
xor r14d, r14d
mov qword [rbp + 8], r14
mov qword [rbp + 0x18], rax
mov qword [rbp + 0x20], rsi
mov byte [r14], 0x58
lea rcx, [r14 + 1]
mov r8, r15
call sub.VCRUNTIME140.dll_memcpy
mov byte [r14 + r15 + 1], 0
jmp 0x1401e51bf
lea r8, [rbp - 0x38]
lea rdx, [rbp - 0x50]
lea rcx, [rsp + 0x70]
call fcn.14006b160
mov r15, qword [rsp + 0x60]
mov eax, dword [r15 + 0x98]
mov rcx, qword [rbp - 0x18]
or dword [rcx + 0x10], 0x80
mov dword [rcx + 0x4c], eax
lea rsi, [r15 + 0x90]
mov rcx, qword [rsi + 0x10]
test rcx, rcx
je 0x1401e53fd
movsxd rdx, dword [rsi + 8]
mov eax, dword [rcx]
cmp edx, eax
jge 0x1401e53f8
mov r8, qword [rcx + rdx*8 + 8]
lea eax, [rdx + 1]
mov dword [rsi + 8], eax
jmp 0x1401e542f
cmp eax, dword [rsi + 0xc]
jne 0x1401e5410
mov edx, dword [rsi + 0xc]
inc edx
mov rcx, rsi
call fcn.140146df0
mov rcx, qword [rsi + 0x10]
mov eax, dword [rcx]
inc eax
mov dword [rcx], eax
mov rcx, qword [rsi]
call fcn.140148e30
mov r8, rax
movsxd rdx, dword [rsi + 8]
mov rcx, qword [rsi + 0x10]
mov qword [rcx + rdx*8 + 8], rax
inc dword [rsi + 8]
or dword [r8 + 0x10], 1
mov rdx, qword [r8 + 8]
and rdx, 0xfffffffffffffffe
test byte [r8 + 8], 1
je 0x1401e5446
mov rdx, qword [rdx]
lea rax, [r8 + 0x18]
mov rcx, qword [rax]
lea r8, [0x14029d860]
cmp rcx, r8
jne 0x1401e5467
lea r8, [rbp - 0x38]
mov rcx, rax
call fcn.1400040b0
jmp 0x1401e5488
lea rax, [rbp - 0x38]
cmp rcx, rax
je 0x1401e5488
lea rdx, [rbp - 0x38]
cmp qword [rbp - 0x20], 0x10
cmovae rdx, qword [rbp - 0x38]
mov r8, qword [rbp - 0x28]
call fcn.140003300
nop
mov rdx, qword [rbp - 0x20]
cmp rdx, 0x10
jb 0x1401e54bf
inc rdx
mov rcx, qword [rbp - 0x38]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1401e54ba
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1401e551d
call fcn.1401f41fc
mov r8d, 0x16
movabs rdx, 0x8000000000000027
xor r13d, r13d
add rbx, 8
cmp rbx, rdi
jne 0x1401e4ff2
mov rdx, qword [rbp - 0x70]
mov rcx, qword [rbp - 0x78]
sub rdx, rcx
and rdx, 0xfffffffffffffff8
mov rax, rcx
cmp rdx, 0x1000
jb 0x1401e5524
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1401e5524
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call fcn.1401f41fc
mov qword [rbp - 0x78], r13
xorps xmm0, xmm0
movdqa xmmword [rbp - 0x70], xmm0
mov rdx, qword [rsp + 0x78]
lea rcx, [rsp + 0x78]
call fcn.140069f20
mov edx, 0x30
mov rcx, qword [rsp + 0x78]
call fcn.1401f41fc
mov al, 1
jmp 0x1401e55a0
mov rcx, rsi
call fcn.1401475a0
cmp eax, 2
jg 0x1401e559e
mov rbx, qword [r15]
xor edx, edx
mov rcx, rsi
call fcn.140146710
mov ecx, dword [rbx + 0x60]
cmp ecx, dword [rax]
je 0x1401e5589
mov dword [rsp + 0x40], ecx
lea rdx, [rsp + 0x40]
mov rcx, rsi
call fcn.140146170
mov eax, dword [rbx + 0x68]
mov dword [rsp + 0x40], eax
lea rdx, [rsp + 0x40]
mov rcx, rsi
call fcn.140146170
nop
xor al, al
mov rcx, qword [rbp + 0x28]
xor rcx, rsp
call fcn.1401f42a0
add rsp, 0x138
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
call fcn.140003280
nop
call fcn.140003280
nop
call fcn.140003260
nop
call fcn.140003260
int3