Function at 0x140087b30
Capabilities:
Encode data using xor
Hash data using fnv
Resolve function by parsing pe exports

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r13
push r14
push r15
sub rsp, 0x40
mov rbx, rdx
lea r15, [0x140000000]
mov r14, rcx
movabs r13, 0x800000000000000f
mov rax, qword [rbx + 8]
cmp rax, qword [rbx + 0x10]
jae 0x140087b75
movzx ecx, byte [rax]
test cl, cl
jle 0x140087b75
inc rax
mov dword [rbx + 0x20], ecx
mov qword [rbx + 8], rax
mov edx, ecx
jmp 0x140087b8d
mov rcx, rbx
call fcn.14006f1a0
mov edx, eax
mov dword [rbx + 0x20], eax
dec eax
cmp eax, 0x7f
jae case.default.0x140087baa
mov eax, edx
shr eax, 3
dec eax
cmp eax, 7
ja case.default.0x140087baa
cdqe
mov ecx, dword [r15 + rax*4 + 0x8822c]
add rcx, r15
jmp rcx
cmp edx, 0xa
jne case.default.0x140087baa
or dword [r14 + 0x10], 1
mov rdx, qword [r14 + 0x18]
cmp rdx, qword [0x1401d2e90]
jne 0x140087c36
mov r9d, 0x811c9dc5
lea rcx, [0x1400e5891]
mov eax, 0x44
nop dword [rax]
xor eax, r9d
lea rcx, [rcx + 1]
imul r9d, eax, 0x1000193
movzx eax, byte [rcx - 1]
test eax, eax
jne 0x140087be0
lea r8, str.D:BuildServerDworkpackage_cacheprotobuf_blz2.6.1.7includegoogleprotobufdescriptor.pb.h
mov dword [rsp + 0x20], 0xda8
lea edx, [rax + 0xb]
lea ecx, [rax + 0x28]
call fcn.140025410
mov rdx, rax
test rax, rax
je 0x140087c30
mov qword [rax + 8], 0
add rax, 0x18
mov qword [rdx], rax
mov qword [rdx + 0x10], r13
mov byte [rax], 0
jmp 0x140087c32
xor edx, edx
mov qword [r14 + 0x18], rdx
mov rcx, rbx
call fcn.1400703b0
test al, al
je 0x140088219
mov rax, qword [r14 + 0x18]
mov edx, dword [rax + 8]
mov rcx, qword [rax]
call fcn.14004e6f0
test al, al
je 0x140088219
mov rax, qword [rbx + 8]
cmp rax, qword [rbx + 0x10]
jae 0x140087b56
cmp byte [rax], 0x12
jne 0x140087b56
inc rax
mov qword [rbx + 8], rax
jmp 0x140087c86
cmp edx, 0x12
jne case.default.0x140087baa
lea rcx, [r14 + 0x20]
call fcn.14004ed30
mov rcx, qword [rbx + 8]
mov rsi, rax
cmp rcx, qword [rbx + 0x10]
jae 0x140087cb4
movzx edx, byte [rcx]
cmp dl, 0x80
jae 0x140087cb4
inc rcx
mov dword [rsp + 0x88], edx
mov qword [rbx + 8], rcx
jmp 0x140087cd3
lea rdx, [rsp + 0x88]
mov rcx, rbx
call fcn.14006f350
test al, al
je 0x140088219
mov edx, dword [rsp + 0x88]
mov eax, dword [rbx + 0x38]
inc eax
mov dword [rbx + 0x38], eax
cmp eax, dword [rbx + 0x3c]
jg 0x140088219
mov rcx, rbx
call fcn.14006ed10
mov rdx, rbx
mov rcx, rsi
mov edi, eax
call fcn.140088ee0
test al, al
je 0x140088219
cmp byte [rbx + 0x24], 0
je 0x140088219
mov edx, edi
mov rcx, rbx
call fcn.14006ecc0
mov eax, dword [rbx + 0x38]
test eax, eax
jle 0x140087d21
dec eax
mov dword [rbx + 0x38], eax
mov rcx, qword [rbx + 0x10]
mov rax, qword [rbx + 8]
cmp rax, rcx
jae 0x140087b56
cmp byte [rax], 0x12
jne 0x140087d43
inc rax
mov qword [rbx + 8], rax
jmp 0x140087c86
cmp rax, rcx
jae 0x140087b56
cmp byte [rax], 0x1a
jne 0x140087b56
inc rax
mov qword [rbx + 8], rax
jmp 0x140087d67
cmp edx, 0x1a
jne case.default.0x140087baa
lea rcx, [r14 + 0x50]
call fcn.14004ea70
mov rdx, rax
mov rcx, rbx
call fcn.1400800b0
test al, al
je 0x140088219
mov rcx, qword [rbx + 0x10]
mov rax, qword [rbx + 8]
cmp rax, rcx
jae 0x140087b56
cmp byte [rax], 0x1a
jne 0x140087da2
inc rax
mov qword [rbx + 8], rax
jmp 0x140087d67
cmp rax, rcx
jae 0x140087b56
cmp byte [rax], 0x22
jne 0x140087b56
inc rax
mov qword [rbx + 8], rax
jmp 0x140087dc6
cmp edx, 0x22
jne case.default.0x140087baa
lea rcx, [r14 + 0x68]
call fcn.14004ebd0
mov rcx, qword [rbx + 8]
mov rsi, rax
cmp rcx, qword [rbx + 0x10]
jae 0x140087df4
movzx edx, byte [rcx]
cmp dl, 0x80
jae 0x140087df4
inc rcx
mov dword [rsp + 0x90], edx
mov qword [rbx + 8], rcx
jmp 0x140087e13
lea rdx, [rsp + 0x90]
mov rcx, rbx
call fcn.14006f350
test al, al
je 0x140088219
mov edx, dword [rsp + 0x90]
mov eax, dword [rbx + 0x38]
inc eax
mov dword [rbx + 0x38], eax
cmp eax, dword [rbx + 0x3c]
jg 0x140088219
mov rcx, rbx
call fcn.14006ed10
mov rdx, rbx
mov rcx, rsi
mov edi, eax
call fcn.1400883c0
test al, al
je 0x140088219
cmp byte [rbx + 0x24], 0
je 0x140088219
mov edx, edi
mov rcx, rbx
call fcn.14006ecc0
mov eax, dword [rbx + 0x38]
test eax, eax
jle 0x140087e61
dec eax
mov dword [rbx + 0x38], eax
mov rcx, qword [rbx + 0x10]
mov rax, qword [rbx + 8]
cmp rax, rcx
jae 0x140087b56
cmp byte [rax], 0x22
jne 0x140087e83
inc rax
mov qword [rbx + 8], rax
jmp 0x140087dc6
cmp rax, rcx
jae 0x140087b56
cmp byte [rax], 0x2a
jne 0x140087b56
inc rax
mov qword [rbx + 8], rax
jmp 0x140087eb0
cmp edx, 0x2a
jne case.default.0x140087baa
nop word [rax + rax]
lea rcx, [r14 + 0x80]
call fcn.14004eb20
mov rcx, qword [rbx + 8]
mov rsi, rax
cmp rcx, qword [rbx + 0x10]
jae 0x140087ee1
movzx edx, byte [rcx]
cmp dl, 0x80
jae 0x140087ee1
inc rcx
mov dword [rsp + 0x98], edx
mov qword [rbx + 8], rcx
jmp 0x140087f00
lea rdx, [rsp + 0x98]
mov rcx, rbx
call fcn.14006f350
test al, al
je 0x140088219
mov edx, dword [rsp + 0x98]
inc dword [rbx + 0x38]
mov eax, dword [rbx + 0x38]
cmp eax, dword [rbx + 0x3c]
jg 0x140088219
mov rcx, rbx
call fcn.14006ed10
mov rdx, rbx
mov rcx, rsi
mov edi, eax
call fcn.140088250
test al, al
je 0x140088219
cmp byte [rbx + 0x24], 0
je 0x140088219
mov edx, edi
mov rcx, rbx
call fcn.14006ecc0
mov eax, dword [rbx + 0x38]
test eax, eax
jle 0x140087f4c
dec eax
mov dword [rbx + 0x38], eax
mov rcx, qword [rbx + 0x10]
mov rax, qword [rbx + 8]
cmp rax, rcx
jae 0x140087b56
cmp byte [rax], 0x2a
jne 0x140087f6e
inc rax
mov qword [rbx + 8], rax
jmp 0x140087eb0
cmp rax, rcx
jae 0x140087b56
cmp byte [rax], 0x32
jne 0x140087b56
inc rax
mov qword [rbx + 8], rax
jmp 0x140087f92
cmp edx, 0x32
jne case.default.0x140087baa
lea rcx, [r14 + 0x38]
call fcn.14004ed30
mov rcx, qword [rbx + 8]
mov rsi, rax
cmp rcx, qword [rbx + 0x10]
jae 0x140087fbd
movzx edx, byte [rcx]
cmp dl, 0x80
jae 0x140087fbd
inc rcx
mov dword [rsp + 0x30], edx
mov qword [rbx + 8], rcx
jmp 0x140087fd6
lea rdx, [rsp + 0x30]
mov rcx, rbx
call fcn.14006f350
test al, al
je 0x140088219
mov edx, dword [rsp + 0x30]
inc dword [rbx + 0x38]
mov eax, dword [rbx + 0x38]
cmp eax, dword [rbx + 0x3c]
jg 0x140088219
mov rcx, rbx
call fcn.14006ed10
mov rdx, rbx
mov rcx, rsi
mov edi, eax
call fcn.140088ee0
test al, al
je 0x140088219
cmp byte [rbx + 0x24], 0
je 0x140088219
mov edx, edi
mov rcx, rbx
call fcn.14006ecc0
mov eax, dword [rbx + 0x38]
test eax, eax
jle 0x140088022
dec eax
mov dword [rbx + 0x38], eax
mov rcx, qword [rbx + 0x10]
mov rax, qword [rbx + 8]
cmp rax, rcx
jae 0x140087b56
cmp byte [rax], 0x32
jne 0x140088044
inc rax
mov qword [rbx + 8], rax
jmp 0x140087f92
cmp rax, rcx
jae 0x140087b56
cmp byte [rax], 0x3a
jne 0x140087b56
inc rax
mov qword [rbx + 8], rax
jmp 0x140088068
cmp edx, 0x3a
jne case.default.0x140087baa
mov rcx, r14
call fcn.140091140
mov rcx, qword [rbx + 8]
mov rsi, rax
cmp rcx, qword [rbx + 0x10]
jae 0x140088092
movzx edx, byte [rcx]
cmp dl, 0x80
jae 0x140088092
inc rcx
mov dword [rsp + 0x34], edx
mov qword [rbx + 8], rcx
jmp 0x1400880ab
lea rdx, [rsp + 0x34]
mov rcx, rbx
call fcn.14006f350
test al, al
je 0x140088219
mov edx, dword [rsp + 0x34]
inc dword [rbx + 0x38]
mov eax, dword [rbx + 0x38]
cmp eax, dword [rbx + 0x3c]
jg 0x140088219
mov rcx, rbx
call fcn.14006ed10
mov rdx, rbx
mov rcx, rsi
mov edi, eax
call fcn.14008b030
test al, al
je 0x140088219
cmp byte [rbx + 0x24], 0
je 0x140088219
mov edx, edi
mov rcx, rbx
call fcn.14006ecc0
mov eax, dword [rbx + 0x38]
test eax, eax
jle 0x1400880f7
dec eax
mov dword [rbx + 0x38], eax
mov rax, qword [rbx + 8]
cmp rax, qword [rbx + 0x10]
jae 0x140087b56
jmp 0x1400881b0
cmp edx, 0x42
jne case.default.0x140087baa
lea rcx, [r14 + 0x98]
call fcn.14004ee90
mov rcx, qword [rbx + 8]
mov rsi, rax
cmp rcx, qword [rbx + 0x10]
jae 0x140088141
movzx edx, byte [rcx]
cmp dl, 0x80
jae 0x140088141
inc rcx
mov dword [rsp + 0x38], edx
mov qword [rbx + 8], rcx
jmp 0x14008815a
lea rdx, [rsp + 0x38]
mov rcx, rbx
call fcn.14006f350
test al, al
je 0x140088219
mov edx, dword [rsp + 0x38]
inc dword [rbx + 0x38]
mov eax, dword [rbx + 0x38]
cmp eax, dword [rbx + 0x3c]
jg 0x140088219
mov rcx, rbx
call fcn.14006ed10
mov rdx, rbx
mov rcx, rsi
mov edi, eax
call fcn.14008b9e0
test al, al
je 0x140088219
cmp byte [rbx + 0x24], 0
je 0x140088219
mov edx, edi
mov rcx, rbx
call fcn.14006ecc0
mov eax, dword [rbx + 0x38]
test eax, eax
jle 0x1400881a6
dec eax
mov dword [rbx + 0x38], eax
mov rax, qword [rbx + 8]
cmp rax, qword [rbx + 0x10]
jae 0x1400881c5
cmp byte [rax], 0x42
jne 0x140087b56
inc rax
mov qword [rbx + 8], rax
jmp 0x140088113
jne 0x140087b56
cmp dword [rbx + 0x2c], 0
jne 0x1400881dd
mov eax, dword [rbx + 0x28]
cmp dword [rbx + 0x18], eax
jne 0x140087b56
mov dword [rbx + 0x20], 0
mov byte [rbx + 0x24], 1
mov al, 1
add rsp, 0x40
pop r15
pop r14
pop r13
pop rdi
pop rsi
pop rbp
pop rbx
ret
test edx, edx
je 0x1400881e8
mov eax, edx
and al, 7
cmp al, 4
je 0x1400881e8
lea r8, [r14 + 8]
mov rcx, rbx
call fcn.14007cdc0
test al, al
jne 0x140087b56
xor al, al
add rsp, 0x40
pop r15
pop r14
pop r13
pop rdi
pop rsi
pop rbp
pop rbx
ret