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

Disassembly:
push rsi
push rdi
sub rsp, 0x78
mov rsi, r9
cmp rcx, 2
jne 0x14001f2d7
movq xmm0, rdx
pshufd xmm0, xmm0, 0x44
pxor xmm0, xmmword [str.uespemosarenegylmodnarodsetybdet]
movq xmm1, r8
pshufd xmm1, xmm1, 0x44
pxor xmm1, xmmword [0x1402209e0]
mov qword [rsp + 0x30], rdx
mov qword [rsp + 0x38], r8
mov qword [rsp + 0x40], 0
movdqu xmmword [rsp + 0x48], xmm0
movdqu xmmword [rsp + 0x58], xmm1
pxor xmm0, xmm0
movdqu xmmword [rsp + 0x68], xmm0
cmp byte [rsi], 1
jne 0x14001f3a6
mov qword [rsp + 0x28], 1
lea rdi, [rsp + 0x30]
lea rdx, [rsp + 0x28]
mov r8d, 8
mov rcx, rdi
call fcn.1400069e0
mov rdx, qword [rsi + 8]
mov r8, qword [rsi + 0x10]
jmp 0x14001f3db
cmp byte [rsi], 1
jne 0x14001f4d3
movabs rcx, 0x100000001b3
mov qword [rsp + 0x30], 1
movzx eax, byte [rsp + 0x31]
movabs rdx, 0xaf63bc4c8601b62c
xor rdx, rax
imul rdx, rcx
movzx eax, byte [rsp + 0x32]
xor rax, rdx
imul rax, rcx
movzx edx, byte [rsp + 0x33]
xor rdx, rax
imul rdx, rcx
movzx eax, byte [rsp + 0x34]
xor rax, rdx
imul rax, rcx
movzx edx, byte [rsp + 0x35]
xor rdx, rax
imul rdx, rcx
movzx edi, byte [rsp + 0x36]
xor rdi, rdx
imul rdi, rcx
movzx eax, byte [rsp + 0x37]
xor rax, rdi
imul rax, rcx
mov r8, qword [rsi + 0x10]
test r8, r8
je 0x14001f620
mov r10, qword [rsi + 8]
lea r9, [r8 - 1]
mov rsi, r8
and rsi, 7
je 0x14001f5aa
mov rdi, rax
mov rdx, r10
nop dword [rax]
movzx eax, byte [rdx]
add rdx, 1
xor rax, rdi
imul rax, rcx
mov rdi, rax
add rsi, 0xffffffffffffffff
jne 0x14001f380
cmp r9, 7
jae 0x14001f5b3
jmp 0x14001f620
mov qword [rsp + 0x28], 0
lea rdi, [rsp + 0x30]
lea rdx, [rsp + 0x28]
mov r8d, 8
mov rcx, rdi
call fcn.1400069e0
movzx eax, byte [rsi + 1]
mov qword [rsp + 0x28], rax
lea rdx, [rsp + 0x28]
mov r8d, 8
mov rcx, rdi
call fcn.1400069e0
mov rsi, qword [rsp + 0x40]
mov rax, qword [rsp + 0x58]
shl rsi, 0x38
or rsi, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x48]
add rdi, rax
rol rax, 0xd
xor rcx, rsi
xor rax, rdi
rol rdi, 0x20
mov rdx, qword [rsp + 0x50]
add rdx, rcx
rol rcx, 0x10
xor rcx, rdx
add rdi, rcx
rol rcx, 0x15
add rdx, rax
rol rax, 0x11
xor rcx, rdi
xor rax, rdx
rol rdx, 0x20
xor rdi, rsi
add rdi, rax
rol rax, 0xd
xor rax, rdi
rol rdi, 0x20
xor rdx, 0xff
add rdx, rcx
rol rcx, 0x10
xor rcx, rdx
add rdi, rcx
rol rcx, 0x15
add rdx, rax
rol rax, 0x11
xor rax, rdx
rol rdx, 0x20
xor rcx, rdi
add rdi, rax
rol rax, 0xd
xor rax, rdi
rol rdi, 0x20
add rdx, rcx
rol rcx, 0x10
xor rcx, rdx
add rdi, rcx
rol rcx, 0x15
add rdx, rax
rol rax, 0x11
xor rax, rdx
rol rdx, 0x20
xor rcx, rdi
add rdi, rax
rol rax, 0xd
xor rax, rdi
add rdx, rcx
shl rcx, 0x10
xor rcx, rdx
shr rcx, 0x2b
add rdx, rax
shr rax, 0x2f
xor rax, rdx
shr rdx, 0x20
xor rax, rcx
xor rax, rdx
jmp 0x14001f620
mov qword [rsp + 0x30], 0
movzx eax, byte [rsp + 0x31]
movabs rdx, 0xaf63bd4c8601b7df
xor rdx, rax
movabs rcx, 0x100000001b3
imul rdx, rcx
movzx eax, byte [rsp + 0x32]
xor rax, rdx
imul rax, rcx
movzx edx, byte [rsp + 0x33]
xor rdx, rax
imul rdx, rcx
movzx eax, byte [rsp + 0x34]
xor rax, rdx
imul rax, rcx
movzx edx, byte [rsp + 0x35]
xor rdx, rax
imul rdx, rcx
movzx eax, byte [rsp + 0x36]
xor rax, rdx
imul rax, rcx
movzx edx, byte [rsp + 0x37]
xor rdx, rax
imul rdx, rcx
movzx eax, byte [rsi + 1]
mov qword [rsp + 0x30], rax
xor rdx, rax
imul rdx, rcx
movzx eax, byte [rsp + 0x31]
xor rax, rdx
imul rax, rcx
movzx edx, byte [rsp + 0x32]
xor rdx, rax
imul rdx, rcx
movzx eax, byte [rsp + 0x33]
xor rax, rdx
imul rax, rcx
movzx edx, byte [rsp + 0x34]
xor rdx, rax
imul rdx, rcx
movzx eax, byte [rsp + 0x35]
xor rax, rdx
imul rax, rcx
movzx edx, byte [rsp + 0x36]
xor rdx, rax
imul rdx, rcx
movzx eax, byte [rsp + 0x37]
xor rax, rdx
imul rax, rcx
jmp 0x14001f620
mov rdx, r10
cmp r9, 7
jb 0x14001f620
add r10, r8
nop word cs:[rax + rax]
movzx edi, byte [rdx]
xor rdi, rax
imul rdi, rcx
movzx eax, byte [rdx + 1]
xor rax, rdi
imul rax, rcx
movzx edi, byte [rdx + 2]
xor rdi, rax
imul rdi, rcx
movzx eax, byte [rdx + 3]
xor rax, rdi
imul rax, rcx
movzx edi, byte [rdx + 4]
xor rdi, rax
imul rdi, rcx
movzx eax, byte [rdx + 5]
xor rax, rdi
imul rax, rcx
movzx edi, byte [rdx + 6]
xor rdi, rax
imul rdi, rcx
movzx eax, byte [rdx + 7]
xor rax, rdi
imul rax, rcx
add rdx, 8
cmp rdx, r10
jne 0x14001f5c0
and eax, 0x7fff
add rsp, 0x78
pop rdi
pop rsi
ret