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

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0xa8
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x20], 0xfffffffffffffffe
mov rdi, r8
mov qword [rbp + 0x18], rdx
mov rsi, rcx
test r8, r8
je 0x140089f4a
mov eax, edi
and eax, 7
movabs rcx, 0x100000001b3
cmp rdi, 8
jae 0x140089f59
movabs r11, 0xcbf29ce484222325
mov rdx, qword [rbp + 0x18]
jmp 0x140089fd9
movabs r12, 0xcbf29ce484222325
jmp 0x14008a007
mov r8, rdi
and r8, 0xfffffffffffffff8
movabs r11, 0xcbf29ce484222325
mov rdx, qword [rbp + 0x18]
nop
movzx r10d, byte [rdx]
xor r10, r11
imul r10, rcx
movzx r11d, byte [rdx + 1]
xor r11, r10
imul r11, rcx
movzx r10d, byte [rdx + 2]
xor r10, r11
imul r10, rcx
movzx r11d, byte [rdx + 3]
xor r11, r10
imul r11, rcx
movzx r10d, byte [rdx + 4]
xor r10, r11
imul r10, rcx
movzx r11d, byte [rdx + 5]
xor r11, r10
imul r11, rcx
movzx r10d, byte [rdx + 6]
xor r10, r11
imul r10, rcx
movzx r11d, byte [rdx + 7]
add rdx, 8
xor r11, r10
imul r11, rcx
add r8, 0xfffffffffffffff8
jne 0x140089f70
mov r12, r11
test rax, rax
je 0x14008a007
xor r8d, r8d
nop word cs:[rax + rax]
movzx r12d, byte [rdx + r8]
xor r12, r11
imul r12, rcx
inc r8
mov r11, r12
cmp rax, r8
jne 0x140089ff0
mov r14, qword [rsi + 0x10]
test r14, r14
je 0x14008a0ef
mov qword [rbp + 8], r9
mov qword [rbp + 0x10], rsi
mov r13, qword [rsi]
xor r15d, r15d
mov rbx, r13
jmp 0x14008a047
mov rax, qword [rbx + 0x58]
test rax, rax
je 0x14008a12d
imul rbx, rax, 0x68
add rbx, r13
mov r15, rax
mov rsi, qword [rbx + 0x50]
cmp r12, rsi
jne 0x14008a06e
cmp qword [rbx + 0x40], rdi
jne 0x14008a06e
mov rdx, qword [rbx + 0x48]
mov rcx, qword [rbp + 0x18]
mov r8, rdi
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
je 0x14008a24e
cmp r12, rsi
jb 0x14008a030
mov rax, qword [rbx + 0x60]
test rax, rax
jne 0x14008a03d
mov rcx, qword [rbp + 0x10]
mov rax, qword [rcx + 8]
cmp r14, rax
jae 0x14008a278
lea rax, [r14 + 1]
mov qword [rcx + 0x10], rax
imul rsi, r14, 0x68
mov rax, qword [rbp + 8]
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movups xmmword [r13 + rsi + 0x10], xmm1
movups xmmword [r13 + rsi], xmm0
xorps xmm0, xmm0
movups xmmword [r13 + rsi + 0x30], xmm0
movups xmmword [r13 + rsi + 0x20], xmm0
mov qword [r13 + rsi + 0x40], rdi
mov qword [r13 + rsi + 0x48], 0
mov qword [r13 + rsi + 0x50], r12
movups xmmword [r13 + rsi + 0x58], xmm0
cmp rdi, 0x21
jae 0x14008a428
lea r12, [rsi + r13]
add r12, 0x20
jmp 0x14008a451
movups xmm0, xmmword [r9]
movups xmm1, xmmword [r9 + 0x10]
movaps xmmword [rbp - 0x50], xmm1
movaps xmmword [rbp - 0x60], xmm0
xorps xmm0, xmm0
movaps xmmword [rbp - 0x30], xmm0
movaps xmmword [rbp - 0x40], xmm0
mov qword [rbp - 0x20], rdi
mov qword [rbp - 0x18], 0
mov qword [rbp - 0x10], r12
movups xmmword [rbp - 8], xmm0
cmp qword [rsi + 8], 0
je 0x14008a1a0
xor eax, eax
jmp 0x14008a1ae
mov rcx, qword [rbp + 0x10]
mov rax, qword [rcx + 8]
cmp r14, rax
jae 0x14008a340
lea rax, [r14 + 1]
mov qword [rcx + 0x10], rax
imul rsi, r14, 0x68
mov rax, qword [rbp + 8]
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movups xmmword [r13 + rsi + 0x10], xmm1
movups xmmword [r13 + rsi], xmm0
xorps xmm0, xmm0
movups xmmword [r13 + rsi + 0x30], xmm0
movups xmmword [r13 + rsi + 0x20], xmm0
mov qword [r13 + rsi + 0x40], rdi
mov qword [r13 + rsi + 0x48], 0
mov qword [r13 + rsi + 0x50], r12
movups xmmword [r13 + rsi + 0x58], xmm0
cmp rdi, 0x21
jae 0x14008a484
lea r12, [rsi + r13]
add r12, 0x20
jmp 0x14008a4ad
mov rcx, rsi
xor edx, edx
call fcn.14003ddf0
mov rax, qword [rsi + 0x10]
mov rcx, qword [rsi]
imul rax, rax, 0x68
mov rdx, qword [rbp]
mov qword [rcx + rax + 0x60], rdx
movaps xmm0, xmmword [rbp - 0x10]
movups xmmword [rcx + rax + 0x50], xmm0
movaps xmm0, xmmword [rbp - 0x20]
movups xmmword [rcx + rax + 0x40], xmm0
movaps xmm0, xmmword [rbp - 0x60]
movaps xmm1, xmmword [rbp - 0x50]
movaps xmm2, xmmword [rbp - 0x40]
movaps xmm3, xmmword [rbp - 0x30]
movups xmmword [rcx + rax + 0x30], xmm3
movups xmmword [rcx + rax + 0x20], xmm2
movups xmmword [rcx + rax + 0x10], xmm1
movups xmmword [rcx + rax], xmm0
inc qword [rsi + 0x10]
je 0x14008a62f
mov r14, qword [rsi]
mov r8, qword [r14 + 0x40]
cmp r8, 0x21
jae 0x14008a21a
lea rsi, [r14 + 0x20]
mov rcx, rsi
mov rdx, qword [rbp + 0x18]
jmp 0x14008a417
test rdi, rdi
je 0x14008a408
js 0x14008a663
movzx eax, byte [0x1404ecfe1]
mov edx, 1
mov rcx, rdi
call fcn.140089c90
mov rsi, rax
test rax, rax
jne 0x14008a40d
jmp 0x14008a549
mov qword [rbp + 0x18], rbx
mov rcx, rbx
call fcn.140089d10
mov rax, qword [rbp + 8]
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
mov rax, qword [rbp + 0x18]
movups xmmword [rax + 0x10], xmm1
movups xmmword [rax], xmm0
mov r14, r15
jmp 0x14008a4de
mov rax, qword [rbp + 8]
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movaps xmmword [rbp - 0x50], xmm1
movaps xmmword [rbp - 0x60], xmm0
xorps xmm0, xmm0
movaps xmmword [rbp - 0x30], xmm0
movaps xmmword [rbp - 0x40], xmm0
mov qword [rbp - 0x20], rdi
mov qword [rbp - 0x18], 0
mov qword [rbp - 0x10], r12
movups xmmword [rbp - 8], xmm0
mov rax, r14
jne 0x14008a2c5
mov rsi, qword [rbp + 0x10]
mov rcx, rsi
mov rdx, r14
call fcn.14003ddf0
mov r13, qword [rsi]
mov rax, qword [rsi + 0x10]
imul rax, rax, 0x68
mov rcx, qword [rbp]
mov qword [r13 + rax + 0x60], rcx
movaps xmm0, xmmword [rbp - 0x10]
movups xmmword [r13 + rax + 0x50], xmm0
movaps xmm0, xmmword [rbp - 0x20]
movups xmmword [r13 + rax + 0x40], xmm0
movaps xmm0, xmmword [rbp - 0x60]
movaps xmm1, xmmword [rbp - 0x50]
movaps xmm2, xmmword [rbp - 0x40]
movaps xmm3, xmmword [rbp - 0x30]
movups xmmword [r13 + rax + 0x30], xmm3
movups xmmword [r13 + rax + 0x20], xmm2
movups xmmword [r13 + rax + 0x10], xmm1
movups xmmword [r13 + rax], xmm0
mov rax, qword [rbp + 0x10]
inc qword [rax + 0x10]
mov rsi, qword [rax]
imul r13, r14, 0x68
mov r8, qword [rsi + r13 + 0x40]
cmp r8, 0x21
jae 0x14008a4f5
lea r12, [rsi + r13]
add r12, 0x20
mov rcx, r12
mov rdx, qword [rbp + 0x18]
jmp 0x14008a568
mov rax, qword [rbp + 8]
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movaps xmmword [rbp - 0x50], xmm1
movaps xmmword [rbp - 0x60], xmm0
xorps xmm0, xmm0
movaps xmmword [rbp - 0x30], xmm0
movaps xmmword [rbp - 0x40], xmm0
mov qword [rbp - 0x20], rdi
mov qword [rbp - 0x18], 0
mov qword [rbp - 0x10], r12
movups xmmword [rbp - 8], xmm0
mov rax, r14
jne 0x14008a38d
mov rsi, qword [rbp + 0x10]
mov rcx, rsi
mov rdx, r14
call fcn.14003ddf0
mov r13, qword [rsi]
mov rax, qword [rsi + 0x10]
imul rax, rax, 0x68
mov rcx, qword [rbp]
mov qword [r13 + rax + 0x60], rcx
movaps xmm0, xmmword [rbp - 0x10]
movups xmmword [r13 + rax + 0x50], xmm0
movaps xmm0, xmmword [rbp - 0x20]
movups xmmword [r13 + rax + 0x40], xmm0
movaps xmm0, xmmword [rbp - 0x60]
movaps xmm1, xmmword [rbp - 0x50]
movaps xmm2, xmmword [rbp - 0x40]
movaps xmm3, xmmword [rbp - 0x30]
movups xmmword [r13 + rax + 0x30], xmm3
movups xmmword [r13 + rax + 0x20], xmm2
movups xmmword [r13 + rax + 0x10], xmm1
movups xmmword [r13 + rax], xmm0
mov rax, qword [rbp + 0x10]
inc qword [rax + 0x10]
mov rsi, qword [rax]
imul r13, r14, 0x68
mov r8, qword [rsi + r13 + 0x40]
cmp r8, 0x21
jae 0x14008a51e
lea r12, [rsi + r13]
add r12, 0x20
mov rcx, r12
mov rdx, qword [rbp + 0x18]
jmp 0x14008a5cf
mov esi, 1
mov rcx, rsi
mov rdx, qword [rbp + 0x18]
mov r8, rdi
call sub.VCRUNTIME140.dll_memcpy
mov qword [r14 + 0x48], rsi
xor r14d, r14d
jmp 0x14008a4de
test rdi, rdi
js 0x14008a663
movzx eax, byte [0x1404ecfe1]
mov edx, 1
mov rcx, rdi
call fcn.140089c90
test rax, rax
je 0x14008a549
mov r12, rax
mov rcx, r12
mov rdx, qword [rbp + 0x18]
mov r8, rdi
call sub.VCRUNTIME140.dll_memcpy
mov qword [r13 + rsi + 0x48], r12
mov rsi, qword [rbp + 0x10]
mov rdx, qword [rsi + 0x10]
cmp r15, rdx
jae 0x14008a641
mov rax, qword [rsi]
imul rcx, r15, 0x68
mov qword [rax + rcx + 0x60], r14
jmp 0x14008a4de
test rdi, rdi
js 0x14008a663
movzx eax, byte [0x1404ecfe1]
mov edx, 1
mov rcx, rdi
call fcn.140089c90
test rax, rax
je 0x14008a549
mov r12, rax
mov rcx, r12
mov rdx, qword [rbp + 0x18]
mov r8, rdi
call sub.VCRUNTIME140.dll_memcpy
mov qword [r13 + rsi + 0x48], r12
mov rsi, qword [rbp + 0x10]
mov rdx, qword [rsi + 0x10]
cmp r15, rdx
jae 0x14008a652
mov rax, qword [rsi]
imul rcx, r15, 0x68
mov qword [rax + rcx + 0x58], r14
mov rax, r14
add rsp, 0xa8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
test rdi, rdi
je 0x14008a558
js 0x14008a663
movzx eax, byte [0x1404ecfe1]
mov edx, 1
mov rcx, rdi
call fcn.140089c90
mov r12, rax
test rax, rax
jne 0x14008a55e
jmp 0x14008a549
test rdi, rdi
je 0x14008a5bf
js 0x14008a663
movzx eax, byte [0x1404ecfe1]
mov edx, 1
mov rcx, rdi
call fcn.140089c90
mov r12, rax
test rax, rax
jne 0x14008a5c5
mov ecx, 1
mov rdx, rdi
call fcn.14034fb20
ud2
mov r12d, 1
mov rcx, r12
mov rdx, qword [rbp + 0x18]
mov r8, rdi
call sub.VCRUNTIME140.dll_memcpy
mov qword [rsi + r13 + 0x48], r12
mov rsi, qword [rbp + 0x10]
mov rax, qword [rsi]
imul rcx, qword [rsi + 0x10], 0x68
lea rdx, [rax + 0x20]
xor r8d, r8d
mov r9, rax
mov r10, r14
jmp 0x14008a5a4
dec r10
add r9, 0x68
add r8, 0x68
test r10, r10
je 0x14008a469
cmp rcx, r8
je 0x14008a469
cmp qword [r9 + 0x40], 0x20
ja 0x14008a590
lea r11, [rdx + r8]
mov qword [rax + r8 + 0x48], r11
jmp 0x14008a590
mov r12d, 1
mov rcx, r12
mov rdx, qword [rbp + 0x18]
mov r8, rdi
call sub.VCRUNTIME140.dll_memcpy
mov qword [rsi + r13 + 0x48], r12
mov rsi, qword [rbp + 0x10]
mov rax, qword [rsi]
imul rcx, qword [rsi + 0x10], 0x68
lea rdx, [rax + 0x20]
xor r8d, r8d
mov r9, rax
mov r10, r14
jmp 0x14008a614
dec r10
add r9, 0x68
add r8, 0x68
test r10, r10
je 0x14008a4c5
cmp rcx, r8
je 0x14008a4c5
cmp qword [r9 + 0x40], 0x20
ja 0x14008a600
lea r11, [rdx + r8]
mov qword [rax + r8 + 0x48], r11
jmp 0x14008a600
lea r8, [0x14035c6b0]
xor ecx, ecx
xor edx, edx
call fcn.14034ffb0
ud2
lea r8, [0x14035c6c8]
mov rcx, r15
call fcn.14034ffb0
ud2
lea r8, [0x14035c6e0]
mov rcx, r15
call fcn.14034ffb0
ud2
call fcn.1403200a0
ud2