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

Disassembly:
push rsi
push rdi
sub rsp, 0x78
mov rsi, r8
cmp rcx, 2
jne 0x423445
movdqa xmm0, xmmword [rdx]
pshufd xmm1, xmm0, 0xee
movq rax, xmm1
movabs rcx, 0x646f72616e646f6d
xor rcx, rax
lea rdx, [rax + rax]
movabs r8, 0xe8cac8c4f2e8cae6
and r8, rdx
sub rax, r8
movabs rdx, 0x7465646279746573
add rdx, rax
pshufd xmm1, xmm0, 0x44
pxor xmm1, xmmword [str.uespemosarenegyl]
movdqa xmmword [rsp + 0x30], xmm1
mov qword [rsp + 0x40], rcx
mov qword [rsp + 0x48], rdx
movdqa xmmword [rsp + 0x50], xmm0
pxor xmm0, xmm0
movdqa 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.0041ed20
test rdi, rdi
je 0x423595
mov rdx, qword [rsi]
mov r8, qword [rsi + 8]
lea rcx, [rsp + 0x30]
jmp 0x4235ad
mov rax, qword [rsi + 0x18]
xor ecx, ecx
test rax, rax
setne cl
movabs rdx, 0x3e721b37df99884c
movabs r8, 0x727f7e535b776648
cmovne r8, rdx
xor rcx, 0x121
movabs r9, 0xcbf29de4842223b7
imul r9, rcx
add r9, r8
movabs rcx, 0x100000001b3
mov r8, r9
or r8, rcx
mov r10, r9
and r10, rcx
imul r8, r10
movabs rdx, 0xfffffefffffffe4c
and r9, rdx
xor r10, rcx
imul r10, r9
add r10, r8
mov r8, r10
or r8, rcx
mov r9, r10
and r9, rcx
imul r8, r9
and r10, rdx
xor r9, rcx
imul r9, r10
add r9, r8
mov r8, r9
or r8, rcx
mov r10, r9
and r10, rcx
imul r8, r10
and r9, rdx
xor r10, rcx
imul r10, r9
add r10, r8
mov r8, r10
or r8, rcx
mov r9, r10
and r9, rcx
imul r8, r9
and r10, rdx
xor r9, rcx
imul r9, r10
add r9, r8
mov r8, r9
or r8, rcx
mov r10, r9
and r10, rcx
imul r8, r10
and r9, rdx
xor r10, rcx
imul r10, r9
add r10, r8
mov r8, r10
or r8, rcx
mov r9, r10
and r9, rcx
imul r8, r9
and r10, rdx
xor r9, rcx
imul r9, r10
add r9, r8
mov r8, r9
or r8, rcx
mov r10, r9
and r10, rcx
imul r8, r10
and r9, rdx
xor r10, rcx
imul r10, r9
add r10, r8
test rax, rax
je 0x423700
mov r11, qword [rsi + 8]
test r11, r11
je 0x4237f3
mov r8, qword [rsi]
test r11b, 1
jne 0x4237fb
mov r9, r8
cmp r11, 1
jne 0x42382c
jmp 0x423892
movzx eax, byte [rsi]
mov qword [rsp + 0x28], rax
lea rcx, [rsp + 0x30]
lea rdx, [rsp + 0x28]
mov r8d, 8
call fcn.0041ed20
mov rcx, qword [rsp + 0x40]
mov r8, qword [rsp + 0x60]
shl r8, 0x38
or r8, qword [rsp + 0x68]
mov r10, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x30]
add rdx, rcx
rol rcx, 0xd
xor r10, r8
xor rcx, rdx
rol rdx, 0x20
mov r9, qword [rsp + 0x38]
add r9, r10
rol r10, 0x10
mov r11, r9
and r11, r10
add r11, r11
mov rax, r9
sub rax, r11
add rax, r10
add rdx, rax
rol rax, 0x15
mov r10, rax
and r10, rdx
add rax, rdx
add r10, r10
sub rax, r10
mov r10, r9
and r10, rcx
xor r9, rcx
rol rcx, 0x11
lea r9, [r9 + r10*2]
xor rcx, r9
rol r9, 0x20
xor rdx, r8
add rdx, rcx
rol rcx, 0xd
xor r9, 0xff
xor rcx, rdx
rol rdx, 0x20
mov r8, rax
and r8, r9
xor r9, rax
lea r8, [r9 + r8*2]
rol rax, 0x10
xor rax, r8
add rdx, rax
rol rax, 0x15
xor rax, rdx
add r8, rcx
rol rcx, 0x11
mov r9, r8
and r9, rcx
add rcx, r8
add r9, r9
rol r8, 0x20
sub rcx, r9
add rdx, rcx
rol rcx, 0xd
xor rcx, rdx
rol rdx, 0x20
add r8, rax
rol rax, 0x10
xor rax, r8
add rdx, rax
rol rax, 0x15
mov r9, rdx
and r9, rax
add r8, rcx
rol rcx, 0x11
add rax, rdx
xor rcx, r8
rol r8, 0x20
add r9, r9
add rdx, rcx
rol rcx, 0xd
sub rax, r9
xor rcx, rdx
shr rdx, 0x20
add r8, rax
rol rax, 0x10
xor rax, r8
add rdx, rax
shr rax, 0x2b
add r8, rcx
shr rcx, 0x2f
xor rcx, r8
shr r8, 0x20
xor rcx, rdx
lea r9, [rcx + r8]
and r8d, ecx
add r8, r8
sub r9, r8
xor rax, rdx
xor rax, r9
jmp 0x423892
movzx eax, byte [rsi]
xor r10, rax
mov rax, r10
or rax, rcx
mov r8, r10
and r8, rcx
imul rax, r8
and r10, rdx
xor r8, rcx
imul r8, r10
add r8, rax
mov rax, r8
or rax, rcx
mov r9, r8
and r9, rcx
imul rax, r9
and r8, rdx
xor r9, rcx
imul r9, r8
add r9, rax
mov rax, r9
or rax, rcx
mov r8, r9
and r8, rcx
imul rax, r8
and r9, rdx
xor r8, rcx
imul r8, r9
add r8, rax
mov rax, r8
or rax, rcx
mov r9, r8
and r9, rcx
imul rax, r9
and r8, rdx
xor r9, rcx
imul r9, r8
add r9, rax
mov rax, r9
or rax, rcx
mov r8, r9
and r8, rcx
imul rax, r8
and r9, rdx
xor r8, rcx
imul r8, r9
add r8, rax
mov rax, r8
or rax, rcx
mov r9, r8
and r9, rcx
imul rax, r9
and r8, rdx
xor r9, rcx
imul r9, r8
add r9, rax
mov rax, r9
or rax, rcx
mov r8, r9
and r8, rcx
imul rax, r8
and r9, rdx
xor r8, rcx
imul r8, r9
add r8, rax
mov r9, r8
or r9, rcx
mov rax, r8
and rax, rcx
imul r9, rax
and r8, rdx
xor rax, rcx
imul rax, r8
add rax, r9
jmp 0x423892
mov rax, r10
jmp 0x423892
lea r9, [r8 + 1]
movzx eax, byte [r8]
xor r10, rax
mov rsi, r10
or rsi, rcx
mov rax, r10
and rax, rcx
imul rsi, rax
and r10, rdx
xor rax, rcx
imul rax, r10
add rax, rsi
mov r10, rax
cmp r11, 1
je 0x423892
add r8, r11
mov rax, r10
nop word cs:[rax + rax]
movzx r10d, byte [r9]
xor r10, rax
mov rax, r10
or rax, rcx
mov r11, r10
and r11, rcx
imul rax, r11
and r10, rdx
xor r11, rcx
imul r11, r10
add r11, rax
movzx r10d, byte [r9 + 1]
xor r10, r11
mov r11, r10
or r11, rcx
mov rax, r10
and rax, rcx
imul r11, rax
and r10, rdx
xor rax, rcx
imul rax, r10
add rax, r11
add r9, 2
cmp r9, r8
jne 0x423840
and eax, 0x7fff
add rsp, 0x78
pop rdi
pop rsi
ret