Function at 0x140197430
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, 0xa8
mov rsi, rcx
mov r12, qword [rdx + 0x18]
mov rax, r12
inc rax
jne 0x14019746d
mov cl, 1
call fcn.14017ae10
mov qword [rsi + 8], rax
mov qword [rsi + 0x10], rdx
mov qword [rsi], 1
jmp 0x140197574
mov rdi, rdx
mov r14, qword [rdx]
lea r13, [r14 + 1]
mov rcx, r13
shr rcx, 3
lea r15, [rcx*8]
sub r15, rcx
cmp r14, 8
cmovb r15, r14
mov rcx, r15
shr rcx, 1
cmp rax, rcx
jbe 0x1401974ee
add r15, 1
cmp rax, r15
cmova r15, rax
mov qword [rsp + 0x20], r15
lea rcx, [rsp + 0x50]
mov r8d, 0x50
mov r9d, 0x10
mov rdx, rdi
call fcn.140072e30
cmp dword [rsp + 0x50], 1
mov rcx, qword [rsp + 0x58]
mov rax, qword [rsp + 0x60]
jne 0x14019758b
mov qword [rsi + 8], rcx
mov qword [rsi + 0x10], rax
mov qword [rsi], 1
jmp 0x140197574
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x28], rdi
mov rdi, qword [rdi + 8]
xor ecx, ecx
movdqa xmm0, xmmword [0x1401af880]
xor eax, eax
test cl, 1
je 0x140197516
nop dword [rax]
add rax, 0xf
jb 0x14019753a
cmp rax, r13
jae 0x14019753a
pxor xmm1, xmm1
pcmpgtb xmm1, xmmword [rdi + rax]
por xmm1, xmm0
movdqa xmmword [rdi + rax], xmm1
add rax, 1
mov cl, 1
test cl, 1
jne 0x140197510
jmp 0x140197516
cmp r13, 0x10
jae 0x140197819
lea rcx, [rdi + 0x10]
mov rdx, rdi
mov r8, r13
call sub.VCRUNTIME140.dll_memmove
test r13, r13
jne 0x140197823
sub r15, r12
mov rax, qword [rsp + 0x28]
mov qword [rax + 0x10], r15
mov rsi, qword [rsp + 0x30]
mov qword [rsi], 0
mov rax, rsi
add rsp, 0xa8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov qword [rsp + 0x40], rcx
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x30], rsi
mov r12, qword [rsp + 0x68]
mov r8, qword [rsp + 0x70]
movups xmm0, xmmword [rsp + 0x78]
movaps xmmword [rsp + 0x90], xmm0
mov qword [rsp + 0x28], rdi
mov rdi, qword [rdi + 8]
add r13, rdi
movdqa xmm0, xmmword [rdi]
pmovmskb ebp, xmm0
not ebp
lea rsi, [rdi + 0x10]
movabs rcx, 0x100000001b3
test bp, bp
je 0x1401975f0
nop word [rax + rax]
lea r10d, [rbp - 1]
and r10d, ebp
jmp 0x140197621
cmp rsi, r13
jae 0x140197b01
movdqa xmm0, xmmword [rsi]
pmovmskb ebp, xmm0
add rdi, 0xfffffffffffffb00
add rsi, 0x10
cmp bp, 0xffff
je 0x1401975f0
mov eax, 0xfffffffe
sub eax, ebp
not ebp
mov r10d, ebp
and r10d, eax
bsf ax, bp
movzx eax, ax
neg rax
lea r11, [rax + rax*4]
shl r11, 4
lea r15, [rdi + r11]
add r15, 0xffffffffffffffb0
mov r9, qword [rdi + r11 - 0x40]
movabs rbp, 0xaf64724c8602eb6e
test r9, r9
je 0x140197738
mov dword [rsp + 0x3c], r10d
mov r10, qword [r15]
lea rax, [r9 - 1]
mov r14d, r9d
and r14d, 7
cmp rax, 7
jae 0x14019767b
movabs rbx, 0xcbf29ce484222325
jmp 0x1401976f9
and r9, 0xfffffffffffffff8
neg r9
movabs rbx, 0xcbf29ce484222325
nop dword [rax]
movzx eax, byte [r10]
xor rax, rbx
imul rax, rcx
movzx edx, byte [r10 + 1]
xor rdx, rax
imul rdx, rcx
movzx eax, byte [r10 + 2]
xor rax, rdx
imul rax, rcx
movzx edx, byte [r10 + 3]
xor rdx, rax
imul rdx, rcx
movzx eax, byte [r10 + 4]
xor rax, rdx
imul rax, rcx
movzx edx, byte [r10 + 5]
xor rdx, rax
imul rdx, rcx
movzx eax, byte [r10 + 6]
xor rax, rdx
imul rax, rcx
movzx ebx, byte [r10 + 7]
add r10, 8
xor rbx, rax
imul rbx, rcx
add r9, 8
jne 0x140197690
mov rbp, rbx
test r14, r14
je 0x140197728
xor eax, eax
nop word cs:[rax + rax]
nop dword [rax]
movzx ebp, byte [r10 + rax]
xor rbp, rbx
imul rbp, rcx
add rax, 1
mov rbx, rbp
cmp r14, rax
jne 0x140197710
xor rbp, 0xff
imul rbp, rcx
mov r10d, dword [rsp + 0x3c]
movzx ebx, byte [rdi + r11 - 0x38]
xor rbx, rbp
movabs rax, 0x1efac7090aef4a21
imul rbx, rax
mov rbp, rbx
and rbp, r12
movdqu xmm0, xmmword [r8 + rbp]
pmovmskb edx, xmm0
test dx, dx
jne 0x140197789
mov eax, 0x10
nop dword [rax]
add rbp, rax
and rbp, r12
movdqu xmm0, xmmword [r8 + rbp]
pmovmskb edx, xmm0
add rax, 0x10
test dx, dx
je 0x140197770
bsf ax, dx
movzx eax, ax
add rax, rbp
and rax, r12
cmp byte [r8 + rax], 0
jns 0x140197807
shr rbx, 0x39
lea rdx, [rax - 0x10]
and rdx, r12
mov byte [r8 + rax], bl
mov byte [rdx + r8 + 0x10], bl
neg rax
lea rax, [rax + rax*4]
shl rax, 4
movups xmm0, xmmword [r15 + 0x40]
movups xmmword [r8 + rax - 0x10], xmm0
movdqu xmm0, xmmword [r15]
movdqu xmm1, xmmword [r15 + 0x10]
movups xmm2, xmmword [r15 + 0x20]
movups xmm3, xmmword [r15 + 0x30]
movups xmmword [r8 + rax - 0x20], xmm3
movups xmmword [r8 + rax - 0x30], xmm2
movdqu xmmword [r8 + rax - 0x40], xmm1
movdqu xmmword [r8 + rax - 0x50], xmm0
mov ebp, r10d
test bp, bp
jne 0x1401975e0
jmp 0x1401975f0
movdqa xmm0, xmmword [r8]
pmovmskb eax, xmm0
bsf ax, ax
movzx eax, ax
jmp 0x14019779d
movdqu xmm0, xmmword [rdi]
movdqu xmmword [rdi + r13], xmm0
xor r13d, r13d
movabs r10, 0xaf64724c8602eb6e
movabs r9, 0x1efac7090aef4a21
movabs r8, 0xcbf29ce484222325
movabs rbx, 0x100000001b3
jmp 0x140197a84
mov rcx, qword [r11 + 0x10]
mov rsi, r10
test rcx, rcx
je 0x140197923
lea rsi, [rcx - 1]
mov edx, ecx
and edx, 7
mov rax, r8
cmp rsi, 7
jb 0x1401978f2
and rcx, 0xfffffffffffffff8
neg rcx
mov rax, r8
nop dword [rax]
movzx esi, byte [rbp]
xor rsi, rax
imul rsi, rbx
movzx eax, byte [rbp + 1]
xor rax, rsi
imul rax, rbx
movzx esi, byte [rbp + 2]
xor rsi, rax
imul rsi, rbx
movzx eax, byte [rbp + 3]
xor rax, rsi
imul rax, rbx
movzx esi, byte [rbp + 4]
xor rsi, rax
imul rsi, rbx
movzx eax, byte [rbp + 5]
xor rax, rsi
imul rax, rbx
movzx esi, byte [rbp + 6]
xor rsi, rax
imul rsi, rbx
movzx eax, byte [rbp + 7]
add rbp, 8
xor rax, rsi
imul rax, rbx
add rcx, 8
jne 0x140197890
mov rsi, rax
test rdx, rdx
je 0x140197918
xor ecx, ecx
nop dword [rax]
movzx esi, byte [rbp + rcx]
xor rsi, rax
imul rsi, rbx
add rcx, 1
mov rax, rsi
cmp rdx, rcx
jne 0x140197900
xor rsi, 0xff
imul rsi, rbx
movzx ebp, byte [r11 + 0x18]
xor rbp, rsi
imul rbp, r9
mov rcx, rbp
and rcx, r14
movdqu xmm0, xmmword [rdi + rcx]
pmovmskb esi, xmm0
mov rdx, rcx
test si, si
jne 0x140197968
mov eax, 0x10
mov rdx, rcx
nop
add rdx, rax
and rdx, r14
movdqu xmm0, xmmword [rdi + rdx]
pmovmskb esi, xmm0
add rax, 0x10
test si, si
je 0x140197950
bsf ax, si
movzx esi, ax
add rsi, rdx
and rsi, r14
cmp byte [rdi + rsi], 0
jns 0x140197a3f
mov rax, r13
sub rax, rcx
mov rdx, rsi
sub rdx, rcx
xor rdx, rax
and rdx, r14
cmp rdx, 0xf
jbe 0x140197a60
mov al, byte [rdi + rsi]
shr rbp, 0x39
lea rcx, [rsi - 0x10]
and rcx, r14
mov byte [rdi + rsi], bpl
mov byte [rcx + rdi + 0x10], bpl
cmp al, 0xff
je 0x140197aab
neg rsi
lea rax, [rsi + rsi*4]
shl rax, 4
movdqu xmm0, xmmword [rdi + rax - 0x50]
movups xmm1, xmmword [rdi + rax - 0x40]
movups xmm2, xmmword [r11]
movups xmm3, xmmword [r11 + 0x10]
movups xmmword [rdi + rax - 0x40], xmm3
movups xmmword [rdi + rax - 0x50], xmm2
movdqu xmmword [r11], xmm0
movups xmmword [r11 + 0x10], xmm1
movups xmm1, xmmword [rdi + rax - 0x30]
movups xmm2, xmmword [rdi + rax - 0x20]
movups xmm3, xmmword [r11 + 0x20]
movups xmm4, xmmword [r11 + 0x30]
movups xmmword [rdi + rax - 0x20], xmm4
movups xmmword [rdi + rax - 0x30], xmm3
movups xmmword [r11 + 0x20], xmm1
movups xmmword [r11 + 0x30], xmm2
movups xmm1, xmmword [rdi + rax - 0x10]
movaps xmmword [rsp + 0x50], xmm1
movups xmm1, xmmword [r11 + 0x40]
movups xmmword [rdi + rax - 0x10], xmm1
movdqa xmm1, xmmword [rsp + 0x50]
movdqu xmmword [r11 + 0x40], xmm1
movq rbp, xmm0
jmp 0x140197860
movdqa xmm0, xmmword [rdi]
pmovmskb eax, xmm0
bsf ax, ax
movzx esi, ax
jmp 0x14019797f
shr rbp, 0x39
lea rax, [r13 - 0x10]
and rax, r14
mov byte [rdi + r13], bpl
mov byte [rax + rdi + 0x10], bpl
lea rax, [r13 + 1]
cmp r13, r14
mov r13, rax
je 0x14019755c
cmp byte [rdi + r13], 0x80
jne 0x140197a74
mov rax, r13
neg rax
lea rax, [rax + rax*4]
shl rax, 4
lea r11, [rdi + rax]
add r11, 0xffffffffffffffb0
mov rbp, qword [rdi + rax - 0x50]
jmp 0x140197860
lea rax, [r13 - 0x10]
and rax, r14
mov byte [rdi + r13], 0xff
mov byte [rax + rdi + 0x10], 0xff
neg rsi
lea rax, [rsi + rsi*4]
shl rax, 4
movups xmm0, xmmword [r11 + 0x40]
movups xmmword [rdi + rax - 0x10], xmm0
movdqu xmm0, xmmword [r11]
movdqu xmm1, xmmword [r11 + 0x10]
movups xmm2, xmmword [r11 + 0x20]
movups xmm3, xmmword [r11 + 0x30]
movups xmmword [rdi + rax - 0x20], xmm3
movups xmmword [rdi + rax - 0x30], xmm2
movdqu xmmword [rdi + rax - 0x40], xmm1
movdqu xmmword [rdi + rax - 0x50], xmm0
jmp 0x140197a74
mov rax, qword [rsp + 0x28]
movdqu xmm0, xmmword [rax]
mov qword [rax], r12
mov qword [rax + 8], r8
movaps xmm1, xmmword [rsp + 0x90]
movups xmmword [rax + 0x10], xmm1
mov rsi, qword [rsp + 0x30]
mov qword [rsi], 0
movq rbx, xmm0
test rbx, rbx
mov r8, qword [rsp + 0x48]
je 0x140197574
lea rcx, [rbx + 1]
mov rax, qword [rsp + 0x40]
mul rcx
lea rcx, [r8 + rax]
add rcx, 0xffffffffffffffff
mov rax, r8
neg rax
and rax, rcx
add rbx, rax
add rbx, 0x11
je 0x140197574
pshufd xmm0, xmm0, 0xee
movq rcx, xmm0
sub rcx, rax
mov rdx, rbx
call fcn.1400012f0
jmp 0x140197574