Function at 0x1402d2c80
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x78
mov rbp, qword [rsp + 0xe0]
lea rax, [rsp + 0x3f]
mov rdi, rdx
and rax, 0xffffffffffffffc0
test rbp, rbp
je 0x1402d33b0
lea r13, [r9 + r9 - 1]
mov rax, qword [rbp]
mov r11, qword [rbp + 8]
shl r9, 7
mov r10, qword [rbp + 0x10]
mov rdx, qword [rbp + 0x18]
mov r12, r13
lea rsi, [rdi + r9 - 0x40]
shl r12, 6
mov rbx, rdi
mov r9, rdi
lea r14, [rdi + r12]
prefetcht0 byte [r14]
prefetcht0 byte [r9]
add r9, 0x40
cmp rsi, r9
jne 0x1402d2ce0
add r12, rcx
vmovdqu xmm5, xmmword [r14]
shr r13, 1
vmovdqu xmm4, xmmword [r14 + 0x20]
vpxor xmm2, xmm5, xmmword [r12]
vmovdqu xmm1, xmmword [r14 + 0x30]
shl r13, 7
mov r9, r8
vmovdqu xmm5, xmmword [r14 + 0x10]
vpxorq xmm16, xmm4, xmmword [r12 + 0x20]
add rdi, r13
vpxor xmm0, xmm5, xmmword [r12 + 0x10]
vpxor xmm1, xmm1, xmmword [r12 + 0x30]
movabs r12, 0x7ff000007ff0
jmp 0x1402d2d69
mov rsi, rax
vmovdqu xmmword [r9 - 0x40], xmm2
mov rax, r11
vmovdqu xmmword [r9 - 0x30], xmm0
mov r11, r10
vmovdqu64 xmmword [r9 - 0x20], xmm16
vmovdqu xmmword [r9 - 0x10], xmm1
sub rbx, 0xffffffffffffff80
mov r10, rsi
vmovdqu xmm5, xmmword [rcx]
vmovdqu xmm4, xmmword [rcx + 0x20]
vpternlogd xmm2, xmm5, xmmword [rbx], 0x96
vmovdqu xmm5, xmmword [rcx + 0x10]
vpternlogd xmm16, xmm4, xmmword [rbx + 0x20], 0x96
vmovq rsi, xmm2
vpshufd xmm3, xmm16, 0x39
mov r14, rsi
and esi, 0x7ff0
vpmuludq xmm3, xmm3, xmm16
shr r14, 0x20
and r14d, 0x7ff0
vpternlogd xmm0, xmm5, xmmword [rbx + 0x10], 0x96
vmovdqu xmm5, xmmword [rcx + 0x30]
vpshufd xmm4, xmm0, 0x39
vpmuludq xmm4, xmm4, xmm0
vpternlogd xmm1, xmm5, xmmword [rbx + 0x30], 0x96
vpshufd xmm5, xmm2, 0x39
vpmuludq xmm5, xmm5, xmm2
vpaddq xmm5, xmm5, xmmword [rax + rsi]
vmovq rsi, xmm0
vpshufd xmm2, xmm1, 0x39
vpxor xmm5, xmm5, xmmword [r11 + r14]
mov r14, rsi
and esi, 0x7ff0
shr r14, 0x20
and r14d, 0x7ff0
vpmuludq xmm2, xmm2, xmm1
vmovdqu xmmword [rax + rdx], xmm5
vpaddq xmm4, xmm4, xmmword [rax + rsi]
vmovq rsi, xmm16
vpshufd xmm0, xmm5, 0x39
vpxor xmm4, xmm4, xmmword [r11 + r14]
mov r14, rsi
and esi, 0x7ff0
shr r14, 0x20
and r14d, 0x7ff0
vpmuludq xmm0, xmm0, xmm5
vmovdqu xmmword [r11 + rdx], xmm4
vpaddq xmm3, xmm3, xmmword [rax + rsi]
vmovq rsi, xmm1
vpshufd xmm1, xmm4, 0x39
vpxor xmm3, xmm3, xmmword [r11 + r14]
mov r14, rsi
and esi, 0x7ff0
shr r14, 0x20
and r14d, 0x7ff0
vpmuludq xmm1, xmm1, xmm4
vmovdqu xmmword [rax + rdx + 0x10], xmm3
vpaddq xmm2, xmm2, xmmword [rax + rsi]
vmovq rsi, xmm5
vpxor xmm2, xmm2, xmmword [r11 + r14]
mov r14, rsi
and esi, 0x7ff0
shr r14, 0x20
and r14d, 0x7ff0
vmovdqu xmmword [r11 + rdx + 0x10], xmm2
vpaddq xmm0, xmm0, xmmword [rax + rsi]
vmovq rsi, xmm4
vpshufd xmm4, xmm3, 0x39
vpxor xmm0, xmm0, xmmword [r11 + r14]
mov r14, rsi
and esi, 0x7ff0
shr r14, 0x20
and r14d, 0x7ff0
vmovdqu xmmword [rax + rdx + 0x20], xmm0
vpaddq xmm1, xmm1, xmmword [rax + rsi]
vmovq rsi, xmm3
vpxor xmm1, xmm1, xmmword [r11 + r14]
mov r14, rsi
and esi, 0x7ff0
shr r14, 0x20
and r14d, 0x7ff0
vpmuludq xmm3, xmm4, xmm3
vmovdqu xmmword [r11 + rdx + 0x20], xmm1
vpaddq xmm3, xmm3, xmmword [rax + rsi]
vmovq rsi, xmm2
vpxor xmm5, xmm3, xmmword [r11 + r14]
mov r14, rsi
vpshufd xmm3, xmm2, 0x39
and esi, 0x7ff0
shr r14, 0x20
and r14d, 0x7ff0
vpmuludq xmm2, xmm3, xmm2
vpaddq xmm2, xmm2, xmmword [rax + rsi]
vmovq rsi, xmm0
vpxor xmm4, xmm2, xmmword [r11 + r14]
mov r14, rsi
vpshufd xmm3, xmm0, 0x39
and esi, 0x7ff0
shr r14, 0x20
and r14d, 0x7ff0
vpmuludq xmm3, xmm3, xmm0
vpaddq xmm3, xmm3, xmmword [rax + rsi]
vmovq rsi, xmm1
vpxor xmm3, xmm3, xmmword [r11 + r14]
mov r14, rsi
vpshufd xmm0, xmm1, 0x39
and esi, 0x7ff0
shr r14, 0x20
and r14d, 0x7ff0
vpmuludq xmm0, xmm0, xmm1
vpshufd xmm1, xmm5, 0x39
vpshufd xmm2, xmm4, 0x39
vpmuludq xmm1, xmm1, xmm5
vpmuludq xmm2, xmm2, xmm4
vmovdqu xmmword [rax + rdx + 0x30], xmm3
vpaddq xmm0, xmm0, xmmword [rax + rsi]
vmovq rsi, xmm5
vpxor xmm0, xmm0, xmmword [r11 + r14]
mov r14, rsi
vmovdqu xmmword [r9], xmm3
shr r14, 0x20
vmovdqu xmm5, xmmword [rcx + 0x50]
vmovdqu xmmword [r11 + rdx + 0x30], xmm0
add rdx, 0x40
and r14d, 0x7ff0
and esi, 0x7ff0
vpaddq xmm1, xmm1, xmmword [rax + rsi]
vmovq rsi, xmm4
vmovdqu xmmword [r9 + 0x10], xmm0
vpternlogd xmm0, xmm5, xmmword [rbx + 0x50], 0x96
vmovdqu xmm4, xmmword [rcx + 0x40]
and rdx, r12
vpxor xmm1, xmm1, xmmword [r11 + r14]
mov r14, rsi
and esi, 0x7ff0
vmovdqu xmm5, xmmword [rcx + 0x70]
shr r14, 0x20
vpaddq xmm2, xmm2, xmmword [rax + rsi]
and r14d, 0x7ff0
vpxor xmm2, xmm2, xmmword [r11 + r14]
vpternlogd xmm3, xmm4, xmmword [rbx + 0x40], 0x96
vmovdqu xmm4, xmmword [rcx + 0x60]
vmovq rsi, xmm3
vmovdqu xmmword [r9 + 0x20], xmm1
mov r14, rsi
and esi, 0x7ff0
shr r14, 0x20
and r14d, 0x7ff0
vmovdqu xmmword [r9 + 0x30], xmm2
vpternlogd xmm2, xmm5, xmmword [rbx + 0x70], 0x96
vpternlogd xmm1, xmm4, xmmword [rbx + 0x60], 0x96
vpshufd xmm4, xmm3, 0x39
vpmuludq xmm3, xmm4, xmm3
vpaddq xmm3, xmm3, xmmword [r10 + rsi]
vmovq rsi, xmm0
vpxor xmm5, xmm3, xmmword [rax + r14]
mov r14, rsi
vpshufd xmm3, xmm0, 0x39
and esi, 0x7ff0
shr r14, 0x20
and r14d, 0x7ff0
vpmuludq xmm0, xmm3, xmm0
vmovdqu xmmword [r10 + rdx], xmm5
vpaddq xmm0, xmm0, xmmword [r10 + rsi]
vmovq rsi, xmm1
vpxorq xmm16, xmm0, xmmword [rax + r14]
mov r15, rsi
vpshufd xmm0, xmm1, 0x39
shr rsi, 0x20
and r15d, 0x7ff0
and esi, 0x7ff0
vpmuludq xmm0, xmm0, xmm1
vmovdqu64 xmmword [rax + rdx], xmm16
vpaddq xmm0, xmm0, xmmword [r10 + r15]
vpxor xmm4, xmm0, xmmword [rax + rsi]
vmovq rsi, xmm2
vpshufd xmm0, xmm2, 0x39
mov r15, rsi
shr rsi, 0x20
and r15d, 0x7ff0
and esi, 0x7ff0
vpmuludq xmm2, xmm0, xmm2
vpshufd xmm0, xmm5, 0x39
vpmuludq xmm0, xmm0, xmm5
vmovdqu xmmword [r10 + rdx + 0x10], xmm4
vpaddq xmm2, xmm2, xmmword [r10 + r15]
vpxor xmm2, xmm2, xmmword [rax + rsi]
vmovq rsi, xmm5
mov r15, rsi
shr rsi, 0x20
and r15d, 0x7ff0
and esi, 0x7ff0
vmovdqu xmmword [rax + rdx + 0x10], xmm2
vpaddq xmm0, xmm0, xmmword [r10 + r15]
vpxor xmm5, xmm0, xmmword [rax + rsi]
vmovq rsi, xmm16
vpshufd xmm0, xmm16, 0x39
mov r15, rsi
shr rsi, 0x20
and r15d, 0x7ff0
and esi, 0x7ff0
vpmuludq xmm0, xmm0, xmm16
vmovdqu xmmword [r10 + rdx + 0x20], xmm5
vpaddq xmm0, xmm0, xmmword [r10 + r15]
vpxor xmm1, xmm0, xmmword [rax + rsi]
vmovq rsi, xmm4
vpshufd xmm0, xmm4, 0x39
mov r15, rsi
shr rsi, 0x20
and r15d, 0x7ff0
and esi, 0x7ff0
vpmuludq xmm0, xmm0, xmm4
vmovdqu xmmword [rax + rdx + 0x20], xmm1
vpaddq xmm0, xmm0, xmmword [r10 + r15]
vpxor xmm4, xmm0, xmmword [rax + rsi]
vmovq rsi, xmm2
vpshufd xmm0, xmm2, 0x39
mov r15, rsi
shr rsi, 0x20
and r15d, 0x7ff0
and esi, 0x7ff0
vpmuludq xmm0, xmm0, xmm2
vpshufd xmm2, xmm5, 0x39
vpaddq xmm0, xmm0, xmmword [r10 + r15]
vpxor xmm3, xmm0, xmmword [rax + rsi]
vpshufd xmm0, xmm1, 0x39
vmovq rsi, xmm5
mov r15, rsi
shr rsi, 0x20
and r15d, 0x7ff0
vpmuludq xmm2, xmm2, xmm5
and esi, 0x7ff0
sub rcx, 0xffffffffffffff80
vpaddq xmm2, xmm2, xmmword [r10 + r15]
sub r9, 0xffffffffffffff80
vpxor xmm2, xmm2, xmmword [rax + rsi]
vmovq rsi, xmm1
mov r15, rsi
shr rsi, 0x20
and r15d, 0x7ff0
vpmuludq xmm0, xmm0, xmm1
and esi, 0x7ff0
vpshufd xmm1, xmm4, 0x39
vpmuludq xmm1, xmm1, xmm4
vmovdqu xmmword [r10 + rdx + 0x30], xmm2
vpaddq xmm0, xmm0, xmmword [r10 + r15]
vpxor xmm0, xmm0, xmmword [rax + rsi]
vmovq rsi, xmm4
mov r14, rsi
shr rsi, 0x20
and r14d, 0x7ff0
and esi, 0x7ff0
vmovdqu xmmword [rax + rdx + 0x30], xmm0
vpaddq xmm1, xmm1, xmmword [r10 + r14]
add rdx, 0x40
vpxorq xmm16, xmm1, xmmword [rax + rsi]
vmovq rsi, xmm3
vpshufd xmm1, xmm3, 0x39
and rdx, r12
mov r14, rsi
shr rsi, 0x20
and r14d, 0x7ff0
vpmuludq xmm1, xmm1, xmm3
and esi, 0x7ff0
vpaddq xmm1, xmm1, xmmword [r10 + r14]
vpxor xmm1, xmm1, xmmword [rax + rsi]
cmp rdi, rbx
jne 0x1402d2d40
vpaddd xmm4, xmm1, xmm2
lea rcx, [r8 + r13 + 0x40]
mov qword [rbp + 0x10], rax
mov qword [rbp], r11
mov qword [rbp + 8], r10
mov qword [rbp + 0x18], rdx
vprold xmm4, xmm4, 7
vpxor xmm4, xmm0, xmm4
vpaddd xmm3, xmm2, xmm4
vprold xmm3, xmm3, 9
vpxorq xmm3, xmm16, xmm3
vpaddd xmm5, xmm4, xmm3
vpshufd xmm4, xmm4, 0x93
vprold xmm5, xmm5, 0xd
vpxor xmm5, xmm1, xmm5
vpaddd xmm17, xmm3, xmm5
vpshufd xmm5, xmm5, 0x39
vpshufd xmm3, xmm3, 0x4e
vprord xmm17, xmm17, 0xe
vpxorq xmm17, xmm2, xmm17
vpaddd xmm18, xmm4, xmm17
vprold xmm18, xmm18, 7
vpxorq xmm5, xmm5, xmm18
vpaddd xmm18, xmm17, xmm5
vprold xmm18, xmm18, 9
vpxorq xmm3, xmm3, xmm18
vpaddd xmm18, xmm5, xmm3
vpshufd xmm5, xmm5, 0x93
vprold xmm18, xmm18, 0xd
vpaddd xmm5, xmm5, xmm1
vmovdqu xmmword [rcx + 0x30], xmm5
vpxorq xmm4, xmm4, xmm18
vpaddd xmm18, xmm3, xmm4
vpshufd xmm4, xmm4, 0x39
vpshufd xmm3, xmm3, 0x4e
vprord xmm18, xmm18, 0xe
vpaddd xmm4, xmm4, xmm0
vpaddd xmm3, xmm3, xmm16
vmovdqu xmmword [rcx + 0x10], xmm4
vmovdqu xmmword [rcx + 0x20], xmm3
vpxorq xmm17, xmm17, xmm18
vpaddd xmm2, xmm2, xmm17
vmovdqu xmmword [rcx], xmm2
vmovd eax, xmm2
add rsp, 0x78
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
vmovdqu ymm5, ymmword [rcx + 0x40]
vmovdqu ymm4, ymmword [rcx + 0x60]
vmovdqu32 ymm18, ymmword [rdx + 0x40]
vmovdqu32 ymm17, ymmword [rdx + 0x60]
vmovdqu32 ymm20, ymm5
vmovdqu32 ymm16, ymm4
vpternlogd ymm20, ymm18, ymmword [rcx], 0x96
vpternlogd ymm16, ymm17, ymmword [rcx + 0x20], 0x96
vpxorq ymm20, ymm20, ymmword [rdx]
vpxorq ymm16, ymm16, ymmword [rdx + 0x20]
vmovdqu64 xmm21, xmm20
vmovdqu64 xmm19, xmm16
vextracti64x2 xmm16, ymm16, 1
vpaddd xmm1, xmm16, xmm21
vextracti64x2 xmm20, ymm20, 1
vprold xmm1, xmm1, 7
vpxorq xmm1, xmm20, xmm1
vpaddd xmm0, xmm1, xmm21
vprold xmm0, xmm0, 9
vpxorq xmm0, xmm19, xmm0
vpaddd xmm2, xmm0, xmm1
vpshufd xmm1, xmm1, 0x93
vprold xmm2, xmm2, 0xd
vpxorq xmm2, xmm16, xmm2
vpaddd xmm3, xmm0, xmm2
vpshufd xmm2, xmm2, 0x39
vpshufd xmm0, xmm0, 0x4e
vprord xmm3, xmm3, 0xe
vpxorq xmm3, xmm21, xmm3
vpaddd xmm22, xmm1, xmm3
vprold xmm22, xmm22, 7
vpxorq xmm2, xmm2, xmm22
vpaddd xmm22, xmm2, xmm3
vprold xmm22, xmm22, 9
vpxorq xmm0, xmm0, xmm22
vpaddd xmm22, xmm0, xmm2
vpshufd xmm2, xmm2, 0x93
vprold xmm22, xmm22, 0xd
vpaddd xmm2, xmm2, xmm16
vmovdqu xmmword [rax + 0x30], xmm2
vmovdqu xmmword [r8 + 0x30], xmm2
vpxorq xmm1, xmm1, xmm22
vpaddd xmm22, xmm0, xmm1
vpshufd xmm1, xmm1, 0x39
vpshufd xmm0, xmm0, 0x4e
vprord xmm22, xmm22, 0xe
vpaddd xmm1, xmm1, xmm20
vpaddd xmm0, xmm0, xmm19
vmovdqu xmmword [rax + 0x10], xmm1
vmovdqu xmmword [rax + 0x20], xmm0
vmovdqu xmmword [r8 + 0x20], xmm0
vmovdqu xmmword [r8 + 0x10], xmm1
vpxorq xmm3, xmm3, xmm22
vpaddd xmm3, xmm21, xmm3
vmovdqu xmmword [rax], xmm3
vmovdqu32 ymm16, ymmword [rax]
vmovdqu xmmword [r8], xmm3
vpternlogd ymm16, ymm5, ymm18, 0x96
vmovdqu ymm5, ymmword [rax + 0x20]
vmovdqu64 xmm0, xmm16
vextracti64x2 xmm16, ymm16, 1
vpternlogd ymm5, ymm4, ymm17, 0x96
vmovdqu64 xmm18, xmm5
vextracti64x2 xmm5, ymm5, 1
vpaddd xmm2, xmm5, xmm0
vprold xmm2, xmm2, 7
vpxorq xmm2, xmm16, xmm2
vpaddd xmm1, xmm2, xmm0
vprold xmm1, xmm1, 9
vpxorq xmm1, xmm18, xmm1
vpaddd xmm3, xmm1, xmm2
vpshufd xmm2, xmm2, 0x93
vprold xmm3, xmm3, 0xd
vpxor xmm3, xmm5, xmm3
vpaddd xmm4, xmm1, xmm3
vpshufd xmm3, xmm3, 0x39
vpshufd xmm1, xmm1, 0x4e
vprord xmm4, xmm4, 0xe
vpxor xmm4, xmm0, xmm4
vpaddd xmm17, xmm2, xmm4
vprold xmm17, xmm17, 7
vpxorq xmm3, xmm3, xmm17
vpaddd xmm17, xmm3, xmm4
vprold xmm17, xmm17, 9
vpxorq xmm1, xmm1, xmm17
vpaddd xmm17, xmm1, xmm3
vpshufd xmm3, xmm3, 0x93
vprold xmm17, xmm17, 0xd
vpxorq xmm2, xmm2, xmm17
vpaddd xmm17, xmm1, xmm2
vpshufd xmm1, xmm1, 0x4e
vpshufd xmm2, xmm2, 0x39
vprord xmm17, xmm17, 0xe
vpaddd xmm1, xmm1, xmm18
vpaddd xmm2, xmm2, xmm16
vmovdqu xmmword [r8 + 0x60], xmm1
vpaddd xmm1, xmm3, xmm5
vmovdqu xmmword [r8 + 0x50], xmm2
vmovdqu xmmword [r8 + 0x70], xmm1
vpxorq xmm4, xmm4, xmm17
vpaddd xmm0, xmm0, xmm4
vmovdqu xmmword [r8 + 0x40], xmm0
vmovd eax, xmm0
vzeroupper
jmp 0x1402d339e