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

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 8], rcx
push rbp
push rsi
push rdi
push r14
push r15
mov rbp, rsp
sub rsp, 0x70
movaps xmmword [rax - 0x38], xmm6
xor r14d, r14d
movaps xmmword [rax - 0x48], xmm7
mov rsi, r8
movaps xmmword [rax - 0x58], xmm8
mov rdi, rdx
movaps xmmword [rax - 0x68], xmm9
mov rax, qword [0x180021fc8]
test rax, rax
je 0x18000b15f
movss xmm8, dword [rax + 0x14]
mov rcx, rdx
movss xmm9, dword [rax + 0x10]
mov rax, qword [0x180021b28]
addss xmm8, dword [0x18001f300]
movss xmm6, dword [0x18001f338]
mov dword [rbp + 0x30], 0x41200000
mov dword [rbp + 0x34], 0x41200000
call rax
mov rdx, rax
lea rcx, [rbp + 0x48]
call qword [0x180021f28]
cmp qword [0x180021fa8], r14
lea ebx, [r14 + 1]
mov r11, qword [0x180021fa0]
jne 0x18000af24
mov r10b, bl
test r11, r11
je 0x18000af27
mov r10b, r14b
mov rcx, r14
cmp byte [rdi], r14b
je 0x18000af38
add rcx, rbx
cmp byte [rcx + rdi], r14b
jne 0x18000af2f
movabs rdx, 0xcbf29ce484222325
mov r9, r14
mov r8, rdx
movabs r15, 0x100000001b3
test rcx, rcx
je 0x18000af6b
movsx rax, byte [r9 + rdi]
add r9, rbx
imul r8, r15
xor r8, rax
cmp r9, rcx
jb 0x18000af57
mov rax, qword [0x180021fc8]
movaps xmm0, xmm9
movss xmm4, dword [0x180021ee0]
movaps xmm1, xmm8
cmp r11, r8
addss xmm0, dword [rax]
addss xmm1, dword [rax + 4]
sete cl
comiss xmm4, xmm0
movaps xmm3, xmm1
movaps xmm2, xmm0
addss xmm3, dword [0x18001f3a0]
addss xmm1, dword [0x18001f388]
addss xmm2, xmm6
addss xmm2, dword [rbp + 0x48]
jb 0x18000b01d
movss xmm0, dword [0x180021ee4]
comiss xmm0, xmm1
jb 0x18000b01d
comiss xmm4, xmm2
ja 0x18000b01d
comiss xmm0, xmm3
ja 0x18000b01d
test cl, cl
jne 0x18000b024
test r10b, r10b
je 0x18000b045
cmp byte [0x180021cd3], r14b
je 0x18000b045
cmp byte [0x180021e23], r14b
jne 0x18000b045
mov rcx, r14
cmp byte [rdi], r14b
je 0x18000aff8
add rcx, rbx
cmp byte [rcx + rdi], r14b
jne 0x18000afef
mov r8, r14
test rcx, rcx
je 0x18000b014
movsx rax, byte [r8 + rdi]
add r8, rbx
imul rdx, r15
xor rdx, rax
cmp r8, rcx
jb 0x18000b000
mov qword [0x180021fa0], rdx
jmp 0x18000b045
mov bl, r14b
test cl, cl
je 0x18000b045
cmp byte [0x180021cd3], r14b
je 0x18000b036
cmp byte [0x180021e23], r14b
je 0x18000b045
mov qword [0x180021fa0], r14
cmp byte [rsi], r14b
sete al
mov byte [rsi], al
movaps xmm0, xmmword [0x18001f4b0]
lea r8, [rbp - 0x50]
movq qword [rbp - 0x50], xmm0
movaps xmm1, xmm9
psrldq xmm0, 8
xorps xmm3, xmm3
movq qword [rbp - 0x48], xmm0
movaps xmm0, xmm6
unpcklps xmm0, xmm6
unpcklps xmm1, xmm8
movq rdx, xmm0
movq rcx, xmm1
call qword [0x180021f18]
movaps xmm6, xmm9
movsd xmm7, qword [rbp + 0x30]
unpcklps xmm6, xmm8
cmp byte [rsi], r14b
je 0x18000b0b5
movups xmm0, xmmword [0x1800219a0]
lea r8, [rbp - 0x50]
xorps xmm3, xmm3
movq rdx, xmm7
movq rcx, xmm6
movdqa xmmword [rbp - 0x50], xmm0
call qword [0x180021f18]
movups xmm0, xmmword [0x180021778]
lea r8, [rbp - 0x50]
xorps xmm3, xmm3
movq rdx, xmm7
movq rcx, xmm6
movdqa xmmword [rbp - 0x50], xmm0
call qword [0x180021f10]
mov r10, qword [0x180021f20]
cmp byte [rsi], r14b
je 0x18000b0ed
lea rax, [0x180021768]
jmp 0x18000b101
test bl, bl
lea rax, [0x180021910]
lea rcx, [0x180021920]
cmove rax, rcx
movss xmm0, dword [rbp + 0x4c]
lea r8, [rbp - 0x50]
mulss xmm0, dword [0x18001f2ac]
xor r9d, r9d
mov rdx, rdi
addss xmm9, dword [0x18001f358]
movss xmm1, dword [0x18001f314]
subss xmm1, xmm0
movups xmm0, xmmword [rax]
movdqu xmmword [rbp - 0x50], xmm0
addss xmm1, xmm8
unpcklps xmm9, xmm1
movq rcx, xmm9
call r10
mov rax, qword [0x180021fc8]
movss xmm0, dword [rax + 0x14]
addss xmm0, dword [0x18001f348]
movss dword [rax + 0x14], xmm0
movaps xmm6, xmmword [rsp + 0x60]
lea r11, [rsp + 0x70]
mov rbx, qword [r11 + 0x38]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm7, xmmword [rsp + 0x50]
mov rsp, r11
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret