Function at 0x1402d7160
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x38
mov rbx, qword [rsp + 0xa8]
mov rsi, qword [rsp + 0xa0]
lea r14, [rbx + 0x3f]
mov r15, rdx
mov r12, rdx
mov r13d, r9d
mov r11, r14
shl r15, 5
sub r11, rcx
cmp r11, 0x7e
jbe 0x1402d73ab
vmovdqu32 zmm1, zmmword [0x140381980]
shl rdx, 7
xor eax, eax
nop word cs:[rax + rax]
nop dword [rax]
vpermd zmm0, zmm1, zmmword [rcx + rax]
vmovdqu32 zmmword [rbx + rax], zmm0
add rax, 0x40
cmp rax, rdx
jne 0x1402d71c0
test r13d, r13d
je 0x1402d7364
mov rbp, r12
dec r8d
xor r14d, r14d
lea rdx, [rbx + 4]
shl rbp, 7
mov eax, r8d
mov qword [rsp + 0xa8], rbx
shl r15, 2
lea rdi, [rbx + rbp - 0x40]
mov ebx, r14d
mov r14, rbp
vmovq xmm21, rdx
and eax, dword [rdi]
mov rbp, rdi
mov rdi, qword [rsp + 0xa8]
vmovd xmm23, r8d
mov qword [rsp + 0x28], r11
vmovq xmm24, rcx
imul rax, r12
shl rax, 7
lea r10, [rsi + rax]
nop dword [rax + rax]
lea rdx, [rsi + rax + 4]
mov rax, rdi
sub rax, rdx
cmp rax, 0x38
ja 0x1402d72c0
lea r8, [r10 + r14]
mov rdx, r10
mov rax, rdi
nop dword [rax + rax]
add rdx, 4
add rax, 4
mov ecx, dword [rdx - 4]
xor dword [rax - 4], ecx
cmp rdx, r8
jne 0x1402d7260
cmp r13d, 2
jne 0x1402d72f4
mov rdx, qword [rsp + 0xb0]
mov r8, r12
vzeroupper
mov rcx, rdi
inc ebx
call sym.blockmix_pwxform
cmp r13d, ebx
je 0x1402d734c
vmovd eax, xmm23
and eax, dword [rbp]
imul rax, r12
shl rax, 7
lea r10, [rsi + rax]
jmp 0x1402d7240
xor eax, eax
nop word cs:[rax + rax]
nop dword [rax]
vmovdqu32 zmm2, zmmword [r10 + rax]
vpxord zmm0, zmm2, zmmword [rdi + rax]
vmovdqu32 zmmword [rdi + rax], zmm0
add rax, 0x40
cmp rax, r15
jne 0x1402d72d0
cmp r13d, 2
je 0x1402d7279
vmovq rax, xmm21
mov rdx, r10
sub rdx, rax
xor eax, eax
cmp rdx, 0x38
ja 0x1402d7330
nop dword [rax + rax]
mov edx, dword [rdi + rax]
mov dword [r10 + rax], edx
add rax, 4
cmp r14, rax
jne 0x1402d7310
jmp 0x1402d7279
vmovdqu32 zmm3, zmmword [rdi + rax]
vmovdqu32 zmmword [r10 + rax], zmm3
add rax, 0x40
cmp rax, r15
jne 0x1402d7330
jmp 0x1402d7279
mov r11, qword [rsp + 0x28]
vmovq rcx, xmm24
mov rbx, rdi
cmp r11, 0x7e
jbe 0x1402d7459
vmovdqu32 zmm1, zmmword [0x1403819c0]
shl r12, 7
xor eax, eax
nop word cs:[rax + rax]
nop
vpermd zmm0, zmm1, zmmword [rbx + rax]
vmovdqu32 zmmword [rcx + rax], zmm0
add rax, 0x40
cmp rax, r12
jne 0x1402d7380
vzeroupper
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov r10, r12
mov rax, rcx
mov rdx, rbx
shl r10, 7
add r10, rcx
nop dword [rax + rax]
mov r9d, dword [rax]
add rax, 0x40
add rdx, 0x40
mov dword [rdx - 0x40], r9d
mov r9d, dword [rax - 0x2c]
mov dword [rdx - 0x3c], r9d
mov r9d, dword [rax - 0x18]
mov dword [rdx - 0x38], r9d
mov r9d, dword [rax - 4]
mov dword [rdx - 0x34], r9d
mov r9d, dword [rax - 0x30]
mov dword [rdx - 0x30], r9d
mov r9d, dword [rax - 0x1c]
mov dword [rdx - 0x2c], r9d
mov r9d, dword [rax - 8]
mov dword [rdx - 0x28], r9d
mov r9d, dword [rax - 0x34]
mov dword [rdx - 0x24], r9d
mov r9d, dword [rax - 0x20]
mov dword [rdx - 0x20], r9d
mov r9d, dword [rax - 0xc]
mov dword [rdx - 0x1c], r9d
mov r9d, dword [rax - 0x38]
mov dword [rdx - 0x18], r9d
mov r9d, dword [rax - 0x24]
mov dword [rdx - 0x14], r9d
mov r9d, dword [rax - 0x10]
mov dword [rdx - 0x10], r9d
mov r9d, dword [rax - 0x3c]
mov dword [rdx - 0xc], r9d
mov r9d, dword [rax - 0x28]
mov dword [rdx - 8], r9d
mov r9d, dword [rax - 0x14]
mov dword [rdx - 4], r9d
cmp r10, rax
jne 0x1402d73c0
test r13d, r13d
jne 0x1402d71e0
shl r12, 7
add r12, rbx
mov eax, dword [rbx]
add rbx, 0x40
add rcx, 0x40
mov dword [rcx - 0x40], eax
mov eax, dword [rbx - 0x3c]
mov dword [rcx - 0x2c], eax
mov eax, dword [rbx - 0x38]
mov dword [rcx - 0x18], eax
mov eax, dword [rbx - 0x34]
mov dword [rcx - 4], eax
mov eax, dword [rbx - 0x30]
mov dword [rcx - 0x30], eax
mov eax, dword [rbx - 0x2c]
mov dword [rcx - 0x1c], eax
mov eax, dword [rbx - 0x28]
mov dword [rcx - 8], eax
mov eax, dword [rbx - 0x24]
mov dword [rcx - 0x34], eax
mov eax, dword [rbx - 0x20]
mov dword [rcx - 0x20], eax
mov eax, dword [rbx - 0x1c]
mov dword [rcx - 0xc], eax
mov eax, dword [rbx - 0x18]
mov dword [rcx - 0x38], eax
mov eax, dword [rbx - 0x14]
mov dword [rcx - 0x24], eax
mov eax, dword [rbx - 0x10]
mov dword [rcx - 0x10], eax
mov eax, dword [rbx - 0xc]
mov dword [rcx - 0x3c], eax
mov eax, dword [rbx - 8]
mov dword [rcx - 0x28], eax
mov eax, dword [rbx - 4]
mov dword [rcx - 0x14], eax
cmp rbx, r12
jne 0x1402d7460
jmp 0x1402d739a