Function at 0x1401943a0
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, 0x88
mov rdi, rcx
mov r12, qword [rdx + 0x18]
add r8, r12
jae 0x1401943da
mov cl, 1
call fcn.14017ae10
mov qword [rdi + 8], rax
mov qword [rdi + 0x10], rdx
mov qword [rdi], 1
jmp 0x1401944e9
mov r14, qword [rdx]
lea r15, [r14 + 1]
mov rax, r15
shr rax, 3
lea r13, [rax*8]
sub r13, rax
cmp r14, 8
cmovb r13, r14
mov rax, r13
shr rax, 1
cmp r8, rax
jbe 0x140194458
add r13, 1
cmp r8, r13
cmova r13, r8
mov qword [rsp + 0x20], r13
lea rcx, [rsp + 0x50]
mov r8d, 0x48
mov r9d, 0x10
mov rsi, rdx
call fcn.140072e30
cmp dword [rsp + 0x50], 1
mov rax, qword [rsp + 0x58]
mov r8, qword [rsp + 0x60]
jne 0x140194500
mov qword [rdi + 8], rax
mov qword [rdi + 0x10], r8
mov qword [rdi], 1
jmp 0x1401944e9
mov qword [rsp + 0x30], rdi
mov rdi, qword [rdx + 8]
xor ecx, ecx
movdqa xmm0, xmmword [0x1401af880]
xor eax, eax
test cl, 1
je 0x140194486
nop word cs:[rax + rax]
nop dword [rax]
add rax, 0xf
jb 0x1401944aa
cmp rax, r15
jae 0x1401944aa
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 0x140194480
jmp 0x140194486
mov qword [rsp + 0x38], rdx
cmp r15, 0x10
jae 0x14019475a
lea rcx, [rdi + 0x10]
mov rdx, rdi
mov r8, r15
call sub.VCRUNTIME140.dll_memmove
test r15, r15
jne 0x140194764
sub r13, r12
mov rax, qword [rsp + 0x38]
mov qword [rax + 0x10], r13
mov rdi, qword [rsp + 0x30]
mov qword [rdi], 0
mov rax, rdi
add rsp, 0x88
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov qword [rsp + 0x30], rax
mov r11, qword [rsp + 0x68]
mov r14, qword [rsp + 0x70]
movups xmm0, xmmword [rsp + 0x78]
movaps xmmword [rsp + 0x40], xmm0
mov qword [rsp + 0x38], rsi
mov r12, qword [rsi + 8]
add r15, r12
movdqa xmm0, xmmword [r12]
pmovmskb ebp, xmm0
not ebp
lea rsi, [r12 + 0x10]
movabs rcx, 0x100000001b3
test bp, bp
je 0x140194560
nop word cs:[rax + rax]
nop
lea eax, [rbp - 1]
and eax, ebp
jmp 0x14019458f
cmp rsi, r15
jae 0x140194a1e
movdqa xmm0, xmmword [rsi]
pmovmskb ebp, xmm0
add r12, 0xfffffffffffffb80
add rsi, 0x10
cmp bp, 0xffff
je 0x140194560
mov edx, 0xfffffffe
sub edx, ebp
not ebp
mov eax, ebp
and eax, edx
bsf dx, bp
movzx edx, dx
neg rdx
lea rdx, [rdx + rdx*8]
lea r13, [r12 + rdx*8]
add r13, 0xffffffffffffffb8
mov rbx, qword [r12 + rdx*8 - 0x38]
movabs r9, 0xaf64724c8602eb6e
test rbx, rbx
je 0x140194694
mov rbp, qword [r13]
lea rdx, [rbx - 1]
mov r10d, ebx
and r10d, 7
cmp rdx, 7
jae 0x1401945e1
movabs rdx, 0xcbf29ce484222325
jmp 0x140194665
mov r9, rdi
and rbx, 0xfffffffffffffff8
neg rbx
movabs rdx, 0xcbf29ce484222325
nop word cs:[rax + rax]
nop
movzx edi, byte [rbp]
xor rdi, rdx
imul rdi, rcx
movzx edx, byte [rbp + 1]
xor rdx, rdi
imul rdx, rcx
movzx edi, byte [rbp + 2]
xor rdi, rdx
imul rdi, rcx
movzx edx, byte [rbp + 3]
xor rdx, rdi
imul rdx, rcx
movzx edi, byte [rbp + 4]
xor rdi, rdx
imul rdi, rcx
movzx edx, byte [rbp + 5]
xor rdx, rdi
imul rdx, rcx
movzx edi, byte [rbp + 6]
xor rdi, rdx
imul rdi, rcx
movzx edx, byte [rbp + 7]
add rbp, 8
xor rdx, rdi
imul rdx, rcx
add rbx, 8
jne 0x140194600
mov rdi, r9
mov r9, rdx
test r10, r10
je 0x140194689
xor ebx, ebx
nop
movzx r9d, byte [rbp + rbx]
xor r9, rdx
imul r9, rcx
add rbx, 1
mov rdx, r9
cmp r10, rbx
jne 0x140194670
xor r9, 0xff
imul r9, rcx
mov rdx, r9
and rdx, r11
movdqu xmm0, xmmword [r14 + rdx]
pmovmskb ebx, xmm0
test bx, bx
jne 0x1401946c9
mov ebp, 0x10
nop
add rdx, rbp
and rdx, r11
movdqu xmm0, xmmword [r14 + rdx]
pmovmskb ebx, xmm0
add rbp, 0x10
test bx, bx
je 0x1401946b0
bsf bp, bx
movzx ebp, bp
add rbp, rdx
and rbp, r11
cmp byte [r14 + rbp], 0
jns 0x140194748
shr r9, 0x39
lea rdx, [rbp - 0x10]
and rdx, r11
mov byte [r14 + rbp], r9b
mov byte [rdx + r14 + 0x10], r9b
neg rbp
lea rdx, [rbp*8]
add rdx, rbp
mov rbp, qword [r13 + 0x40]
mov qword [r14 + rdx*8 - 8], rbp
movdqu xmm0, xmmword [r13]
movdqu xmm1, xmmword [r13 + 0x10]
movups xmm2, xmmword [r13 + 0x20]
movups xmm3, xmmword [r13 + 0x30]
movups xmmword [r14 + rdx*8 - 0x18], xmm3
movups xmmword [r14 + rdx*8 - 0x28], xmm2
movdqu xmmword [r14 + rdx*8 - 0x38], xmm1
movdqu xmmword [r14 + rdx*8 - 0x48], xmm0
mov ebp, eax
test bp, bp
jne 0x140194550
jmp 0x140194560
movdqa xmm0, xmmword [r14]
pmovmskb edx, xmm0
bsf dx, dx
movzx ebp, dx
jmp 0x1401946dd
movdqu xmm0, xmmword [rdi]
movdqu xmmword [rdi + r15], xmm0
xor r11d, r11d
movabs r9, 0xaf64724c8602eb6e
movabs r8, 0xcbf29ce484222325
movabs rbx, 0x100000001b3
jmp 0x1401949a3
mov rdx, qword [r10 + 0x10]
mov rax, r9
test rdx, rdx
je 0x140194852
lea rax, [rdx - 1]
mov esi, edx
and esi, 7
mov rcx, r8
cmp rax, 7
jb 0x140194822
and rdx, 0xfffffffffffffff8
neg rdx
mov rcx, r8
nop dword [rax]
movzx eax, byte [rbp]
xor rax, rcx
imul rax, rbx
movzx ecx, byte [rbp + 1]
xor rcx, rax
imul rcx, rbx
movzx eax, byte [rbp + 2]
xor rax, rcx
imul rax, rbx
movzx ecx, byte [rbp + 3]
xor rcx, rax
imul rcx, rbx
movzx eax, byte [rbp + 4]
xor rax, rcx
imul rax, rbx
movzx ecx, byte [rbp + 5]
xor rcx, rax
imul rcx, rbx
movzx eax, byte [rbp + 6]
xor rax, rcx
imul rax, rbx
movzx ecx, byte [rbp + 7]
add rbp, 8
xor rcx, rax
imul rcx, rbx
add rdx, 8
jne 0x1401947c0
mov rax, rcx
test rsi, rsi
je 0x140194848
xor edx, edx
nop dword [rax]
movzx eax, byte [rbp + rdx]
xor rax, rcx
imul rax, rbx
add rdx, 1
mov rcx, rax
cmp rsi, rdx
jne 0x140194830
xor rax, 0xff
imul rax, rbx
mov rdx, r14
and rdx, rax
movdqu xmm0, xmmword [rdi + rdx]
pmovmskb ebp, xmm0
mov rsi, rdx
test bp, bp
jne 0x140194898
mov ecx, 0x10
mov rsi, rdx
nop word cs:[rax + rax]
nop dword [rax + rax]
add rsi, rcx
and rsi, r14
movdqu xmm0, xmmword [rdi + rsi]
pmovmskb ebp, xmm0
add rcx, 0x10
test bp, bp
je 0x140194880
bsf cx, bp
movzx ebp, cx
add rbp, rsi
and rbp, r14
cmp byte [rdi + rbp], 0
jns 0x140194965
mov rsi, r11
sub rsi, rdx
mov rcx, rbp
sub rcx, rdx
xor rcx, rsi
and rcx, r14
cmp rcx, 0xf
jbe 0x140194980
mov cl, byte [rdi + rbp]
shr rax, 0x39
lea rdx, [rbp - 0x10]
and rdx, r14
mov byte [rdi + rbp], al
mov byte [rdx + rdi + 0x10], al
cmp cl, 0xff
je 0x1401949c6
neg rbp
lea rax, [rbp*8]
add rax, rbp
movdqu xmm0, xmmword [rdi + rax*8 - 0x48]
movups xmm1, xmmword [rdi + rax*8 - 0x38]
movups xmm2, xmmword [r10]
movups xmm3, xmmword [r10 + 0x10]
movups xmmword [rdi + rax*8 - 0x38], xmm3
movups xmmword [rdi + rax*8 - 0x48], xmm2
movdqu xmmword [r10], xmm0
movups xmmword [r10 + 0x10], xmm1
movdqu xmm1, xmmword [rdi + rax*8 - 0x28]
movups xmm2, xmmword [rdi + rax*8 - 0x18]
movups xmm3, xmmword [r10 + 0x20]
movups xmm4, xmmword [r10 + 0x30]
movups xmmword [rdi + rax*8 - 0x18], xmm4
movups xmmword [rdi + rax*8 - 0x28], xmm3
movdqu xmmword [r10 + 0x20], xmm1
movups xmmword [r10 + 0x30], xmm2
mov rcx, qword [rdi + rax*8 - 8]
mov rdx, qword [r10 + 0x40]
mov qword [rdi + rax*8 - 8], rdx
mov qword [r10 + 0x40], rcx
movq rbp, xmm0
jmp 0x140194790
movdqa xmm0, xmmword [rdi]
pmovmskb ecx, xmm0
bsf cx, cx
movzx ebp, cx
jmp 0x1401948af
shr rax, 0x39
lea rcx, [r11 - 0x10]
and rcx, r14
mov byte [rdi + r11], al
mov byte [rcx + rdi + 0x10], al
lea rax, [r11 + 1]
cmp r11, r14
mov r11, rax
je 0x1401944d1
cmp byte [rdi + r11], 0x80
jne 0x140194993
mov rax, r11
neg rax
lea rax, [rax + rax*8]
lea r10, [rdi + rax*8]
add r10, 0xffffffffffffffb8
mov rbp, qword [rdi + rax*8 - 0x48]
jmp 0x140194790
lea rax, [r11 - 0x10]
and rax, r14
mov byte [rdi + r11], 0xff
mov byte [rax + rdi + 0x10], 0xff
neg rbp
lea rax, [rbp*8]
add rax, rbp
mov rcx, qword [r10 + 0x40]
mov qword [rdi + rax*8 - 8], rcx
movdqu xmm0, xmmword [r10]
movdqu xmm1, xmmword [r10 + 0x10]
movups xmm2, xmmword [r10 + 0x20]
movups xmm3, xmmword [r10 + 0x30]
movups xmmword [rdi + rax*8 - 0x18], xmm3
movups xmmword [rdi + rax*8 - 0x28], xmm2
movdqu xmmword [rdi + rax*8 - 0x38], xmm1
movdqu xmmword [rdi + rax*8 - 0x48], xmm0
jmp 0x140194993
mov rax, qword [rsp + 0x38]
movdqu xmm0, xmmword [rax]
mov qword [rax], r11
mov qword [rax + 8], r14
movaps xmm1, xmmword [rsp + 0x40]
movups xmmword [rax + 0x10], xmm1
mov qword [rdi], 0
movq rbx, xmm0
test rbx, rbx
je 0x1401944e9
lea rcx, [rbx + 1]
mov rax, qword [rsp + 0x30]
mul rcx
lea rcx, [r8 + rax]
add rcx, 0xffffffffffffffff
mov rax, r8
neg rax
and rax, rcx
add rbx, rax
add rbx, 0x11
je 0x1401944e9
pshufd xmm0, xmm0, 0xee
movq rcx, xmm0
sub rcx, rax
mov rdx, rbx
call fcn.1400012f0
jmp 0x1401944e9