Function at 0x1400b49c0
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, 0xb8
movdqa xmmword [rsp + 0xa0], xmm8
movaps xmmword [rsp + 0x90], xmm7
movaps xmmword [rsp + 0x80], xmm6
mov r10, rcx
mov rcx, qword [rdx]
mov r13, qword [rdx + 0x10]
test r13, r13
je 0x1400b4a29
lea rbp, [r13 - 1]
mov r11d, r13d
and r11d, 7
movabs rax, 0x100000001b3
cmp rbp, 7
jae 0x1400b4a38
movabs rbx, 0xcbf29ce484222325
mov rdi, rcx
jmp 0x1400b4ab1
movabs rsi, 0xaf64724c8602eb6e
jmp 0x1400b4ae2
mov rsi, r13
and rsi, 0xfffffffffffffff8
neg rsi
movabs rbx, 0xcbf29ce484222325
mov rdi, rcx
nop
movzx ebp, byte [rdi]
xor rbp, rbx
imul rbp, rax
movzx ebx, byte [rdi + 1]
xor rbx, rbp
imul rbx, rax
movzx ebp, byte [rdi + 2]
xor rbp, rbx
imul rbp, rax
movzx ebx, byte [rdi + 3]
xor rbx, rbp
imul rbx, rax
movzx ebp, byte [rdi + 4]
xor rbp, rbx
imul rbp, rax
movzx ebx, byte [rdi + 5]
xor rbx, rbp
imul rbx, rax
movzx ebp, byte [rdi + 6]
xor rbp, rbx
imul rbp, rax
movzx ebx, byte [rdi + 7]
add rdi, 8
xor rbx, rbp
imul rbx, rax
add rsi, 8
jne 0x1400b4a50
mov rsi, rbx
test r11, r11
je 0x1400b4ad7
xor ebp, ebp
nop dword [rax + rax]
movzx esi, byte [rdi + rbp]
xor rsi, rbx
imul rsi, rax
add rbp, 1
mov rbx, rsi
cmp r11, rbp
jne 0x1400b4ac0
xor rsi, 0xff
imul rsi, rax
mov rax, rsi
shr rax, 0x39
mov r15, qword [r10]
mov rbp, qword [r10 + 8]
mov r14, r15
and r14, rsi
movdqu xmm7, xmmword [rbp + r14]
movd xmm0, eax
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm6, xmm0, 0
movdqa xmm0, xmm6
pcmpeqb xmm0, xmm7
pmovmskb eax, xmm0
xor ebx, ebx
test ax, ax
je 0x1400b4c39
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x30], r8
mov qword [rsp + 0x48], r10
mov qword [rsp + 0x38], r9
mov qword [rsp + 0x40], rdx
lea r12d, [rax - 1]
and r12d, eax
bsf ax, ax
movzx eax, ax
add rax, r14
pcmpeqd xmm8, xmm8
and rax, r15
neg rax
lea rdi, [rax + rax*4]
cmp r13, qword [rbp + rdi*8 - 0x18]
jne 0x1400b4bd1
mov rdx, qword [rbp + rdi*8 - 0x28]
mov r8, r13
mov rbx, rcx
call sub.VCRUNTIME140.dll_memcmp
mov rcx, rbx
test eax, eax
je 0x1400b4bf2
jmp 0x1400b4bd1
pcmpeqb xmm7, xmm8
pmovmskb eax, xmm7
test ax, ax
mov rdx, qword [rsp + 0x40]
mov r9, qword [rsp + 0x38]
mov r10, qword [rsp + 0x48]
mov r8, qword [rsp + 0x30]
mov rax, qword [rsp + 0x28]
jne 0x1400b4c75
add r14, rax
add r14, 0x10
add rax, 0x10
mov qword [rsp + 0x28], rax
and r14, r15
movdqu xmm7, xmmword [rbp + r14]
movdqa xmm0, xmm6
pcmpeqb xmm0, xmm7
pmovmskb r12d, xmm0
test r12w, r12w
je 0x1400b4b7f
lea edx, [r12 - 1]
and edx, r12d
bsf ax, r12w
movzx eax, ax
add rax, r14
mov r12d, edx
jmp 0x1400b4b55
mov r14, qword [rbp + rdi*8 - 0x10]
mov rsi, qword [rbp + rdi*8 - 8]
mov rax, qword [rsp + 0x30]
mov qword [rbp + rdi*8 - 0x10], rax
mov rax, qword [rsp + 0x38]
mov qword [rbp + rdi*8 - 8], rax
mov rbx, rsi
shr rbx, 0x28
mov rdi, rsi
shr rdi, 0x20
mov rax, qword [rsp + 0x40]
mov rdx, qword [rax + 8]
test rdx, rdx
je 0x1400b4ca6
mov r8d, 1
call fcn.1400012f0
jmp 0x1400b4ca6
pcmpeqd xmm0, xmm0
pcmpeqb xmm7, xmm0
pmovmskb eax, xmm7
test ax, ax
jne 0x1400b4c75
add r14, rbx
add r14, 0x10
add rbx, 0x10
and r14, r15
movdqu xmm7, xmmword [rbp + r14]
movdqa xmm1, xmm6
pcmpeqb xmm1, xmm7
pmovmskb eax, xmm1
test ax, ax
je 0x1400b4c3d
jmp 0x1400b4b26
mov rax, qword [rdx + 0x10]
mov qword [rsp + 0x60], rax
movups xmm0, xmmword [rdx]
movaps xmmword [rsp + 0x50], xmm0
mov qword [rsp + 0x70], r9
mov qword [rsp + 0x68], r8
lea r8, [rsp + 0x50]
mov rcx, r10
mov rdx, rsi
mov r9, r10
call fcn.1400e1870
mov dil, 0x4d
shl rbx, 0x28
movzx eax, dil
shl rax, 0x20
or rax, rbx
mov edx, esi
or rdx, rax
mov rax, r14
movaps xmm6, xmmword [rsp + 0x80]
movaps xmm7, xmmword [rsp + 0x90]
movaps xmm8, xmmword [rsp + 0xa0]
add rsp, 0xb8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret