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

Disassembly:
push rbx
push rdi
sub rsp, 0xb8
mov rax, qword [0x140098080]
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 0x140022c7f
movdqa xmm3, xmmword [0x14008ead0]
xorps xmm2, xmm2
movdqa xmm4, xmmword [0x14008eaf0]
nop dword [rax + rax]
movdqu xmm0, xmmword [rcx]
movdqa xmm1, xmm2
pcmpgtb xmm1, xmm0
andnps xmm1, xmm3
orps xmm1, xmm4
movdqu xmmword [rcx], xmm1
add rcx, 0x10
cmp rcx, rax
jne 0x140022c60
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 0x140022f21
mov qword [rsp + 0xd8], rbp
movabs rdx, 0xcbf29ce484222325
mov qword [rsp + 0xe0], rsi
mov rbp, 0xfffffffffffffff0
mov qword [rsp + 0xe8], r12
movabs r11, 0xde5fb9d2630458e9
mov qword [rsp + 0xb0], r13
lea r12, [0x14006e360]
mov qword [rsp + 0xa8], r14
movabs r13, 0x100000001b3
movaps xmmword [rsp + 0x90], xmm6
xor r14d, r14d
movdqa xmm6, xmmword [0x14008eb00]
mov qword [rsp + 0xa0], r15
nop dword [rax + rax]
mov r10, qword [rbx]
cmp byte [r10 + rdi], 0xfe
lea rsi, [r10 + rdi]
jne 0x140022ed2
mov rcx, qword [rbx + 8]
add rcx, r14
mov rax, rcx
cmp qword [rcx + 0x18], 7
jbe 0x140022d36
mov rax, qword [rcx]
mov rcx, qword [rcx + 0x10]
mov r8, rdx
lea r9, [rax + rcx*2]
cmp rax, r9
je 0x140022d68
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 0x140022d50
mov rax, r11
movdqa xmm1, xmm6
mov r11, qword [rbx + 0x18]
xor ecx, ecx
mul r8
lea r9, [rdx + rax]
mov r15, r9
shr r15, 7
and r15, r11
mov rdx, r15
movdqu xmm0, xmmword [r10 + r15]
pcmpgtb xmm1, xmm0
pmovmskb eax, xmm1
test eax, eax
jne 0x140022dc0
nop dword [rax + rax]
add rcx, 0x10
movdqa xmm1, xmm6
add rdx, rcx
and rdx, r11
movdqu xmm0, xmmword [r10 + rdx]
pcmpgtb xmm1, xmm0
pmovmskb eax, xmm1
test eax, eax
je 0x140022da0
bsf r8d, eax
mov rax, rdi
mov dword [rsp + 0x20], 0
add r8, rdx
sub rax, r15
and r8, r11
and r9b, 0x7f
mov rcx, r8
sub rcx, r15
xor rcx, rax
and rcx, r11
test rcx, 0xfffffffffffffff0
jne 0x140022e11
mov byte [rsi], r9b
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], r9b
jmp 0x140022ebe
lea rax, [r10 + r8]
lea rsi, [r8 + r8*2]
shl rsi, 5
lea rcx, [r8 - 0x10]
cmp byte [rax], 0x80
mov byte [rax], r9b
mov rax, qword [rbx + 0x18]
jne 0x140022e70
and rcx, rax
and eax, 0xf
add rcx, rax
mov rax, qword [rbx]
mov byte [rcx + rax + 1], r9b
mov rax, qword [rbx + 8]
lea r8, [r14 + rax]
lea rdx, [rsi + rax]
call fcn.140024b90
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 0x140022ebe
and rcx, rax
lea rdx, [rsp + 0x28]
and eax, 0xf
add rcx, rax
mov rax, qword [rbx]
mov byte [rcx + rax + 1], r9b
mov r8, qword [rbx + 8]
add r8, r14
call fcn.140024b90
mov rax, qword [rbx + 8]
lea r8, [rsi + rax]
lea rdx, [r14 + rax]
call fcn.140024b90
mov rdx, qword [rbx + 8]
lea r8, [rsp + 0x28]
add rdx, rsi
call fcn.140024b90
dec rdi
sub r14, 0x60
dec rbp
movabs rdx, 0xcbf29ce484222325
movabs r11, 0xde5fb9d2630458e9
mov rcx, qword [rbx + 0x18]
inc rdi
add r14, 0x60
inc rbp
cmp rdi, rcx
jne 0x140022d10
movaps xmm6, xmmword [rsp + 0x90]
mov r15, qword [rsp + 0xa0]
mov r14, qword [rsp + 0xa8]
mov r13, qword [rsp + 0xb0]
mov r12, qword [rsp + 0xe8]
mov rsi, qword [rsp + 0xe0]
mov rbp, qword [rsp + 0xd8]
mov rax, rcx
shr rcx, 3
sub rax, qword [rbx + 0x10]
sub rax, rcx
mov qword [rbx + 0x28], rax
mov rcx, qword [rsp + 0x88]
xor rcx, rsp
call fcn.14003bb30
add rsp, 0xb8
pop rdi
pop rbx
ret