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

Disassembly:
push rsi
push rdi
sub rsp, 0x78
mov rsi, r8
cmp rcx, 2
jne 0x41bb63
movdqa xmm0, xmmword [rdx]
movq rax, xmm0
movabs rcx, 0x736f6d6570736575
xor rcx, rax
movdqa xmm1, xmm0
paddq xmm1, xmm0
pshufd xmm2, xmm1, 0xee
pand xmm1, xmmword [0x00503030]
movdqa xmm3, xmm0
psubq xmm3, xmm1
paddq xmm3, xmmword [str.arenegylmodnarod]
movq rax, xmm2
movabs rdx, 0xe8cac8c4f2e8cae6
and rdx, rax
pshufd xmm1, xmm0, 0xee
movq rax, xmm1
sub rax, rdx
movabs rdx, 0x7465646279746573
add rdx, rax
mov qword [rsp + 0x30], rcx
movdqu xmmword [rsp + 0x38], xmm3
mov qword [rsp + 0x48], rdx
movdqu xmmword [rsp + 0x50], xmm0
pxor xmm0, xmm0
movdqu xmmword [rsp + 0x60], xmm0
mov qword [rsp + 0x70], 0
mov rdi, qword [rsi + 0x18]
xor eax, eax
test rdi, rdi
setne al
mov qword [rsp + 0x28], rax
lea rcx, [rsp + 0x30]
lea rdx, [rsp + 0x28]
mov r8d, 8
call fcn.0040f9a0
test rdi, rdi
je 0x41bbe6
mov rdx, qword [rsi]
mov r8, qword [rsi + 8]
lea rcx, [rsp + 0x30]
jmp 0x41bbfe
mov rdx, qword [rsi + 0x18]
xor ecx, ecx
test rdx, rdx
setne cl
movabs rax, 0xcbf29ce484222325
xor rax, rcx
movabs rcx, 0x1efac7090aef4a21
imul rax, rcx
test rdx, rdx
je 0x41bd05
mov r9, qword [rsi + 8]
test r9, r9
je 0x41bd88
mov rcx, qword [rsi]
movabs rdx, 0x100000001b3
mov r8, r9
and r8, 7
je 0x41bd14
xor r10d, r10d
nop dword [rax]
movzx r11d, byte [rcx + r10]
xor rax, r11
imul rax, rdx
inc r10
cmp r8, r10
jne 0x41bbc0
add r8, rcx
cmp r9, 8
jae 0x41bd1d
jmp 0x41bd88
movzx eax, byte [rsi]
mov qword [rsp + 0x28], rax
lea rcx, [rsp + 0x30]
lea rdx, [rsp + 0x28]
mov r8d, 8
call fcn.0040f9a0
mov rcx, qword [rsp + 0x40]
mov r9, qword [rsp + 0x60]
shl r9, 0x38
or r9, qword [rsp + 0x68]
mov r10, qword [rsp + 0x48]
xor r10, r9
mov rax, qword [rsp + 0x30]
add rax, rcx
rol rcx, 0xd
xor rcx, rax
rol rax, 0x20
mov rdx, qword [rsp + 0x38]
add rdx, r10
rol r10, 0x10
mov r11, rdx
and r11, r10
add r11, r11
mov r8, rdx
sub r8, r11
add r8, r10
add rax, r8
rol r8, 0x15
add rdx, rcx
rol rcx, 0x11
xor r8, rax
xor rcx, rdx
rol rdx, 0x20
xor rax, r9
add rax, rcx
rol rcx, 0xd
xor rcx, rax
rol rax, 0x20
xor rdx, 0xff
add rdx, r8
rol r8, 0x10
xor r8, rdx
add rax, r8
rol r8, 0x15
add rdx, rcx
rol rcx, 0x11
xor rcx, rdx
rol rdx, 0x20
xor r8, rax
add rax, rcx
rol rcx, 0xd
xor rcx, rax
rol rax, 0x20
add rdx, r8
rol r8, 0x10
xor r8, rdx
add rax, r8
rol r8, 0x15
add rdx, rcx
rol rcx, 0x11
xor rcx, rdx
rol rdx, 0x20
xor r8, rax
add rax, rcx
rol rcx, 0xd
xor rcx, rax
add rdx, r8
shl r8, 0x10
xor r8, rdx
shr r8, 0x2b
add rdx, rcx
shr rcx, 0x2f
xor rcx, r8
mov rax, rdx
shr rax, 0x20
xor rax, rdx
xor rax, rcx
jmp 0x41bd88
movzx edx, byte [rsi]
xor rax, rdx
imul rax, rcx
jmp 0x41bd88
mov r8, rcx
cmp r9, 8
jb 0x41bd88
add rcx, r9
movzx r9d, byte [r8]
xor r9, rax
imul r9, rdx
movzx eax, byte [r8 + 1]
xor rax, r9
imul rax, rdx
movzx r9d, byte [r8 + 2]
xor r9, rax
imul r9, rdx
movzx eax, byte [r8 + 3]
xor rax, r9
imul rax, rdx
movzx r9d, byte [r8 + 4]
xor r9, rax
imul r9, rdx
movzx eax, byte [r8 + 5]
xor rax, r9
imul rax, rdx
movzx r9d, byte [r8 + 6]
xor r9, rax
imul r9, rdx
movzx eax, byte [r8 + 7]
add r8, 8
xor rax, r9
imul rax, rdx
cmp r8, rcx
jne 0x41bd20
and eax, 0x7fff
add rsp, 0x78
pop rdi
pop rsi
ret