Function at 0x140341010
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 r9, qword [rcx + 0x18]
add rdx, r9
jae 0x140341038
mov cl, 1
call fcn.14031fde0
mov rbx, rax
jmp 0x14034152b
mov r13, rcx
mov rsi, qword [rcx + 8]
lea r14, [rsi + 1]
mov rax, r14
shr rax, 3
mov r8, r14
and r8, 0xfffffffffffffff8
sub r8, rax
cmp rsi, 8
cmovb r8, rsi
mov rax, r8
shr rax, 1
cmp rdx, rax
jbe 0x14034108d
inc r8
cmp rdx, r8
cmova r8, rdx
cmp r8, 8
jae 0x1403410bc
xor eax, eax
cmp r8, 4
setae al
lea r10, [rax*4 + 4]
jmp 0x140341561
mov qword [rsp + 0x30], r8
mov r15, qword [r13]
mov rcx, r14
shr rcx, 4
xor eax, eax
test r14b, 0xf
setne al
add rax, rcx
je 0x140341183
cmp rax, 1
jne 0x140341115
xor edx, edx
jmp 0x140341167
mov rax, r8
shr rax, 0x3d
jne 0x14034153f
shl r8, 3
mov r10d, 1
cmp r8, 0xe
jb 0x140341561
movabs rcx, 0x2492492492492493
mov rax, r8
mul rcx
sub r8, rdx
shr r8, 1
add r8, rdx
shr r8, 2
dec r8
bsr rcx, r8
not ecx
mov r10, 0xffffffffffffffff
shr r10, cl
inc r10
jmp 0x140341561
movabs rcx, 0x1ffffffffffffffe
and rcx, rax
xor r8d, r8d
movdqa xmm0, xmmword [0x1403581a0]
nop dword [rax]
pxor xmm1, xmm1
pcmpgtb xmm1, xmmword [r15 + r8]
por xmm1, xmm0
movdqa xmmword [r15 + r8], xmm1
lea rdx, [r8 + 0x20]
pxor xmm1, xmm1
pcmpgtb xmm1, xmmword [r15 + r8 + 0x10]
por xmm1, xmm0
movdqa xmmword [r15 + r8 + 0x10], xmm1
mov r8, rdx
add rcx, 0xfffffffffffffffe
jne 0x140341130
test al, 1
je 0x140341183
pxor xmm0, xmm0
pcmpgtb xmm0, xmmword [r15 + rdx]
por xmm0, xmmword [0x1403581a0]
movdqa xmmword [r15 + rdx], xmm0
cmp r14, 0x10
mov qword [rsp + 0x20], r9
jae 0x1403411aa
lea rcx, [r15 + 0x10]
mov rdx, r15
mov r8, r14
call sub.VCRUNTIME140.dll_memmove
cmp rsi, 0xffffffffffffffff
jne 0x1403411b5
xor eax, eax
jmp 0x140341518
movdqu xmm0, xmmword [r15]
movdqu xmmword [r15 + r14], xmm0
mov qword [rsp + 0x28], r13
xor ecx, ecx
movabs r13, 0xaf64724c8602eb6e
movabs r8, 0x100000001b3
mov r9, r15
jmp 0x140341208
shr rdi, 0x39
lea rax, [rcx - 0x10]
and rax, rsi
mov byte [r15 + rcx], dil
mov byte [rax + r15 + 0x10], dil
lea rax, [rcx + 1]
add r9, 0xffffffffffffffa8
cmp rcx, rsi
mov rcx, rax
je 0x14034150e
cmp byte [r15 + rcx], 0x80
jne 0x1403411f4
imul r11, rcx, 0xffffffffffffffa8
lea r14, [r15 + r11]
add r14, 0xffffffffffffffa8
add r11, r15
mov rax, rcx
not rax
imul r10, rax, 0x58
add r10, r15
mov rax, rcx
neg rax
imul r12, rax, 0x58
add r12, r15
jmp 0x1403412ec
mov rdx, qword [r10]
mov rdi, qword [rax]
mov qword [r10], rdi
mov qword [rax], rdx
mov rdx, qword [r10 + 8]
mov rdi, qword [rax + 8]
mov qword [r10 + 8], rdi
mov qword [rax + 8], rdx
mov rdx, qword [r10 + 0x10]
mov rdi, qword [rax + 0x10]
mov qword [r10 + 0x10], rdi
mov qword [rax + 0x10], rdx
mov rdx, qword [r10 + 0x18]
mov rdi, qword [rax + 0x18]
mov qword [r10 + 0x18], rdi
mov qword [rax + 0x18], rdx
mov rdx, qword [r10 + 0x20]
mov rdi, qword [rax + 0x20]
mov qword [r10 + 0x20], rdi
mov qword [rax + 0x20], rdx
mov rdx, qword [r10 + 0x28]
mov rdi, qword [rax + 0x28]
mov qword [r10 + 0x28], rdi
mov qword [rax + 0x28], rdx
mov rdx, qword [r10 + 0x30]
mov rdi, qword [rax + 0x30]
mov qword [r10 + 0x30], rdi
mov qword [rax + 0x30], rdx
mov rdx, qword [r10 + 0x38]
mov rdi, qword [rax + 0x38]
mov qword [r10 + 0x38], rdi
mov qword [rax + 0x38], rdx
mov rdx, qword [r10 + 0x40]
mov rdi, qword [rax + 0x40]
mov qword [r10 + 0x40], rdi
mov qword [rax + 0x40], rdx
mov rdx, qword [r10 + 0x48]
mov rdi, qword [rax + 0x48]
mov qword [r10 + 0x48], rdi
mov qword [rax + 0x48], rdx
mov rdx, qword [r10 + 0x50]
mov rdi, qword [rax + 0x50]
mov qword [r10 + 0x50], rdi
mov qword [rax + 0x50], rdx
mov rbp, qword [r12 - 0x48]
mov rdi, r13
test rbp, rbp
je 0x1403413d1
mov rbx, qword [r12 - 0x58]
cmp rbp, 8
jae 0x140341320
movabs rax, 0xcbf29ce484222325
jmp 0x1403413a1
mov rdi, rbp
and rdi, 0xfffffffffffffff8
movabs rax, 0xcbf29ce484222325
nop word cs:[rax + rax]
movzx edx, byte [rbx]
xor rdx, rax
imul rdx, r8
movzx eax, byte [rbx + 1]
xor rax, rdx
imul rax, r8
movzx edx, byte [rbx + 2]
xor rdx, rax
imul rdx, r8
movzx eax, byte [rbx + 3]
xor rax, rdx
imul rax, r8
movzx edx, byte [rbx + 4]
xor rdx, rax
imul rdx, r8
movzx eax, byte [rbx + 5]
xor rax, rdx
imul rax, r8
movzx edx, byte [rbx + 6]
xor rdx, rax
imul rdx, r8
movzx eax, byte [rbx + 7]
add rbx, 8
xor rax, rdx
imul rax, r8
add rdi, 0xfffffffffffffff8
jne 0x140341340
mov rdi, rax
and ebp, 7
je 0x1403413c6
xor edx, edx
nop dword [rax + rax]
movzx edi, byte [rbx + rdx]
xor rdi, rax
imul rdi, r8
inc rdx
mov rax, rdi
cmp rbp, rdx
jne 0x1403413b0
xor rdi, 0xff
imul rdi, r8
mov rax, rdi
and rax, rsi
movdqu xmm0, xmmword [r15 + rax]
pmovmskb ebx, xmm0
mov rbp, rax
test ebx, ebx
jne 0x140341408
mov edx, 0x10
mov rbp, rax
add rbp, rdx
and rbp, rsi
movdqu xmm0, xmmword [r15 + rbp]
pmovmskb ebx, xmm0
add rdx, 0x10
test ebx, ebx
je 0x1403413f0
tzcnt ebx, ebx
add rbx, rbp
and rbx, rsi
cmp byte [r15 + rbx], 0
js 0x140341426
movdqa xmm0, xmmword [r15]
pmovmskb edx, xmm0
tzcnt ebx, edx
mov rdx, rcx
sub rdx, rax
mov rbp, rbx
sub rbp, rax
xor rbp, rdx
and rbp, rsi
cmp rbp, 0x10
jb 0x1403411e0
mov rax, rbx
not rax
imul rax, rax, 0x58
add rax, r15
movzx edx, byte [r15 + rbx]
shr rdi, 0x39
lea rbp, [rbx - 0x10]
and rbp, rsi
mov byte [r15 + rbx], dil
mov byte [rbp + r15 + 0x10], dil
cmp dl, 0xff
je 0x1403414c0
imul rdi, rbx, 0xffffffffffffffa8
add rdi, r15
cmp r14, rdi
jae 0x140341240
cmp rax, r11
jae 0x140341240
mov rax, 0xffffffffffffffa8
nop dword [rax]
movzx edx, byte [r9 + rax]
movzx ebx, byte [rdi + rax]
mov byte [r9 + rax], bl
mov byte [rdi + rax], dl
movzx edx, byte [r9 + rax + 1]
movzx ebx, byte [rdi + rax + 1]
mov byte [r9 + rax + 1], bl
mov byte [rdi + rax + 1], dl
add rax, 2
jne 0x140341490
jmp 0x1403412ec
lea rdx, [rcx - 0x10]
and rdx, rsi
mov byte [r15 + rcx], 0xff
mov byte [rdx + r15 + 0x10], 0xff
mov rdx, qword [r10 + 0x50]
mov qword [rax + 0x50], rdx
movups xmm0, xmmword [r10 + 0x40]
movups xmmword [rax + 0x40], xmm0
movdqu xmm0, xmmword [r10]
movdqu xmm1, xmmword [r10 + 0x10]
movups xmm2, xmmword [r10 + 0x20]
movups xmm3, xmmword [r10 + 0x30]
movups xmmword [rax + 0x30], xmm3
movups xmmword [rax + 0x20], xmm2
movdqu xmmword [rax + 0x10], xmm1
movdqu xmmword [rax], xmm0
jmp 0x1403411f4
mov r13, qword [rsp + 0x28]
mov rax, qword [rsp + 0x30]
sub rax, qword [rsp + 0x20]
mov qword [r13 + 0x10], rax
movabs rbx, 0x8000000000000001
mov rax, rbx
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rdi, r9
mov cl, 1
call fcn.14031fde0
mov rbx, rax
movabs rax, 0x8000000000000001
cmp rbx, rax
jne 0x14034152b
mov r10, rdx
mov r9, rdi
mov ecx, 0x58
mov rax, r10
mul rcx
jo 0x140341029
mov r12, rax
add r12, 0xf
and r12, 0xfffffffffffffff0
lea r15, [r10 + 0x10]
mov rbp, r12
add rbp, r15
jb 0x140341029
movabs rax, 0x7ffffffffffffff1
cmp rbp, rax
jae 0x140341029
mov rdi, r9
test rbp, rbp
je 0x1403415e1
movzx eax, byte [0x1404ecfe1]
mov edx, 0x10
mov rcx, rbp
mov rbx, r10
call fcn.140089c90
mov r10, rbx
mov rbx, rax
test rax, rax
jne 0x1403415e6
mov edx, 0x10
mov cl, 1
mov r8, rbp
call fcn.14031fe30
mov rbx, rax
jmp 0x14034152b
mov ebx, 0x10
lea rbp, [r10 - 1]
mov rax, r10
shr rax, 3
and r10, 0xfffffffffffffff8
sub r10, rax
cmp rbp, 8
cmovb r10, rbp
add rbx, r12
mov rcx, rbx
mov dl, 0xff
mov r8, r15
mov r15, r10
call sub.VCRUNTIME140.dll_memset
mov rax, r15
sub rax, rdi
mov rcx, qword [r13]
cmp rsi, 0xffffffffffffffff
je 0x14034183e
mov qword [rsp + 0x20], rax
xor eax, eax
movabs rdx, 0xaf64724c8602eb6e
movabs r8, 0xcbf29ce484222325
movabs r9, 0x100000001b3
jmp 0x1403416dd
shr rdi, 0x39
lea r10, [r11 - 0x10]
and r10, rbp
mov byte [rbx + r11], dil
mov byte [r10 + rbx + 0x10], dil
mov r10, rax
not r10
imul r10, r10, 0x58
not r11
imul r11, r11, 0x58
mov rdi, qword [rcx + r10 + 0x50]
mov qword [rbx + r11 + 0x50], rdi
movups xmm0, xmmword [rcx + r10 + 0x40]
movups xmmword [rbx + r11 + 0x40], xmm0
movdqu xmm0, xmmword [rcx + r10]
movdqu xmm1, xmmword [rcx + r10 + 0x10]
movups xmm2, xmmword [rcx + r10 + 0x20]
movups xmm3, xmmword [rcx + r10 + 0x30]
movups xmmword [rbx + r11 + 0x30], xmm3
movups xmmword [rbx + r11 + 0x20], xmm2
movdqu xmmword [rbx + r11 + 0x10], xmm1
movdqu xmmword [rbx + r11], xmm0
lea r10, [rax + 1]
cmp rax, rsi
mov rax, r10
je 0x140341823
cmp byte [rcx + rax], 0
js 0x1403416cd
mov r10, rax
neg r10
imul r11, r10, 0x58
mov r10, qword [rcx + r11 - 0x48]
mov rdi, rdx
test r10, r10
je 0x1403417c2
mov r11, qword [rcx + r11 - 0x58]
cmp r10, 8
jae 0x14034170e
mov r15, r8
jmp 0x140341789
mov rdi, r10
and rdi, 0xfffffffffffffff8
mov r15, r8
nop dword [rax + rax]
movzx r12d, byte [r11]
xor r12, r15
imul r12, r9
movzx r15d, byte [r11 + 1]
xor r15, r12
imul r15, r9
movzx r12d, byte [r11 + 2]
xor r12, r15
imul r12, r9
movzx r15d, byte [r11 + 3]
xor r15, r12
imul r15, r9
movzx r12d, byte [r11 + 4]
xor r12, r15
imul r12, r9
movzx r15d, byte [r11 + 5]
xor r15, r12
imul r15, r9
movzx r12d, byte [r11 + 6]
xor r12, r15
imul r12, r9
movzx r15d, byte [r11 + 7]
add r11, 8
xor r15, r12
imul r15, r9
add rdi, 0xfffffffffffffff8
jne 0x140341720
mov rdi, r15
and r10d, 7
je 0x1403417b7
xor r12d, r12d
nop word cs:[rax + rax]
movzx edi, byte [r11 + r12]
xor rdi, r15
imul rdi, r9
inc r12
mov r15, rdi
cmp r10, r12
jne 0x1403417a0
xor rdi, 0xff
imul rdi, r9
mov r10, rdi
and r10, rbp
movdqu xmm0, xmmword [rbx + r10]
pmovmskb r11d, xmm0
test r11d, r11d
jne 0x1403417fa
mov r15d, 0x10
nop
add r10, r15
and r10, rbp
movdqu xmm0, xmmword [rbx + r10]
pmovmskb r11d, xmm0
add r15, 0x10
test r11d, r11d
je 0x1403417e0
tzcnt r11d, r11d
add r11, r10
and r11, rbp
cmp byte [rbx + r11], 0
js 0x140341660
movdqa xmm0, xmmword [rbx]
pmovmskb r10d, xmm0
tzcnt r11d, r10d
jmp 0x140341660
mov qword [r13], rbx
mov qword [r13 + 8], rbp
mov rax, qword [rsp + 0x20]
mov qword [r13 + 0x10], rax
test rsi, rsi
jne 0x14034184a
jmp 0x140341521
mov qword [r13], rbx
mov qword [r13 + 8], rbp
mov qword [r13 + 0x10], rax
mov edx, 0x58
mov rax, r14
mul rdx
add rax, 0xf
and rax, 0xfffffffffffffff0
add rsi, rax
movabs rbx, 0x8000000000000001
add rsi, 0x11
je 0x14034152b
sub rcx, rax
mov r8d, 0x10
mov rdx, rsi
call fcn.140089ca0
jmp 0x14034152b