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

Disassembly:
mov r11, rsp
mov qword [r11 + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xa0
mov rax, qword [0x180176168]
xor rax, rsp
mov qword [rsp + 0x98], rax
mov r12, rdx
mov r14, rcx
xor r13d, r13d
mov dword [rsp + 0x28], r13d
lea rax, vtable.TRAITS::BookTraits.0
mov qword [rcx], rax
mov byte [rcx + 9], r13b
mov byte [rcx + 0xb], r13b
mov byte [rcx + 0x10], r13b
xorps xmm0, xmm0
xor eax, eax
movups xmmword [r11 - 0x58], xmm0
mov qword [r11 - 0x48], rax
lea rax, [0x180120254]
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], 1
mov rbp, qword [rdx + 0x10]
test rbp, rbp
je 0x180035b47
mov r15, rdx
cmp qword [rdx + 0x18], 0x10
jb 0x180035b08
mov r15, qword [rdx]
cmp rbp, 4
jne 0x180035c55
lea rsi, str.NONE
sub r15, rsi
nop dword [rax]
movzx edi, byte [rsi]
movzx ecx, byte [rsi + r15]
call fcn.1800c57d0
mov ebx, eax
mov ecx, edi
call fcn.1800c57d0
cmp ebx, eax
jne 0x180035c55
inc rsi
sub rbp, 1
jne 0x180035b20
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x40], xmm0
lea rcx, [rsp + 0x38]
mov edi, 6
mov rbx, r13
mov rax, qword [rcx + 0x10]
mov qword [rcx + 0x10], r13
mov rbp, qword [rcx + 8]
mov qword [rcx + 8], r13
mov qword [rcx], r13
mov qword [rsp + 0x80], rbx
mov qword [rsp + 0x88], rbp
mov qword [rsp + 0x90], rax
test dil, 2
je 0x180035b9b
and edi, 0xfffffffd
lea rcx, [rsp + 0x38]
call fcn.180013200
test dil, 1
je 0x180035bac
lea rcx, [rsp + 0x50]
call fcn.180013200
nop
cmp rbx, rbp
je 0x180035d47
movabs rdx, 0xcbf29ce484222325
movabs r15, 0x100000001b3
movabs r9, 0x7d02d07b4980af1
movabs r10, 0x9087007b5a1020e
movabs r11, 0xaf640e4c86024182
movabs r12, 0xdef73b17de8358b7
mov rcx, rbx
cmp qword [rbx + 0x18], 0x10
jb 0x180035bfe
mov rcx, qword [rbx]
mov r8, qword [rbx + 0x10]
add r8, rcx
cmp rcx, r8
je 0x180035cc1
nop
movsx rax, byte [rcx]
xor rdx, rax
imul rdx, r15
inc rcx
cmp rcx, r8
jne 0x180035c10
cmp rdx, r9
je 0x180035cae
cmp rdx, r10
je 0x180035c98
cmp rdx, r11
je 0x180035c82
cmp rdx, r12
jne 0x180035cc1
mov word [rsp + 0x20], 0x100
movzx eax, word [rsp + 0x20]
mov word [r14 + 0xa], ax
jmp 0x180035d30
movaps xmm0, xmmword [rsp + 0x70]
movdqa xmmword [rsp + 0x70], xmm0
lea r8, [rsp + 0x70]
mov rdx, r12
lea rcx, [rsp + 0x50]
call fcn.180041350
mov rcx, rax
mov edi, 5
mov rbx, qword [rax]
jmp 0x180035b5d
mov word [rsp + 0x22], 0x101
movzx eax, word [rsp + 0x22]
mov word [r14 + 8], ax
jmp 0x180035d30
mov word [rsp + 0x24], 0x101
movzx eax, word [rsp + 0x24]
mov word [r14 + 0xa], ax
jmp 0x180035d30
mov word [rsp + 0x28], 0x100
movzx eax, word [rsp + 0x28]
mov word [r14 + 8], ax
jmp 0x180035d30
call fcn.1800c58d0
mov rsi, rax
mov rdi, rbx
cmp qword [rbx + 0x18], 0x10
jb 0x180035cd6
mov rdi, qword [rbx]
mov dword [rax], r13d
mov r8d, 0xa
lea rdx, [rsp + 0x70]
mov rcx, rdi
call fcn.1800c6794
cmp rdi, qword [rsp + 0x70]
je 0x180035d8f
cmp dword [rsi], 0x22
je 0x180035d82
mov dword [rsp + 0x2c], eax
mov byte [rsp + 0x30], 1
mov rax, qword [rsp + 0x2c]
mov qword [r14 + 0xc], rax
movabs r9, 0x7d02d07b4980af1
movabs r10, 0x9087007b5a1020e
movabs r11, 0xaf640e4c86024182
add rbx, 0x20
cmp rbx, rbp
movabs rdx, 0xcbf29ce484222325
jne 0x180035bf1
lea rcx, [rsp + 0x80]
call fcn.180013200
mov rax, r14
mov rcx, qword [rsp + 0x98]
xor rcx, rsp
call fcn.1800be760
mov rbx, qword [rsp + 0xf0]
add rsp, 0xa0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
lea rcx, str.stoul_argument_out_of_range
call fcn.1800bc0bc
int3
lea rcx, str.invalid_stoul_argument
call fcn.1800bc074
int3