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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x38
mov r12, r9
mov r15, rdx
mov r14, rcx
mov rax, qword [0x14009e010]
xor rax, rsp
mov qword [rsp + 0x30], rax
mov r10, qword [r8 + 0x10]
cmp qword [r8 + 0x18], 7
jbe 0x140012a16
mov r8, qword [r8]
movabs rdi, 0xcbf29ce484222325
mov rax, r10
add rax, r10
je 0x140012a4a
movabs rcx, 0x100000001b3
lea rdx, [r10 + r10]
add rdx, 0xffffffffffffffff
mov esi, eax
and esi, 6
cmp rdx, 7
jae 0x140012a52
mov rbp, r8
jmp 0x140012ac2
mov rdx, rdi
jmp 0x140012ae8
mov rdx, rsi
sub rdx, rax
mov rbp, r8
nop dword [rax + rax]
movzx eax, byte [rbp]
xor rax, rdi
imul rax, rcx
movzx ebx, byte [rbp + 1]
xor rbx, rax
imul rbx, rcx
movzx eax, byte [rbp + 2]
xor rax, rbx
imul rax, rcx
movzx ebx, byte [rbp + 3]
xor rbx, rax
imul rbx, rcx
movzx eax, byte [rbp + 4]
xor rax, rbx
imul rax, rcx
movzx ebx, byte [rbp + 5]
xor rbx, rax
imul rbx, rcx
movzx eax, byte [rbp + 6]
xor rax, rbx
imul rax, rcx
movzx edi, byte [rbp + 7]
xor rdi, rax
imul rdi, rcx
add rbp, 8
add rdx, 8
jne 0x140012a60
mov rdx, rdi
test rsi, rsi
je 0x140012ae8
xor ebx, ebx
nop dword [rax]
movzx edx, byte [rbp + rbx]
xor rdx, rdi
imul rdx, rcx
add rbx, 1
mov rdi, rdx
cmp rsi, rbx
jne 0x140012ad0
and rdx, qword [r14 + 0x30]
mov rdi, qword [r14 + 8]
mov rbp, qword [r14 + 0x18]
mov rax, rdx
shl rax, 4
lea r9, [rdx + rdx]
mov rdx, qword [rbp + rax]
mov rsi, rdi
cmp rdx, rdi
je 0x140012b20
lea rax, [r9*8]
or rax, 8
mov rax, qword [rbp + rax]
mov rsi, qword [rax]
cmp rdx, rsi
je 0x140012ba1
mov rsi, qword [rsi + 8]
cmp r10, qword [rsi + 0x20]
jne 0x140012b20
test r10, r10
je 0x140012b64
cmp qword [rsi + 0x28], 7
jbe 0x140012b41
mov rcx, qword [rsi + 0x10]
jmp 0x140012b45
lea rcx, [rsi + 0x10]
xor eax, eax
nop word [rax + rax]
movzx ebx, word [r8 + rax*2]
cmp bx, word [rcx + rax*2]
jne 0x140012b20
add rax, 1
cmp r10, rax
jne 0x140012b50
mov rax, qword [r12]
mov rcx, qword [r12 + 8]
mov qword [rcx], rax
mov rax, qword [r12]
mov rcx, qword [r12 + 8]
mov qword [rax + 8], rcx
add qword [r14 + 0x10], 0xffffffffffffffff
lea rcx, [r12 + 0x10]
call fcn.140007340
mov edx, 0x38
mov rcx, r12
call fcn.140064680
xor r13d, r13d
jmp 0x140012d71
mov rax, qword [r12]
cmp rax, rdx
je 0x140012be2
mov rcx, qword [r12 + 8]
mov qword [rcx], rax
mov rcx, qword [rax + 8]
mov qword [rcx], rdx
mov rcx, qword [rdx + 8]
mov qword [rcx], r12
mov rcx, qword [rdx + 8]
mov rbp, qword [rax + 8]
mov qword [rdx + 8], rbp
mov rbp, qword [r12 + 8]
mov qword [rax + 8], rbp
mov qword [r12 + 8], rcx
mov rdi, qword [r14 + 8]
mov rbp, qword [r14 + 0x18]
lea rax, [r9*8]
add rax, rbp
mov rbx, qword [rbp + r9*8]
cmp rbx, rdi
je 0x140012c27
mov rcx, r12
cmp rbx, rdx
je 0x140012c3c
or r9, 1
mov rax, qword [rbp + r9*8]
mov rax, qword [rax]
mov qword [rbp + r9*8], rax
cmp rax, r12
je 0x140012c3f
mov rcx, qword [r14 + 0x18]
lea rax, [rcx + r9*8]
mov rcx, qword [rcx + r9*8]
mov rcx, qword [rcx + 8]
jmp 0x140012c3c
mov qword [rax], r12
shl r9, 3
or r9, 8
add r9, qword [r14 + 0x18]
mov rax, r9
mov rcx, r12
mov qword [rax], rcx
mov rax, qword [r14 + 0x10]
mov rdi, qword [r14 + 0x38]
test rax, rax
js 0x140012c6f
cvtsi2ss xmm0, rax
test rdi, rdi
jns 0x140012c89
mov rax, rdi
shr rax, 1
mov ecx, edi
and ecx, 1
or rcx, rax
cvtsi2ss xmm1, rcx
addss xmm1, xmm1
jmp 0x140012c8e
mov rcx, rax
shr rcx, 1
and eax, 1
or rax, rcx
cvtsi2ss xmm0, rax
addss xmm0, xmm0
test rdi, rdi
js 0x140012c56
cvtsi2ss xmm1, rdi
divss xmm0, xmm1
mov r13b, 1
ucomiss xmm0, dword [r14]
jbe 0x140012d6e
mov rbx, r15
movabs rax, 0xfffffffffffffff
xor edx, edx
cmp rdi, rax
setb dl
cmp rdi, 0x200
mov ecx, 3
cmovae ecx, edx
shl rdi, cl
lea r15, [r14 + 0x18]
lea rsi, [rdi + rdi]
mov rax, qword [r14 + 0x28]
sub rax, qword [r14 + 0x18]
sar rax, 3
cmp rax, rsi
jae 0x140012cf7
mov rax, rsi
shr rax, 0x3d
jne 0x140012da1
mov rcx, r15
mov rdx, rsi
call fcn.1400126f0
mov rax, qword [r14 + 8]
mov qword [rsp + 0x20], rax
lea r8, [rsp + 0x20]
mov rcx, r15
mov rdx, rsi
call fcn.140012080
lea rax, [rdi - 1]
mov qword [r14 + 0x30], rax
mov qword [r14 + 0x38], rdi
mov rax, qword [r14 + 8]
mov rsi, qword [rax]
cmp rsi, rax
je 0x140012d99
mov rbp, qword [rax + 8]
lea r8, [rsi + 0x10]
lea rdx, [rsp + 0x20]
mov rcx, r14
mov r9, rsi
call fcn.1400129e0
cmp rbp, rsi
mov r15, rbx
je 0x140012d6e
lea rsi, [rsp + 0x20]
nop dword [rax]
mov rax, qword [r14 + 8]
mov rdi, qword [rax]
lea r8, [rdi + 0x10]
mov rcx, r14
mov rdx, rsi
mov r9, rdi
call fcn.1400129e0
cmp rbp, rdi
jne 0x140012d50
mov rsi, r12
mov qword [r15], rsi
mov byte [r15 + 8], r13b
mov rcx, qword [rsp + 0x30]
xor rcx, rsp
call fcn.140065710
mov rax, r15
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rsi, r12
mov r15, rbx
jmp 0x140012d71
call fcn.140007c20
ud2