Function at 0x1019f8b0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffe0
sub esp, 0x78
vmovdqu ymm0, ymmword [0x10842d20]
vmovdqa xmm5, xmmword [0x10842c10]
vmovdqa xmm6, xmmword [0x10842c00]
or eax, 0xffffffff
mov ecx, 6
push esi
mov esi, dword [ebp + 0x1c]
shlx edx, eax, esi
push edi
mov dword [esp + 0x34], ecx
mov edi, ecx
mov ecx, dword [ebp + 0x20]
sub edi, esi
sub dword [esp + 0x34], ecx
shl ax, cl
cwde
vmovdqu ymmword [esp + 0x60], ymm0
vmovd xmm0, eax
movsx eax, word [ebp + 0x28]
vpbroadcastw xmm7, xmm0
vmovd xmm0, eax
xor eax, eax
mov dword [esp + 0x30], edx
vpbroadcastw xmm0, xmm0
mov dword [esp + 0x3c], edi
vmovdqa xmmword [esp + 0x50], xmm7
vmovdqa xmmword [esp + 0x40], xmm0
mov dword [esp + 0x2c], eax
cmp dword [ebp + 8], eax
jle 0x1019fc63
lea ecx, [edx - 1]
mov dword [esp + 0x38], ecx
nop dword [eax]
not eax
xor edx, edx
imul eax, dword [ebp + 0x24]
sarx edi, eax, edi
mov ecx, edi
neg ecx
cmp edi, dword [esp + 0x38]
jge 0x1019f963
mov eax, dword [esp + 0x30]
dec eax
add eax, ecx
sarx edx, eax, esi
mov eax, dword [esp + 0x30]
add eax, ecx
add eax, esi
sarx eax, eax, esi
cmp eax, 8
jle 0x1019f97c
mov eax, 8
jmp 0x1019f983
xor ecx, ecx
test eax, eax
cmovs eax, ecx
cmp edx, 7
jle 0x1019f999
vpxor xmm2, xmm2, xmm2
vpxor xmm3, xmm3, xmm3
vpxor xmm4, xmm4, xmm4
jmp 0x1019fa1b
lea ecx, [edx + edi]
shl edx, 4
add ecx, dword [ebp + 0x14]
vmovdqu xmm2, xmmword [ecx]
mov ecx, dword [esp + 0x2c]
inc ecx
imul ecx, dword [ebp + 0x24]
movsx ecx, cx
vmovd xmm0, ecx
vpbroadcastw xmm4, xmm0
vpsrldq xmm0, xmm6, 2
vpsllw xmm6, xmm0, 6
test esi, esi
je 0x1019f9e5
vpshufb xmm2, xmm2, xmmword [edx + 0x10a72480]
vpsubw xmm1, xmm6, xmm4
vmovd xmm0, esi
vpsrldq xmm3, xmm2, 8
vpsllw xmm0, xmm1, xmm0
jmp 0x1019fa00
vmovdqu xmm0, xmmword [edx + 0x10a72500]
vpsrldq xmm1, xmm2, 1
vpshufb xmm2, xmm2, xmm0
vpshufb xmm3, xmm1, xmm0
vpsubw xmm0, xmm6, xmm4
vmovdqa xmm6, xmmword [0x10842c00]
vpand xmm0, xmm0, xmm5
vpsrlw xmm4, xmm0, 1
vpmovzxbw xmm2, xmm2
vpmovzxbw xmm3, xmm3
cmp edi, dword [esp + 0x30]
jge 0x1019fbfa
mov ecx, dword [esp + 0x2c]
shl ecx, 6
movsx ecx, cx
vmovd xmm0, ecx
mov edx, dword [ebp + 0x18]
vpbroadcastw xmm1, xmm0
vpmullw xmm0, xmm6, xmmword [esp + 0x40]
vpsubw xmm6, xmm1, xmm0
vmovd xmm0, dword [esp + 0x34]
vpsraw xmm1, xmm6, xmm0
vpcmpgtw xmm0, xmm7, xmm1
vpandn xmm1, xmm0, xmm1
vmovd ecx, xmm1
movsx ecx, cx
movzx ecx, byte [ecx + edx]
mov word [esp + 0x22], cx
vpextrw ecx, xmm1, 1
movsx ecx, cx
movzx ecx, byte [ecx + edx]
mov word [esp + 0x24], cx
vpextrw ecx, xmm1, 2
movsx ecx, cx
movzx ecx, byte [ecx + edx]
mov word [esp + 0x26], cx
vpextrw ecx, xmm1, 3
movsx ecx, cx
movzx ecx, byte [ecx + edx]
mov word [esp + 0x28], cx
vpextrw ecx, xmm1, 4
movsx ecx, cx
movzx ecx, byte [ecx + edx]
mov word [esp + 0x2a], cx
vpextrw ecx, xmm1, 5
movsx ecx, cx
movzx edi, byte [ecx + edx]
vpextrw ecx, xmm1, 6
movsx ecx, cx
movzx esi, byte [ecx + edx]
vpextrw ecx, xmm1, 7
movsx ecx, cx
movzx edx, byte [ecx + edx]
movzx ecx, word [esp + 0x22]
vmovd xmm0, ecx
vpinsrw xmm0, xmm0, word [esp + 0x24], 1
vpinsrw xmm0, xmm0, word [esp + 0x26], 2
vpinsrw xmm0, xmm0, word [esp + 0x28], 3
vpinsrw xmm0, xmm0, word [esp + 0x2a], 4
vpinsrw xmm0, xmm0, edi, 5
vpinsrw xmm0, xmm0, esi, 6
vpinsrw xmm7, xmm0, edx, 7
vmovdqa xmm0, xmmword [esp + 0x60]
mov edx, dword [ebp + 0x18]
vpsrlw xmm0, xmm0, 4
vpaddw xmm0, xmm0, xmm1
vmovd ecx, xmm0
movsx ecx, cx
movzx ecx, byte [ecx + edx]
mov word [esp + 0x2a], cx
vpextrw ecx, xmm0, 1
movsx ecx, cx
movzx ecx, byte [ecx + edx]
mov word [esp + 0x28], cx
vpextrw ecx, xmm0, 2
movsx ecx, cx
movzx ecx, byte [ecx + edx]
mov word [esp + 0x26], cx
vpextrw ecx, xmm0, 3
movsx ecx, cx
movzx ecx, byte [ecx + edx]
mov word [esp + 0x24], cx
vpextrw ecx, xmm0, 4
movsx ecx, cx
movzx ecx, byte [ecx + edx]
mov word [esp + 0x22], cx
vpextrw ecx, xmm0, 5
movsx ecx, cx
movzx edi, byte [ecx + edx]
vpextrw ecx, xmm0, 6
movsx ecx, cx
movzx esi, byte [ecx + edx]
vpextrw ecx, xmm0, 7
movsx ecx, cx
movzx edx, byte [ecx + edx]
movzx ecx, word [esp + 0x2a]
vmovd xmm0, ecx
vpinsrw xmm0, xmm0, word [esp + 0x28], 1
vpinsrw xmm0, xmm0, word [esp + 0x26], 2
vpinsrw xmm0, xmm0, word [esp + 0x24], 3
vpinsrw xmm0, xmm0, word [esp + 0x22], 4
mov ecx, dword [ebp + 0x20]
vpinsrw xmm0, xmm0, edi, 5
vpinsrw xmm0, xmm0, esi, 6
vpinsrw xmm1, xmm0, edx, 7
test ecx, ecx
je 0x1019fbd6
vmovd xmm0, ecx
vpsllw xmm0, xmm6, xmm0
vpand xmm0, xmm0, xmm5
jmp 0x1019fbda
vpand xmm0, xmm6, xmm5
mov esi, dword [ebp + 0x1c]
vpsrlw xmm0, xmm0, 1
vinserti128 ymm2, ymm2, xmm7, 1
vmovdqa xmm7, xmmword [esp + 0x50]
vinserti128 ymm3, ymm3, xmm1, 1
vinserti128 ymm4, ymm4, xmm0, 1
vmovdqa xmm6, xmmword [0x10842c00]
mov edi, dword [esp + 0x3c]
vpsllw ymm0, ymm2, 5
vpaddw ymm1, ymm0, ymmword [0x10842d20]
shl eax, 5
vpsubw ymm0, ymm3, ymm2
vpmullw ymm0, ymm0, ymm4
add eax, 0x10a72ae0
vpaddw ymm0, ymm0, ymm1
vpsrlw ymm3, ymm0, 5
vextracti128 xmm0, ymm3, 1
vmovdqu xmm2, xmmword [eax]
mov eax, dword [ebp + 0xc]
vpackuswb xmm1, xmm0, xmm0
vpackuswb xmm0, xmm3, xmm3
vpblendvb xmm0, xmm0, xmm1, xmm2
vmovq qword [eax], xmm0
add eax, dword [ebp + 0x10]
mov dword [ebp + 0xc], eax
mov eax, dword [esp + 0x2c]
inc eax
mov dword [esp + 0x2c], eax
cmp eax, dword [ebp + 8]
jl 0x1019f940
vzeroupper
pop edi
pop esi
mov esp, ebp
pop ebp
ret