Function at 0x140042b30
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x578
lea rbp, [rsp + 0x80]
and rsp, 0xffffffffffffffc0
mov rax, qword [rbp + 0x580]
mov r10, qword [rbp + 0x578]
mov r11, qword [rbp + 0x570]
mov rsi, qword [rbp + 0x568]
mov rdi, qword [0x1406a7e00]
xor rdi, rbp
mov qword [rsp + 0x570], rdi
vmovaps zmm0, zmmword [rsi]
vmovaps zmmword [rsp + 0x40], zmm0
vmovaps zmm0, zmmword [r11]
vmovaps zmmword [rsp + 0x80], zmm0
vmovaps zmm0, zmmword [r10]
vmovaps zmmword [rsp + 0xc0], zmm0
vmovaps zmm0, zmmword [rax]
vmovaps zmmword [rsp + 0x100], zmm0
lea edi, [rcx - 1]
test ecx, ecx
jle 0x140042c6d
mov ebx, edi
add r8, rbx
shl rbx, 6
mov r14d, 1
vbroadcastss zmm0, dword [0x1406908dc]
vpternlogd zmm1, zmm1, zmm1, 0xff
movzx r15d, byte [r8]
lea r12d, [r15 - 1]
vcvtsi2ss xmm2, xmm17, r12d
vbroadcastss zmm2, xmm2
vmulps zmm2, zmm2, zmmword [rsp + rbx + 0x40]
vcvttps2dq zmm3, zmm2
vaddps zmm4, zmm2, zmm0
vpaddd zmm4, zmm4, zmm1
vcvttps2dq zmm4, zmm4
vpbroadcastd zmm5, r14d
vpmulld zmm16, zmm5, zmm3
vmovdqa64 zmmword [rsp + rbx + 0x340], zmm16
vpmulld zmm4, zmm5, zmm4
vmovdqa64 zmmword [rsp + rbx + 0x440], zmm4
imul r14d, r15d
vcvtdq2ps zmm3, zmm3
vsubps zmm2, zmm2, zmm3
vsubps zmm3, zmm0, zmm2
vmovaps zmmword [rsp + rbx + 0x140], zmm3
vmovaps zmmword [rsp + rbx + 0x240], zmm2
add rbx, 0xffffffffffffffc0
dec r8
cmp rbx, 0xffffffffffffffc0
jne 0x140042be0
vxorps xmm0, xmm0, xmm0
vmovaps zmmword [r10], zmm0
vmovaps zmmword [r11], zmm0
vmovaps zmmword [rsi], zmm0
cmp edx, 4
jne 0x140042c8e
vmovaps zmmword [rax], zmm0
cmp ecx, 0x1f
jne 0x140042cbb
mov rcx, qword [rsp + 0x570]
xor rcx, rbp
vzeroupper
call fcn.1405602f0
nop
lea rsp, [rbp + 0x4f8]
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov r8, qword [rbp + 0x560]
mov r15d, 1
mov ebx, 1
shl ebx, cl
and edi, 3
lea rcx, [r9 - 1]
mov qword [rsp + 0x38], rcx
lea r14, [r8 - 2]
cmp ebx, 2
cmovl ebx, r15d
vpbroadcastd zmm0, dword [0x14059d538]
xor r15d, r15d
vmovdqa64 zmm1, zmmword [0x14059c840]
vpbroadcastq zmm2, qword [0x14059d620]
vbroadcastss zmm3, dword [0x140599700]
vpbroadcastd zmm4, dword [0x14059d53c]
vmovdqa64 zmm5, zmmword [0x14059c880]
vmovdqa64 zmm16, zmmword [0x14059c7c0]
vbroadcastss zmm17, dword [0x140599704]
vmovdqa64 zmm18, zmmword [0x14059c800]
vmovdqa64 ymm19, ymmword [0x14059d600]
vpbroadcastd zmm20, dword [0x14059d530]
vpbroadcastd zmm21, dword [0x14059d534]
xor r12d, r12d
xor r13d, r13d
jmp 0x140043324
vpslld zmm24, zmm23, 3
vextracti32x4 xmm23, zmm24, 2
vmovd ecx, xmm23
movsxd rcx, ecx
movzx ecx, word [r8 + rcx]
vmovd xmm25, ecx
vpextrd ecx, xmm23, 1
movsxd rcx, ecx
vpinsrw xmm25, xmm25, word [r8 + rcx], 1
vpextrd ecx, xmm23, 2
movsxd rcx, ecx
vpinsrw xmm25, xmm25, word [r8 + rcx], 2
vpextrd ecx, xmm23, 3
movsxd rcx, ecx
vextracti32x4 xmm23, zmm24, 3
vpinsrw xmm25, xmm25, word [r8 + rcx], 3
vmovd ecx, xmm23
movsxd rcx, ecx
vpinsrw xmm25, xmm25, word [r8 + rcx], 4
vpextrd ecx, xmm23, 1
movsxd rcx, ecx
vpinsrw xmm25, xmm25, word [r8 + rcx], 5
vpextrd ecx, xmm23, 2
movsxd rcx, ecx
vpinsrw xmm25, xmm25, word [r8 + rcx], 6
vpextrd ecx, xmm23, 3
movsxd rcx, ecx
vpinsrw xmm23, xmm25, word [r8 + rcx], 7
vmovd ecx, xmm24
movsxd rcx, ecx
movzx ecx, word [r8 + rcx]
vmovd xmm25, ecx
vpextrd ecx, xmm24, 1
movsxd rcx, ecx
vpinsrw xmm25, xmm25, word [r8 + rcx], 1
vpextrd ecx, xmm24, 2
movsxd rcx, ecx
vpinsrw xmm25, xmm25, word [r8 + rcx], 2
vpextrd ecx, xmm24, 3
movsxd rcx, ecx
vextracti32x4 xmm26, ymm24, 1
vpinsrw xmm25, xmm25, word [r8 + rcx], 3
vmovd ecx, xmm26
movsxd rcx, ecx
vpinsrw xmm25, xmm25, word [r8 + rcx], 4
vpextrd ecx, xmm26, 1
movsxd rcx, ecx
vpinsrw xmm25, xmm25, word [r8 + rcx], 5
vpextrd ecx, xmm26, 2
movsxd rcx, ecx
vpinsrw xmm25, xmm25, word [r8 + rcx], 6
vpextrd ecx, xmm26, 3
movsxd rcx, ecx
vpinsrw xmm25, xmm25, word [r8 + rcx], 7
vpord zmm27, zmm24, zmm20
vextracti32x4 xmm26, zmm27, 2
vmovd ecx, xmm26
movsxd rcx, ecx
movzx ecx, word [r8 + rcx]
vmovd xmm28, ecx
vpextrd ecx, xmm26, 1
movsxd rcx, ecx
vpinsrw xmm28, xmm28, word [r8 + rcx], 1
vpextrd ecx, xmm26, 2
movsxd rcx, ecx
vpinsrw xmm28, xmm28, word [r8 + rcx], 2
vpextrd ecx, xmm26, 3
movsxd rcx, ecx
vextracti32x4 xmm26, zmm27, 3
vpinsrw xmm28, xmm28, word [r8 + rcx], 3
vmovd ecx, xmm26
movsxd rcx, ecx
vpinsrw xmm28, xmm28, word [r8 + rcx], 4
vpextrd ecx, xmm26, 1
movsxd rcx, ecx
vpinsrw xmm28, xmm28, word [r8 + rcx], 5
vpextrd ecx, xmm26, 2
movsxd rcx, ecx
vpinsrw xmm28, xmm28, word [r8 + rcx], 6
vpextrd ecx, xmm26, 3
movsxd rcx, ecx
vpinsrw xmm26, xmm28, word [r8 + rcx], 7
vmovd ecx, xmm27
movsxd rcx, ecx
movzx ecx, word [r8 + rcx]
vmovd xmm28, ecx
vpextrd ecx, xmm27, 1
movsxd rcx, ecx
vpinsrw xmm28, xmm28, word [r8 + rcx], 1
vpextrd ecx, xmm27, 2
movsxd rcx, ecx
vpinsrw xmm28, xmm28, word [r8 + rcx], 2
vpextrd ecx, xmm27, 3
movsxd rcx, ecx
vextracti32x4 xmm27, ymm27, 1
vpinsrw xmm28, xmm28, word [r8 + rcx], 3
vmovd ecx, xmm27
movsxd rcx, ecx
vpinsrw xmm28, xmm28, word [r8 + rcx], 4
vpextrd ecx, xmm27, 1
movsxd rcx, ecx
vpinsrw xmm28, xmm28, word [r8 + rcx], 5
vpextrd ecx, xmm27, 2
movsxd rcx, ecx
vpinsrw xmm28, xmm28, word [r8 + rcx], 6
vpextrd ecx, xmm27, 3
movsxd rcx, ecx
vpinsrw xmm27, xmm28, word [r8 + rcx], 7
vpord zmm29, zmm24, zmm21
vextracti32x4 xmm28, zmm29, 2
vmovd ecx, xmm28
movsxd rcx, ecx
movzx ecx, word [r8 + rcx]
vmovd xmm30, ecx
vpextrd ecx, xmm28, 1
movsxd rcx, ecx
vpinsrw xmm30, xmm30, word [r8 + rcx], 1
vpextrd ecx, xmm28, 2
movsxd rcx, ecx
vpinsrw xmm30, xmm30, word [r8 + rcx], 2
vpextrd ecx, xmm28, 3
movsxd rcx, ecx
vextracti32x4 xmm28, zmm29, 3
vpinsrw xmm30, xmm30, word [r8 + rcx], 3
vmovd ecx, xmm28
movsxd rcx, ecx
vpinsrw xmm30, xmm30, word [r8 + rcx], 4
vpextrd ecx, xmm28, 1
movsxd rcx, ecx
vpinsrw xmm30, xmm30, word [r8 + rcx], 5
vpextrd ecx, xmm28, 2
movsxd rcx, ecx
vpinsrw xmm30, xmm30, word [r8 + rcx], 6
vpextrd ecx, xmm28, 3
movsxd rcx, ecx
vpinsrw xmm28, xmm30, word [r8 + rcx], 7
vmovd ecx, xmm29
movsxd rcx, ecx
movzx ecx, word [r8 + rcx]
vmovd xmm30, ecx
vpextrd ecx, xmm29, 1
movsxd rcx, ecx
vpinsrw xmm30, xmm30, word [r8 + rcx], 1
vpextrd ecx, xmm29, 2
movsxd rcx, ecx
vpinsrw xmm30, xmm30, word [r8 + rcx], 2
vpextrd ecx, xmm29, 3
movsxd rcx, ecx
vextracti32x4 xmm29, ymm29, 1
vpinsrw xmm30, xmm30, word [r8 + rcx], 3
vmovd ecx, xmm29
movsxd rcx, ecx
vpinsrw xmm30, xmm30, word [r8 + rcx], 4
vpextrd ecx, xmm29, 1
movsxd rcx, ecx
vpinsrw xmm30, xmm30, word [r8 + rcx], 5
vpextrd ecx, xmm29, 2
movsxd rcx, ecx
vpinsrw xmm30, xmm30, word [r8 + rcx], 6
vpextrd ecx, xmm29, 3
movsxd rcx, ecx
vpinsrw xmm29, xmm30, word [r8 + rcx], 7
vpord zmm24, zmm24, zmm0
vextracti32x4 xmm30, zmm24, 2
vmovd ecx, xmm30
movsxd rcx, ecx
movzx ecx, word [r8 + rcx]
vmovd xmm31, ecx
vpextrd ecx, xmm30, 1
movsxd rcx, ecx
vpinsrw xmm31, xmm31, word [r8 + rcx], 1
vpextrd ecx, xmm30, 2
movsxd rcx, ecx
vpinsrw xmm31, xmm31, word [r8 + rcx], 2
vpextrd ecx, xmm30, 3
movsxd rcx, ecx
vextracti32x4 xmm30, zmm24, 3
vpinsrw xmm31, xmm31, word [r8 + rcx], 3
vmovd ecx, xmm30
movsxd rcx, ecx
vpinsrw xmm31, xmm31, word [r8 + rcx], 4
vpextrd ecx, xmm30, 1
movsxd rcx, ecx
vpinsrw xmm31, xmm31, word [r8 + rcx], 5
vpextrd ecx, xmm30, 2
movsxd rcx, ecx
vpinsrw xmm31, xmm31, word [r8 + rcx], 6
vpextrd ecx, xmm30, 3
movsxd rcx, ecx
vpinsrw xmm30, xmm31, word [r8 + rcx], 7
vmovd ecx, xmm24
movsxd rcx, ecx
movzx ecx, word [r8 + rcx]
vmovd xmm31, ecx
vpextrd ecx, xmm24, 1
movsxd rcx, ecx
vpinsrw xmm31, xmm31, word [r8 + rcx], 1
vpextrd ecx, xmm24, 2
movsxd rcx, ecx
vpinsrw xmm31, xmm31, word [r8 + rcx], 2
vpextrd ecx, xmm24, 3
movsxd rcx, ecx
vextracti32x4 xmm24, ymm24, 1
vpinsrw xmm31, xmm31, word [r8 + rcx], 3
vmovd ecx, xmm24
movsxd rcx, ecx
vpinsrw xmm31, xmm31, word [r8 + rcx], 4
vpextrd ecx, xmm24, 1
movsxd rcx, ecx
vpinsrw xmm31, xmm31, word [r8 + rcx], 5
vpextrd ecx, xmm24, 2
movsxd rcx, ecx
vpinsrw xmm31, xmm31, word [r8 + rcx], 6
vpextrd ecx, xmm24, 3
movsxd rcx, ecx
vpinsrw xmm31, xmm31, word [r8 + rcx], 7
vinserti32x4 ymm23, ymm25, xmm23, 1
vinserti32x4 ymm24, ymm27, xmm26, 1
vinserti32x4 ymm25, ymm29, xmm28, 1
vpshufb ymm23, ymm23, ymm19
vpmovzxwd zmm23, ymm23
vcvtdq2ps zmm23, zmm23
vmulps zmm23, zmm23, zmm3
vpshufb ymm24, ymm24, ymm19
vpmovzxwd zmm24, ymm24
vcvtdq2ps zmm24, zmm24
vmulps zmm24, zmm24, zmm3
vpshufb ymm25, ymm25, ymm19
vpmovzxwd zmm25, ymm25
vcvtdq2ps zmm25, zmm25
vmulps zmm25, zmm25, zmm3
vinserti32x4 ymm26, ymm31, xmm30, 1
vpshufb ymm26, ymm26, ymm19
vpmovzxwd zmm26, ymm26
vcvtdq2ps zmm26, zmm26
vmulps zmm26, zmm26, zmm3
nop dword [rax]
vfmadd213ps zmm23, zmm22, zmmword [rsi]
vmovaps zmmword [rsi], zmm23
vfmadd213ps zmm24, zmm22, zmmword [r11]
vmovaps zmmword [r11], zmm24
vfmadd213ps zmm25, zmm22, zmmword [r10]
vmovaps zmmword [r10], zmm25
vfmadd213ps zmm26, zmm22, zmmword [rax]
vmovaps zmmword [rax], zmm26
inc r13d
add r12d, 2
add r15d, 4
cmp ebx, r13d
je 0x140042c93
mov ecx, r15d
and ecx, 4
shl rcx, 6
vmovdqa64 zmm23, zmmword [rsp + rcx + 0x340]
vmovaps zmm22, zmmword [rsp + rcx + 0x140]
cmp edi, 1
je 0x140043389
cmp edi, 2
je 0x14004336c
cmp edi, 3
jne 0x1400433a6
mov ecx, r13d
shr ecx, 1
and ecx, 4
or ecx, 3
shl rcx, 6
vpaddd zmm23, zmm23, zmmword [rsp + rcx + 0x340]
vmulps zmm22, zmm22, zmmword [rsp + rcx + 0x140]
mov ecx, r13d
and ecx, 4
or ecx, 2
shl rcx, 6
vpaddd zmm23, zmm23, zmmword [rsp + rcx + 0x340]
vmulps zmm22, zmm22, zmmword [rsp + rcx + 0x140]
mov ecx, r12d
and ecx, 4
or ecx, 1
shl rcx, 6
vpaddd zmm23, zmm23, zmmword [rsp + rcx + 0x340]
vmulps zmm22, zmm22, zmmword [rsp + rcx + 0x140]
cmp edx, 3
jne 0x140043420
test r9, r9
je 0x140043493
vpmulld zmm23, zmm23, zmm4
vpxord xmm25, xmm25, xmm25
kxnorw k1, k0, k0
mov rcx, qword [rsp + 0x38]
vpgatherdd zmm25 {k1}, zmmword [rcx + zmm23]
vpshufb zmm23, zmm25, zmm16
vcvtdq2ps zmm23, zmm23
vmulps zmm23, zmm23, zmm17
vpshufb zmm24, zmm25, zmm18
vcvtdq2ps zmm24, zmm24
vmulps zmm24, zmm24, zmm17
vpsrld zmm25, zmm25, 0x18
vcvtdq2ps zmm25, zmm25
vmulps zmm25, zmm25, zmm17
vxorps xmm26, xmm26, xmm26
jmp 0x1400432e0
test r9, r9
je 0x140042d6c
vpslld zmm23, zmm23, 2
vpxord xmm26, xmm26, xmm26
kxnorw k1, k0, k0
vpgatherdd zmm26 {k1}, zmmword [r9 + zmm23]
vpandd zmm23, zmm26, dword [0x14059d464]{1to16}
vcvtdq2ps zmm23, zmm23
vmulps zmm23, zmm23, zmm17
vpshufb zmm24, zmm26, zmm16
vcvtdq2ps zmm24, zmm24
vmulps zmm24, zmm24, zmm17
vpshufb zmm25, zmm26, zmm18
vcvtdq2ps zmm25, zmm25
vmulps zmm25, zmm25, zmm17
vpsrld zmm26, zmm26, 0x18
vcvtdq2ps zmm26, zmm26
vmulps zmm26, zmm26, zmm17
jmp 0x1400432e0
vpmulld zmm23, zmm23, zmm0
vpxord xmm24, xmm24, xmm24
kxnorw k1, k0, k0
vpgatherdq zmm24 {k1}, zmmword [r14 + ymm23]
vextracti64x4 ymm23, zmm23, 1
vpxord xmm25, xmm25, xmm25
kxnorw k1, k0, k0
vpgatherdq zmm25 {k1}, zmmword [r14 + ymm23]
vpshufb zmm26, zmm24, zmm1
vpshufb zmm25, zmm25, zmm1
vpandq zmm23, zmm25, zmm2
vpandq zmm24, zmm26, zmm2
vcvtqq2ps ymm24, zmm24
vcvtqq2ps ymm23, zmm23
vinsertf64x4 zmm23, zmm24, ymm23, 1
vmulps zmm23, zmm23, zmm3
vpshufb zmm24, zmm25, zmm5
vpshufb zmm27, zmm26, zmm5
vcvtqq2ps ymm27, zmm27
vcvtqq2ps ymm24, zmm24
vinsertf64x4 zmm24, zmm27, ymm24, 1
vmulps zmm24, zmm24, zmm3
vpsrlq zmm25, zmm25, 0x20
vpsrlq zmm26, zmm26, 0x20
vcvtqq2ps ymm26, zmm26
vcvtqq2ps ymm25, zmm25
vinsertf64x4 zmm25, zmm26, ymm25, 1
vmulps zmm25, zmm25, zmm3
vxorps xmm26, xmm26, xmm26
jmp 0x1400432e0