Function at 0x18000ae98
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 [0x18001bd88]
test rax, rax
je 0x18000b177
movss xmm8, dword [rax + 0x14]
mov rcx, rdx
movss xmm9, dword [rax + 0x10]
mov rax, qword [0x18001b8e0]
addss xmm8, dword [0x18001a29c]
movss xmm6, dword [0x18001a2cc]
mov dword [rbp + 0x30], 0x41200000
mov dword [rbp + 0x34], 0x41200000
call rax
mov rdx, rax
lea rcx, [rbp + 0x48]
call qword [0x18001bce8]
cmp qword [0x18001bd68], r14
lea ebx, [r14 + 1]
mov r11, qword [0x18001bd60]
jne 0x18000af3c
mov r10b, bl
test r11, r11
je 0x18000af3f
mov r10b, r14b
mov rcx, r14
cmp byte [rdi], r14b
je 0x18000af50
add rcx, rbx
cmp byte [rcx + rdi], r14b
jne 0x18000af47
movabs rdx, 0xcbf29ce484222325
mov r9, r14
mov r8, rdx
movabs r15, 0x100000001b3
test rcx, rcx
je 0x18000af83
movsx rax, byte [r9 + rdi]
add r9, rbx
imul r8, r15
xor r8, rax
cmp r9, rcx
jb 0x18000af6f
mov rax, qword [0x18001bd88]
movaps xmm0, xmm9
movss xmm4, dword [0x18001bca0]
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 [0x18001a330]
addss xmm1, dword [0x18001a318]
addss xmm2, xmm6
addss xmm2, dword [rbp + 0x48]
jb 0x18000b035
movss xmm0, dword [0x18001bca4]
comiss xmm0, xmm1
jb 0x18000b035
comiss xmm4, xmm2
ja 0x18000b035
comiss xmm0, xmm3
ja 0x18000b035
test cl, cl
jne 0x18000b03c
test r10b, r10b
je 0x18000b05d
cmp byte [0x18001bbe3], r14b
je 0x18000b05d
cmp byte [0x18001ba93], r14b
jne 0x18000b05d
mov rcx, r14
cmp byte [rdi], r14b
je 0x18000b010
add rcx, rbx
cmp byte [rcx + rdi], r14b
jne 0x18000b007
mov r8, r14
test rcx, rcx
je 0x18000b02c
movsx rax, byte [r8 + rdi]
add r8, rbx
imul rdx, r15
xor rdx, rax
cmp r8, rcx
jb 0x18000b018
mov qword [0x18001bd60], rdx
jmp 0x18000b05d
mov bl, r14b
test cl, cl
je 0x18000b05d
cmp byte [0x18001bbe3], r14b
je 0x18000b04e
cmp byte [0x18001ba93], r14b
je 0x18000b05d
mov qword [0x18001bd60], r14
cmp byte [rsi], r14b
sete al
mov byte [rsi], al
movaps xmm0, xmmword [0x18001a440]
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 [0x18001bcd8]
movaps xmm6, xmm9
movsd xmm7, qword [rbp + 0x30]
unpcklps xmm6, xmm8
cmp byte [rsi], r14b
je 0x18000b0cd
movups xmm0, xmmword [0x18001b790]
lea r8, [rbp - 0x50]
xorps xmm3, xmm3
movq rdx, xmm7
movq rcx, xmm6
movdqa xmmword [rbp - 0x50], xmm0
call qword [0x18001bcd8]
movups xmm0, xmmword [0x18001b570]
lea r8, [rbp - 0x50]
xorps xmm3, xmm3
movq rdx, xmm7
movq rcx, xmm6
movdqa xmmword [rbp - 0x50], xmm0
call qword [0x18001bcd0]
mov r10, qword [0x18001bce0]
cmp byte [rsi], r14b
je 0x18000b105
lea rax, [0x18001b560]
jmp 0x18000b119
test bl, bl
lea rax, [0x18001b700]
lea rcx, [0x18001b710]
cmove rax, rcx
movss xmm0, dword [rbp + 0x4c]
lea r8, [rbp - 0x50]
mulss xmm0, dword [0x18001a274]
xor r9d, r9d
mov rdx, rdi
addss xmm9, dword [0x18001a2ec]
movss xmm1, dword [0x18001a2b0]
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 [0x18001bd88]
movss xmm0, dword [rax + 0x14]
addss xmm0, dword [0x18001a2dc]
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