Function at 0x14006f9d0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rsi
push rdi
push rbx
sub rsp, 0x178
lea rbp, [rsp + 0x80]
vmovdqa xmmword [rbp + 0xe0], xmm15
vmovdqa xmmword [rbp + 0xd0], xmm14
vmovdqa xmmword [rbp + 0xc0], xmm13
vmovdqa xmmword [rbp + 0xb0], xmm12
vmovdqa xmmword [rbp + 0xa0], xmm11
vmovdqa xmmword [rbp + 0x90], xmm10
vmovdqa xmmword [rbp + 0x80], xmm9
vmovdqa xmmword [rbp + 0x70], xmm8
vmovdqa xmmword [rbp + 0x60], xmm7
vmovaps xmmword [rbp + 0x50], xmm6
and rsp, 0xffffffffffffffe0
mov rdi, rdx
mov rsi, rcx
movzx eax, byte [rcx]
nop word [rax + rax]
mov ecx, dword [0x141dca9f8]
imul ecx, dword [0x141dca9fc]
add ecx, 0xc3b3bafc
shr ecx, 2
imul rcx, rcx, 0x410c9beb
shr rcx, 0x3b
add ecx, 0x8a5f35fe
cmp ecx, 0x3b7143da
jb 0x14006fa40
test al, al
je 0x14006fc51
vmovdqa ymm2, ymmword [rsi + 0xe0]
vmovdqa ymm0, ymmword [rsi + 0x100]
vpbroadcastq ymm3, qword [rsi + 0xa0]
vmovdqa ymm1, ymmword [rsi + 0x120]
vpbroadcastq ymm6, qword [rsi + 0xa8]
vpmuludq ymm5, ymm0, ymm3
vpmuludq ymm7, ymm1, ymm3
vpmuludq ymm8, ymm2, ymm6
vpmuludq ymm9, ymm0, ymm6
vpshufd ymm4, ymm3, 0xf5
vpshufd ymm10, ymm6, 0xf5
vpmuludq ymm11, ymm4, ymm2
vpaddq ymm11, ymm11, ymm5
vpmuludq ymm12, ymm4, ymm0
vpmuludq ymm5, ymm10, ymm2
vpaddq ymm5, ymm9, ymm5
vpbroadcastq ymm9, qword [rsi + 0xb0]
vpmuludq ymm10, ymm10, ymm0
vpmuludq ymm13, ymm9, ymm2
vpaddq ymm7, ymm13, ymm7
vpaddq ymm7, ymm10, ymm7
vpshufd ymm10, ymm2, 0xf5
vpshufd ymm13, ymm0, 0xf5
vpshufd ymm9, ymm9, 0xf5
vpmuludq ymm14, ymm13, ymm9
vpmuludq ymm9, ymm9, ymm1
vpmuludq ymm15, ymm13, ymm4
vpmuludq ymm6, ymm10, ymm6
vpaddq ymm6, ymm15, ymm6
vpaddq ymm6, ymm7, ymm6
vpbroadcastq ymm7, qword [rsi + 0xb8]
vpmuludq ymm15, ymm10, ymm7
vpaddq ymm14, ymm15, ymm14
vpmuludq ymm15, ymm1, ymm7
vpaddq ymm8, ymm8, ymm15
vpaddq ymm8, ymm12, ymm8
vpshufd ymm12, ymm7, 0xf5
vpmuludq ymm15, ymm10, ymm12
vpaddq ymm9, ymm9, ymm15
vpaddq ymm9, ymm11, ymm9
vpmuludq ymm7, ymm13, ymm7
vpaddq ymm7, ymm9, ymm7
vpmuludq ymm2, ymm2, ymm3
vpmuludq ymm4, ymm10, ymm4
vpmuludq ymm9, ymm10, ymm3
vpmuludq ymm3, ymm13, ymm3
vpmuludq ymm10, ymm13, ymm12
vpaddq ymm9, ymm9, ymm10
vpaddq ymm8, ymm8, ymm9
vpmuludq ymm9, ymm12, ymm1
vpaddq ymm4, ymm9, ymm4
vpaddq ymm4, ymm5, ymm4
vpaddq ymm3, ymm4, ymm3
vpmuludq ymm0, ymm12, ymm0
vpmuludq ymm1, ymm1, ymmword [rsi + 0xc0]
vpaddq ymm1, ymm2, ymm1
vpaddq ymm0, ymm0, ymm1
vpaddq ymm0, ymm14, ymm0
vpsrlq ymm1, ymm0, 0x1a
vpaddq ymm1, ymm7, ymm1
vpsrlq ymm2, ymm3, 0x1a
vpaddq ymm2, ymm6, ymm2
vpsrlq ymm4, ymm1, 0x1a
vpaddq ymm4, ymm8, ymm4
vpsrlq ymm5, ymm2, 0x1a
vpxor xmm6, xmm6, xmm6
vpblendd ymm5, ymm5, ymm6, 0xaa
vpbroadcastq ymm6, qword [0x140102b40]
vpand ymm0, ymm0, ymm6
vpaddq ymm0, ymm5, ymm0
vpsllq ymm5, ymm5, 2
vpaddq ymm0, ymm5, ymm0
vpand ymm3, ymm3, ymm6
vpand ymm1, ymm1, ymm6
vpand ymm2, ymm2, ymm6
vpsrlq ymm5, ymm4, 0x1a
vpaddq ymm3, ymm5, ymm3
vpsrlq ymm5, ymm0, 0x1a
vpaddq ymm1, ymm5, ymm1
vpsrlq ymm5, ymm3, 0x1a
vpaddq ymm2, ymm5, ymm2
vpsllq ymm4, ymm4, 0x20
vpblendd ymm0, ymm0, ymm4, 0xaa
vpbroadcastd ymm4, dword [0x140102c90]
vpand ymm0, ymm0, ymm4
vpsllq ymm3, ymm3, 0x20
vpand ymm3, ymm3, ymm4
vpaddd ymm0, ymm0, ymmword [rdi]
vpblendd ymm1, ymm1, ymm3, 0xaa
vmovdqa ymmword [rsi + 0xe0], ymm0
vpaddd ymm0, ymm1, ymmword [rdi + 0x20]
vmovdqa ymmword [rsi + 0x100], ymm0
vpaddd ymm0, ymm2, ymmword [rdi + 0x40]
vmovdqa ymmword [rsi + 0x120], ymm0
jmp 0x14006fec0
lea r8, [rsi + 0x160]
lea rbx, [rsi + 0x1a0]
vmovaps ymm0, ymmword [rsi + 0x1a0]
vmovaps ymmword [rsp + 0xa0], ymm0
lea rcx, [rsp + 0x20]
mov rdx, rbx
vzeroupper
call fcn.14006d460
vmovdqa ymm0, ymmword [rsp + 0x20]
vmovdqa ymm2, ymmword [0x1401029a0]
vpand ymm1, ymm0, ymm2
vmovdqa ymm4, ymm2
vmovdqa ymm2, ymmword [0x1401029c0]
vpsrlvq ymm0, ymm0, ymm2
vmovdqa ymm5, ymm2
vpermq ymm0, ymm0, 0x93
vpaddq ymm0, ymm0, ymm1
vpsrlq ymm1, ymm0, 0x1a
vpermq ymm1, ymm1, 0x93
vpaddq ymm1, ymm1, ymmword [rsp + 0x40]
vpand ymm0, ymm0, ymmword [0x1401029e0]
vpsrlvq ymm2, ymm1, ymmword [0x140102a00]
vpsllq ymm3, ymm2, 2
vpaddq ymm0, ymm0, ymm2
vpaddq ymm0, ymm0, ymm3
mov eax, 0x3ffffff
vmovq xmm6, rax
vpand ymm2, ymm0, ymm4
vpsrlvq ymm0, ymm0, ymm5
vpermq ymm0, ymm0, 0x93
vpaddq ymm0, ymm2, ymm0
vpsrlq ymm2, ymm0, 0x1a
vpermq ymm2, ymm2, 0xff
vpand ymm0, ymm0, ymmword [0x140102ca0]
vpand xmm1, xmm1, xmm6
vpaddq xmm1, xmm2, xmm1
vpbroadcastd ymm1, xmm1
vshufps ymm0, ymm0, ymm1, 0xc8
vpermpd ymm0, ymm0, 0xf8
vmovaps ymmword [rsp + 0x80], ymm0
lea rcx, [rsp + 0x20]
mov rdx, rbx
mov r8, rbx
vzeroupper
call fcn.14006d460
vmovdqa ymm0, ymmword [rsp + 0x20]
vmovdqa ymm4, ymmword [0x1401029a0]
vpand ymm1, ymm0, ymm4
vmovdqa ymm5, ymmword [0x1401029c0]
vpsrlvq ymm0, ymm0, ymm5
vpermq ymm0, ymm0, 0x93
vpaddq ymm0, ymm0, ymm1
vpsrlq ymm1, ymm0, 0x1a
vpermq ymm1, ymm1, 0x93
vpaddq ymm1, ymm1, ymmword [rsp + 0x40]
vpand ymm0, ymm0, ymmword [0x1401029e0]
vpsrlvq ymm2, ymm1, ymmword [0x140102a00]
vpsllq ymm3, ymm2, 2
vpaddq ymm0, ymm0, ymm2
vpaddq ymm0, ymm0, ymm3
vpand ymm2, ymm0, ymm4
vpsrlvq ymm0, ymm0, ymm5
vpermq ymm0, ymm0, 0x93
vpaddq ymm0, ymm2, ymm0
vpsrlq ymm2, ymm0, 0x1a
vpermq ymm2, ymm2, 0xff
vpand ymm0, ymm0, ymmword [0x140102ca0]
vpand xmm1, xmm1, xmm6
vpaddq xmm1, xmm2, xmm1
vpbroadcastd ymm1, xmm1
vpshufd ymm0, ymm0, 0x28
vpermq ymm0, ymm0, 0xf8
vpblendd ymm0, ymm0, ymm1, 0x90
vbroadcasti128 ymm1, xmmword [0x140102cc0]
vmovdqa ymm3, ymmword [rsp + 0xa0]
vpermd ymm1, ymm1, ymm3
vpblendd ymm1, ymm1, ymmword [rsp + 0x80], 0x1f
vbroadcasti128 ymm2, xmmword [0x140102cd0]
vpermd ymm2, ymm2, ymm3
vpblendd ymm2, ymm0, ymm2, 0xe0
vpslld ymm3, ymm0, 2
vpaddd ymm3, ymm0, ymm3
vmovdqa ymm4, ymmword [0x140102ce0]
vpermd ymm3, ymm4, ymm3
vpblendd ymm0, ymm0, ymm3, 0xe0
vpbroadcastq ymm3, xmm3
vmovaps ymm4, ymmword [rdi]
vmovaps ymm5, ymmword [rdi + 0x20]
vmovaps ymm6, ymmword [rdi + 0x40]
vmovaps ymmword [rsi + 0x120], ymm6
vmovaps ymmword [rsi + 0x100], ymm5
vmovaps ymmword [rsi + 0xe0], ymm4
vmovups ymm4, ymmword [rsi + 0x160]
vmovups ymm5, ymmword [rsi + 0x180]
vmovups ymmword [rsp + 0x5f], ymm5
vmovups ymmword [rsp + 0x3f], ymm4
mov byte [rsi], 1
vmovdqu ymm4, ymmword [rsp + 0x20]
vmovdqu ymm5, ymmword [rsp + 0x40]
vmovdqu ymm6, ymmword [rsp + 0x5f]
vmovdqu ymmword [rsi + 1], ymm4
vmovdqu ymmword [rsi + 0x21], ymm5
vmovdqu ymmword [rsi + 0x40], ymm6
vmovdqa ymmword [rsi + 0x60], ymm1
vmovdqa ymmword [rsi + 0x80], ymm2
vmovdqa ymmword [rsi + 0xa0], ymm0
vmovdqa ymmword [rsi + 0xc0], ymm3
nop word [rax + rax]
mov eax, dword [0x141dcaa00]
xor edx, edx
div dword [0x141dcaa04]
imul eax, eax, 0xadc86ee6
xor eax, 0xd3d0d5e5
imul eax, eax, 0x325ce5db
cmp eax, 0xd8182bf7
ja 0x14006fec0
vmovaps xmm6, xmmword [rbp + 0x50]
vmovaps xmm7, xmmword [rbp + 0x60]
vmovaps xmm8, xmmword [rbp + 0x70]
vmovaps xmm9, xmmword [rbp + 0x80]
vmovaps xmm10, xmmword [rbp + 0x90]
vmovaps xmm11, xmmword [rbp + 0xa0]
vmovaps xmm12, xmmword [rbp + 0xb0]
vmovaps xmm13, xmmword [rbp + 0xc0]
vmovaps xmm14, xmmword [rbp + 0xd0]
vmovaps xmm15, xmmword [rbp + 0xe0]
lea rsp, [rbp + 0xf8]
pop rbx
pop rdi
pop rsi
pop rbp
vzeroupper
ret