Function at 0x140147cfd
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 rbx, qword [rcx + 0x18]
mov rax, rbx
inc rax
je 0x14014825a
mov rsi, rcx
mov rdi, qword [rcx + 8]
lea r8, [rdi + 1]
mov rdx, r8
shr rdx, 3
mov rcx, r8
and rcx, 0xfffffffffffffff8
sub rcx, rdx
cmp rdi, 8
cmovb rcx, rdi
mov rdx, rcx
shr rdx, 1
cmp rax, rdx
jbe 0x140147d75
inc rcx
cmp rax, rcx
cmova rcx, rax
cmp rcx, 8
jae 0x140147dd5
xor eax, eax
cmp rcx, 4
setae al
lea r8, [rax*4 + 4]
jmp 0x140147e25
mov rcx, r8
shr rcx, 4
xor eax, eax
test r8b, 0xf
setne al
mov rdx, qword [rsi]
add rax, rcx
je 0x140147db1
movdqa xmm0, xmmword [0x1402eca70]
mov rcx, rdx
pxor xmm1, xmm1
pcmpgtb xmm1, xmmword [rcx]
por xmm1, xmm0
movdqa xmmword [rcx], xmm1
add rcx, 0x10
dec rax
jne 0x140147d98
cmp r8, 0x10
jae 0x140147fed
lea rcx, [rdx + 0x10]
call sub.msvcrt.dll_memmove
cmp rdi, 0xffffffffffffffff
jne 0x140147ff7
xor eax, eax
jmp 0x1401481d4
mov rax, rcx
shr rax, 0x3d
jne 0x14014825a
shl rcx, 3
mov r8d, 1
cmp rcx, 0xe
jb 0x140147e25
movabs rdx, 0x2492492492492493
mov rax, rcx
mul rdx
sub rcx, rdx
shr rcx, 1
add rcx, rdx
shr rcx, 2
dec rcx
bsr rcx, rcx
not ecx
mov r8, 0xffffffffffffffff
shr r8, cl
inc r8
lea rdi, [rsp + 0x30]
mov edx, 0x30
mov rcx, rdi
call fcn.1402da212
mov rdi, qword [rdi]
test rdi, rdi
je 0x1401481e7
lea r14, [rsi + 0x20]
mov r15, qword [rsp + 0x38]
mov r13, qword [rsp + 0x40]
mov r12, qword [rsp + 0x48]
lea r8, [r15 + 0x11]
mov rcx, rdi
mov dl, 0xff
call sub.msvcrt.dll_memset
lea rdx, [rsp + 0x68]
mov qword [rdx - 0x18], r14
mov qword [rdx - 0x10], 0x30
mov qword [rdx - 8], 0x10
mov qword [rdx], rdi
mov qword [rdx + 8], r15
mov qword [rdx + 0x10], r13
mov qword [rdx + 0x18], r12
test rbx, rbx
je 0x1401481ee
mov qword [rsp + 0x28], r13
movabs rcx, 0xcbf29ce484222325
movabs rdx, 0x100000001b3
mov r8, qword [rsi]
movdqa xmm0, xmmword [r8]
pmovmskb r10d, xmm0
not r10d
xor r9d, r9d
test r10w, r10w
jne 0x140147ee6
movdqa xmm0, xmmword [r8 + 0x10]
add r8, 0x10
pmovmskb r10d, xmm0
add r9, 0x10
cmp r10d, 0xffff
je 0x140147ec7
not r10d
bsf r12d, r10d
lea r11d, [r10 - 1]
add r12, r9
mov rax, qword [rsi]
mov r14, r12
neg r14
lea r14, [r14 + r14*2]
shl r14, 4
mov rax, qword [rax + r14 - 0x30]
mov qword [rsp + 0x30], rax
mov r13, rcx
xor eax, eax
movzx r14d, byte [rsp + rax + 0x30]
inc rax
xor r13, r14
imul r13, rdx
cmp rax, 8
jne 0x140147f11
mov rbp, r13
and rbp, r15
movdqu xmm0, xmmword [rdi + rbp]
pmovmskb r14d, xmm0
test r14d, r14d
jne 0x140147f5a
mov eax, 0x10
add rbp, rax
and rbp, r15
movdqu xmm0, xmmword [rdi + rbp]
pmovmskb r14d, xmm0
add rax, 0x10
test r14d, r14d
je 0x140147f41
bsf r14d, r14d
add r14, rbp
and r14, r15
cmp byte [rdi + r14], 0
js 0x140147f77
movdqa xmm0, xmmword [rdi]
pmovmskb eax, xmm0
bsf r14d, eax
and r11d, r10d
dec rbx
shr r13, 0x39
lea rax, [r14 - 0x10]
and rax, r15
mov byte [rdi + r14], r13b
mov byte [rax + rdi + 0x10], r13b
mov rax, qword [rsi]
not r12
lea r10, [r12 + r12*2]
shl r10, 4
not r14
lea r14, [r14 + r14*2]
shl r14, 4
movdqu xmm0, xmmword [rax + r10]
movups xmm1, xmmword [rax + r10 + 0x10]
movups xmm2, xmmword [rax + r10 + 0x20]
movups xmmword [rdi + r14 + 0x20], xmm2
movups xmmword [rdi + r14 + 0x10], xmm1
movdqu xmmword [rdi + r14], xmm0
mov r10d, r11d
test rbx, rbx
jne 0x140147ec1
mov rax, qword [rsi + 0x18]
lea rdx, [rsp + 0x68]
mov r13, qword [rsp + 0x28]
jmp 0x1401481f0
movdqu xmm0, xmmword [rdx]
movdqu xmmword [rdx + r8], xmm0
movabs rax, 0xcbf29ce484222325
movabs rcx, 0x100000001b3
xor edx, edx
xor r9d, r9d
mov qword [rsp + 0x28], rdi
mov r10, qword [rsi]
cmp byte [r10 + r9], 0x80
jne 0x14014819e
mov r8, r9
not r8
lea r11, [r8 + r8*2]
shl r11, 4
add r11, r10
mov rbx, r9
neg rbx
lea r14, [r10 + rdx]
lea r8, [rbx + rbx*2]
shl r8, 4
mov r8, qword [r10 + r8 - 0x30]
mov qword [rsp + 0x50], r8
mov r15, rax
xor r8d, r8d
movzx edi, byte [rsp + r8 + 0x50]
inc r8
xor r15, rdi
imul r15, rcx
cmp r8, 8
jne 0x140148056
mov r12, qword [rsi + 8]
mov r8, r12
and r8, r15
movdqu xmm0, xmmword [r10 + r8]
pmovmskb ebp, xmm0
mov r13, r8
test ebp, ebp
jne 0x1401480a7
mov edi, 0x10
mov r13, r8
add r13, rdi
and r13, r12
movdqu xmm0, xmmword [r10 + r13]
pmovmskb ebp, xmm0
add rdi, 0x10
test ebp, ebp
je 0x14014808f
bsf ebp, ebp
add rbp, r13
and rbp, r12
cmp byte [r10 + rbp], 0
js 0x1401480c3
movdqa xmm0, xmmword [r10]
pmovmskb edi, xmm0
bsf ebp, edi
mov rdi, r9
sub rdi, r8
mov r13, rbp
sub r13, r8
xor r13, rdi
and r13, r12
cmp r13, 0x10
jb 0x140148132
mov r8b, byte [r10 + rbp]
shr r15, 0x39
lea rdi, [rbp - 0x10]
and rdi, r12
mov byte [r10 + rbp], r15b
mov r12, qword [rsi]
mov byte [rdi + r12 + 0x10], r15b
cmp r8b, 0xff
je 0x14014814b
shl rbp, 4
lea r8, [rbp*2]
add r8, rbp
sub r10, r8
mov r8, 0xffffffffffffffd0
mov dil, byte [r14 + r8]
mov bpl, byte [r10 + r8]
mov byte [r14 + r8], bpl
mov byte [r10 + r8], dil
inc r8
jne 0x140148115
mov r10, qword [rsi]
jmp 0x14014803e
shr r15, 0x39
lea r8, [r9 - 0x10]
and r12, r8
mov byte [r10 + r9], r15b
mov r8, qword [rsi]
mov byte [r12 + r8 + 0x10], r15b
jmp 0x140148199
not rbp
lea r8, [rbp*2]
add r8, rbp
shl r8, 4
add r10, r8
lea r8, [r9 - 0x10]
and r8, qword [rsi + 8]
mov rdi, qword [rsi]
mov bl, 0xff
mov byte [rdi + r9], bl
mov rdi, qword [rsi]
mov byte [r8 + rdi + 0x10], bl
movdqu xmm0, xmmword [r11]
movdqu xmm1, xmmword [r11 + 0x10]
movups xmm2, xmmword [r11 + 0x20]
movups xmmword [r10 + 0x20], xmm2
movdqu xmmword [r10 + 0x10], xmm1
movdqu xmmword [r10], xmm0
mov rdi, qword [rsp + 0x28]
lea r8, [r9 + 1]
add rdx, 0xffffffffffffffd0
cmp r9, rdi
mov r9, r8
jne 0x140148015
mov rcx, qword [rsi + 8]
mov rbx, qword [rsi + 0x18]
lea rax, [rcx + 1]
mov rdx, rax
shr rdx, 3
and rax, 0xfffffffffffffff8
sub rax, rdx
cmp rcx, 8
cmovb rax, rcx
sub rax, rbx
movabs rdi, 0x8000000000000001
mov qword [rsi + 0x10], rax
jmp 0x140148243
mov rdi, qword [rsp + 0x38]
jmp 0x140148243
xor eax, eax
movabs rdi, 0x8000000000000001
sub r13, rax
lea rcx, [rsp + 0x50]
mov qword [rcx + 0x28], r13
mov qword [rcx + 0x30], rax
movups xmm0, xmmword [rsi]
movups xmm1, xmmword [rsi + 0x10]
movaps xmmword [rsp + 0x40], xmm1
movaps xmmword [rsp + 0x30], xmm0
movups xmm0, xmmword [rdx]
movups xmm1, xmmword [rdx + 0x10]
movups xmmword [rsi + 0x10], xmm1
movups xmmword [rsi], xmm0
movdqa xmm0, xmmword [rsp + 0x30]
movdqa xmm1, xmmword [rsp + 0x40]
movdqu xmmword [rdx + 0x10], xmm1
movdqu xmmword [rdx], xmm0
call fcn.14008b614
mov rax, rdi
add rsp, 0x88
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
call fcn.1400b2b70
int3