Function at 0x14006e0a0
Capabilities:
Encode data using xor

Disassembly:
push rdi
push rbx
sub rsp, 0x118
vmovups xmmword [rsp + 0xb0], xmm6
vmovups xmmword [rsp + 0xc0], xmm7
vmovups xmmword [rsp + 0xd0], xmm8
vmovups xmmword [rsp + 0xe0], xmm9
vmovups xmmword [rsp + 0xf0], xmm10
vmovups xmmword [rsp + 0x100], xmm11
vmovdqu xmm5, xmmword [0x140560db0]
xor eax, eax
mov r10, rcx
mov rbx, r8
lea r8, [rsp + 0x30]
mov ecx, 0x10
vmovdqu xmm9, xmmword [r10]
vmovdqu xmm11, xmmword [r10 + 0x10]
mov rdi, r8
mov r9, rdx
rep stosq qword [rdi], rax
mov rdx, r8
lea r11, [rsp + 0xb0]
vpsrlw xmm0, xmm9, 4
vpand xmm6, xmm9, xmm5
vpand xmm1, xmm5, xmm0
vpsrlw xmm0, xmm11, 4
vpand xmm11, xmm5, xmmword [r10 + 0x10]
vpmovzxbw xmm4, xmm1
vpsrldq xmm2, xmm1, 8
vpand xmm1, xmm5, xmm0
vpsrldq xmm8, xmm6, 8
vpmovzxbw xmm7, xmm6
vpmovzxbw xmm3, xmm2
vpmovzxbw xmm10, xmm8
vpsrldq xmm6, xmm1, 8
vpmovzxbw xmm5, xmm11
vpsrldq xmm0, xmm11, 8
vpunpcklwd xmm8, xmm4, xmm7
vpunpckhwd xmm2, xmm3, xmm10
vpunpckhwd xmm4, xmm4, xmm7
vpunpcklwd xmm7, xmm3, xmm10
vpmovzxbw xmm3, xmm1
vpmovzxbw xmm10, xmm6
vpmovzxbw xmm1, xmm0
vpunpcklwd xmm6, xmm3, xmm5
vpunpckhwd xmm3, xmm3, xmm5
vpunpcklwd xmm5, xmm10, xmm1
vpunpckhwd xmm1, xmm10, xmm1
vpmullw xmm11, xmm7, xmmword [r9 + 0x20]
vpmullw xmm10, xmm2, xmmword [r9 + 0x30]
vpaddw xmm0, xmm11, xmm10
vpmullw xmm11, xmm4, xmmword [r9 + 0x10]
vpmullw xmm10, xmm8, xmmword [r9]
vpaddw xmm10, xmm10, xmm11
add rdx, 4
vpmullw xmm11, xmm3, xmmword [r9 + 0x50]
vpaddw xmm0, xmm0, xmm10
vpmullw xmm10, xmm6, xmmword [r9 + 0x40]
vpaddw xmm10, xmm10, xmm11
vpmullw xmm11, xmm5, xmmword [r9 + 0x60]
vpaddw xmm0, xmm0, xmm10
vpmullw xmm10, xmm1, xmmword [r9 + 0x70]
vpaddw xmm10, xmm10, xmm11
add r9, 0x100
vpaddw xmm0, xmm0, xmm10
vpsrldq xmm11, xmm0, 8
vpaddw xmm0, xmm0, xmm11
vpsrldq xmm10, xmm0, 4
vpaddw xmm11, xmm0, xmm10
vpsrldq xmm0, xmm11, 2
vpaddw xmm10, xmm11, xmm0
vpmullw xmm11, xmm7, xmmword [r9 - 0x60]
vpmullw xmm0, xmm2, xmmword [r9 - 0x50]
vpaddw xmm0, xmm11, xmm0
vpextrw ecx, xmm10, 0
vpmullw xmm11, xmm4, xmmword [r9 - 0x70]
vpmullw xmm10, xmm8, xmmword [r9 - 0x80]
vpaddw xmm10, xmm10, xmm11
vpaddw xmm0, xmm0, xmm10
vpmullw xmm11, xmm3, xmmword [r9 - 0x30]
vpmullw xmm10, xmm6, xmmword [r9 - 0x40]
vpaddw xmm10, xmm10, xmm11
vpaddw xmm0, xmm0, xmm10
vpmullw xmm11, xmm5, xmmword [r9 - 0x20]
vpmullw xmm10, xmm1, xmmword [r9 - 0x10]
vpaddw xmm10, xmm10, xmm11
vpaddw xmm0, xmm0, xmm10
shr cx, 0xa
vpsrldq xmm11, xmm0, 8
mov word [rdx - 4], cx
vpaddw xmm0, xmm0, xmm11
vpsrldq xmm10, xmm0, 4
vpaddw xmm11, xmm0, xmm10
vpsrldq xmm0, xmm11, 2
vpaddw xmm10, xmm11, xmm0
vpextrw eax, xmm10, 0
shr ax, 0xa
mov word [rdx - 2], ax
cmp r11, rdx
jne 0x14006e195
lea rdi, [r10 + 1]
mov r9, rbx
sub r9, rdi
cmp r9, 0xe
jbe 0x14006e490
mov r8d, 0xffff
vmovdqu xmm1, xmmword [0x140560dc0]
vmovd xmm8, r8d
vpshufd xmm2, xmm8, 0
vpand xmm4, xmm2, xmmword [rsp + 0x30]
vpand xmm7, xmm2, xmmword [rsp + 0x40]
vpand xmm3, xmm2, xmmword [rsp + 0x50]
vpand xmm5, xmm2, xmmword [rsp + 0x60]
vpackusdw xmm6, xmm4, xmm7
vpackusdw xmm11, xmm3, xmm5
vpand xmm0, xmm1, xmm6
vmovdqu xmm3, xmmword [rsp + 0x30]
vpand xmm10, xmm1, xmm11
vpackuswb xmm8, xmm0, xmm10
vmovdqu xmm0, xmmword [rsp + 0x40]
vpsrld xmm5, xmm3, 0x10
vpaddb xmm4, xmm8, xmm8
vpaddb xmm7, xmm4, xmm4
vmovdqu xmm4, xmmword [rsp + 0x50]
vpsrld xmm10, xmm0, 0x10
vpaddb xmm6, xmm7, xmm7
vpackusdw xmm8, xmm5, xmm10
vpaddb xmm11, xmm6, xmm6
vmovdqu xmm6, xmmword [rsp + 0x60]
vpsrld xmm7, xmm4, 0x10
vpand xmm0, xmm1, xmm8
vpand xmm4, xmm2, xmmword [rsp + 0x70]
vpsrld xmm3, xmm6, 0x10
vpackusdw xmm5, xmm7, xmm3
vpand xmm7, xmm2, xmmword [rsp + 0x80]
vpand xmm3, xmm2, xmmword [rsp + 0x90]
vpand xmm2, xmm2, xmmword [rsp + 0xa0]
vpand xmm10, xmm1, xmm5
vpackusdw xmm6, xmm4, xmm7
vpackuswb xmm8, xmm0, xmm10
vmovdqu xmm7, xmmword [rsp + 0x70]
vpackusdw xmm5, xmm3, xmm2
vpand xmm0, xmm1, xmm6
vpor xmm11, xmm11, xmm8
vmovdqu xmm6, xmmword [rsp + 0x80]
vpand xmm10, xmm1, xmm5
vpsrld xmm2, xmm7, 0x10
vpxor xmm9, xmm11, xmm9
vpackuswb xmm8, xmm0, xmm10
vmovdqu xmmword [rbx], xmm9
vpsrld xmm3, xmm6, 0x10
vmovdqu xmm10, xmmword [rsp + 0x90]
vpaddb xmm11, xmm8, xmm8
vpackusdw xmm0, xmm2, xmm3
vpaddb xmm9, xmm11, xmm11
vpsrld xmm8, xmm10, 0x10
vpand xmm7, xmm1, xmm0
vmovdqu xmm11, xmmword [rsp + 0xa0]
vpaddb xmm4, xmm9, xmm9
vpsrld xmm9, xmm11, 0x10
vpaddb xmm5, xmm4, xmm4
vpackusdw xmm4, xmm8, xmm9
vpand xmm1, xmm1, xmm4
vpackuswb xmm2, xmm7, xmm1
vpor xmm5, xmm5, xmm2
vpxor xmm6, xmm5, xmmword [r10 + 0x10]
vmovdqu xmmword [rbx + 0x10], xmm6
mov qword [rsp + 0x20], 0x100
mov r9, rbx
mov edx, 0x20
mov rcx, rbx
lea r8, str.HeavyHash
call fcn.14004ac90
vmovdqu xmm10, xmmword [rbx + 0x10]
vmovdqu xmm3, xmmword [rbx]
vmovdqu xmm0, xmmword [0x140560dd0]
vpshufb xmm8, xmm10, xmm0
vpshufb xmm11, xmm3, xmm0
vmovdqu xmmword [rbx], xmm8
vmovdqu xmmword [rbx + 0x10], xmm11
vmovups xmm6, xmmword [rsp + 0xb0]
vmovups xmm7, xmmword [rsp + 0xc0]
vmovups xmm8, xmmword [rsp + 0xd0]
vmovups xmm9, xmmword [rsp + 0xe0]
vmovups xmm10, xmmword [rsp + 0xf0]
vmovups xmm11, xmmword [rsp + 0x100]
add rsp, 0x118
pop rbx
pop rdi
ret
xor r11d, r11d
lea rcx, [r11 + 1]
movzx edx, byte [r8 + r11*4]
lea rdi, [r11 + 2]
movzx eax, byte [r8 + rcx*4]
movzx r9d, byte [r8 + rdi*4]
shl edx, 4
or dl, byte [r8 + r11*4 + 2]
xor dl, byte [r10 + r11]
mov byte [rbx + r11], dl
shl eax, 4
or al, byte [r8 + rcx*4 + 2]
lea rcx, [r11 + 3]
xor al, byte [r10 + r11 + 1]
movzx edx, byte [r8 + rcx*4]
shl r9d, 4
mov byte [rbx + r11 + 1], al
lea rax, [r11 + 4]
or r9b, byte [r8 + rdi*4 + 2]
movzx edi, byte [r8 + rax*4]
xor r9b, byte [r10 + r11 + 2]
shl edx, 4
mov byte [rbx + r11 + 2], r9b
or dl, byte [r8 + rcx*4 + 2]
lea r9, [r11 + 5]
xor dl, byte [r10 + r11 + 3]
movzx ecx, byte [r8 + r9*4]
shl edi, 4
mov byte [rbx + r11 + 3], dl
or dil, byte [r8 + rax*4 + 2]
lea rax, [r11 + 6]
xor dil, byte [r10 + r11 + 4]
movzx edx, byte [r8 + rax*4]
shl ecx, 4
mov byte [rbx + r11 + 4], dil
lea rdi, [r11 + 7]
or cl, byte [r8 + r9*4 + 2]
movzx r9d, byte [r8 + rdi*4]
xor cl, byte [r10 + r11 + 5]
shl edx, 4
mov byte [rbx + r11 + 5], cl
or dl, byte [r8 + rax*4 + 2]
xor dl, byte [r10 + r11 + 6]
shl r9d, 4
or r9b, byte [r8 + rdi*4 + 2]
mov byte [rbx + r11 + 6], dl
xor r9b, byte [r10 + r11 + 7]
mov byte [rbx + r11 + 7], r9b
add r11, 8
cmp r11, 0x20
jne 0x14006e493
jmp 0x14006e40c