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

Disassembly:
push rbx
push rdi
sub rsp, 0xa8
mov rax, qword [0x140097050]
xor rax, rsp
mov qword [rsp + 0x88], rax
mov rdx, qword [rcx]
mov rbx, rcx
mov r8, qword [rcx + 0x18]
mov rcx, rdx
lea rax, [rdx + 1]
add rax, r8
cmp rdx, rax
je 0x140021fa1
movdqa xmm3, xmmword [0x14008daa0]
xorps xmm2, xmm2
movdqa xmm4, xmmword [0x14008dac0]
nop dword [rax + rax]
movdqu xmm0, xmmword [rcx]
movdqa xmm1, xmm2
pcmpgtb xmm1, xmm0
pandn xmm1, xmm3
por xmm1, xmm4
movdqu xmmword [rcx], xmm1
add rcx, 0x10
cmp rcx, rax
jne 0x140021f80
movups xmm0, xmmword [rdx]
xor edi, edi
movups xmmword [rax], xmm0
mov byte [r8 + rdx], 0xff
mov rcx, qword [rbx + 0x18]
test rcx, rcx
je 0x140022239
mov qword [rsp + 0xc8], rbp
movabs rdx, 0xcbf29ce484222325
mov qword [rsp + 0xd0], rsi
lea rbp, [rdi - 0x10]
mov qword [rsp + 0xd8], r12
xor esi, esi
mov qword [rsp + 0xa0], r13
lea r12, [0x14006d430]
mov qword [rsp + 0x98], r14
movabs r13, 0x100000001b3
mov qword [rsp + 0x90], r15
movabs r11, 0xde5fb9d2630458e9
nop word [rax + rax]
mov r10, qword [rbx]
cmp byte [r10 + rdi], 0xfe
lea r14, [r10 + rdi]
jne 0x1400221f2
mov rcx, qword [rbx + 8]
add rcx, rsi
mov rax, rcx
cmp qword [rcx + 0x18], 8
jb 0x140022046
mov rax, qword [rcx]
mov rcx, qword [rcx + 0x10]
mov r8, rdx
lea r9, [rax + rcx*2]
cmp rax, r9
je 0x140022078
nop word [rax + rax]
movsx rcx, byte [rax]
inc rax
movsx rdx, byte [rcx + r12]
xor r8, rdx
imul r8, r13
cmp rax, r9
jne 0x140022060
movdqa xmm2, xmmword [0x14008dad0]
mov rax, r11
mov r11, qword [rbx + 0x18]
movdqa xmm1, xmm2
mul r8
xor ecx, ecx
lea r8, [rax + rdx]
mov r15, r8
shr r15, 7
and r15, r11
mov rdx, r15
movdqu xmm0, xmmword [r10 + r15]
pcmpgtb xmm1, xmm0
pmovmskb eax, xmm1
test eax, eax
jne 0x1400220e0
nop dword [rax]
nop word [rax + rax]
add rcx, 0x10
movdqa xmm1, xmm2
add rdx, rcx
and rdx, r11
movdqu xmm0, xmmword [r10 + rdx]
pcmpgtb xmm1, xmm0
pmovmskb eax, xmm1
test eax, eax
je 0x1400220c0
bsf r9d, eax
mov rax, rdi
mov dword [rsp + 0x20], 0
add r9, rdx
sub rax, r15
and r9, r11
and r8b, 0x7f
mov rcx, r9
sub rcx, r15
xor rcx, rax
and rcx, r11
test rcx, 0xfffffffffffffff0
jne 0x140022131
mov byte [r14], r8b
mov rcx, rbp
mov rax, qword [rbx + 0x18]
and rcx, rax
and eax, 0xf
add rcx, rax
mov rax, qword [rbx]
mov byte [rcx + rax + 1], r8b
jmp 0x1400221de
lea rax, [r10 + r9]
lea r14, [r9 + r9*2]
shl r14, 5
lea rcx, [r9 - 0x10]
cmp byte [rax], 0x80
mov byte [rax], r8b
mov rax, qword [rbx + 0x18]
jne 0x140022190
and rcx, rax
and eax, 0xf
add rcx, rax
mov rax, qword [rbx]
mov byte [rcx + rax + 1], r8b
mov rax, qword [rbx + 8]
lea r8, [rax + rsi]
lea rdx, [rax + r14]
call fcn.140022840
mov rax, qword [rbx]
mov byte [rdi + rax], 0x80
mov rax, qword [rbx + 0x18]
mov rcx, rax
and eax, 0xf
and rcx, rbp
add rcx, rax
mov rax, qword [rbx]
mov byte [rcx + rax + 1], 0x80
jmp 0x1400221de
and rcx, rax
lea rdx, [rsp + 0x28]
and eax, 0xf
add rcx, rax
mov rax, qword [rbx]
mov byte [rcx + rax + 1], r8b
mov r8, qword [rbx + 8]
add r8, rsi
call fcn.140022840
mov rax, qword [rbx + 8]
lea r8, [rax + r14]
lea rdx, [rax + rsi]
call fcn.140022840
mov rdx, qword [rbx + 8]
lea r8, [rsp + 0x28]
add rdx, r14
call fcn.140022840
dec rdi
sub rsi, 0x60
dec rbp
movabs rdx, 0xcbf29ce484222325
movabs r11, 0xde5fb9d2630458e9
mov rcx, qword [rbx + 0x18]
inc rdi
add rsi, 0x60
inc rbp
cmp rdi, rcx
jne 0x140022020
mov r15, qword [rsp + 0x90]
mov r14, qword [rsp + 0x98]
mov r13, qword [rsp + 0xa0]
mov r12, qword [rsp + 0xd8]
mov rsi, qword [rsp + 0xd0]
mov rbp, qword [rsp + 0xc8]
mov rax, rcx
shr rcx, 3
sub rax, qword [rbx + 0x10]
sub rax, rcx
mov qword [rbx + 0x30], rax
mov rcx, qword [rsp + 0x88]
xor rcx, rsp
call fcn.14003ac10
add rsp, 0xa8
pop rdi
pop rbx
ret