Function at 0x1401d2b70
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x368
vmovups xmmword [rsp + 0x300], xmm6
vmovups xmmword [rsp + 0x310], xmm7
vmovups xmmword [rsp + 0x320], xmm8
vmovups xmmword [rsp + 0x330], xmm9
vmovups xmmword [rsp + 0x340], xmm10
vmovups xmmword [rsp + 0x350], xmm11
vmovdqu xmm4, xmmword [rcx]
vmovdqu64 zmm5, zmmword [rdx + 0x40]
mov eax, 0x20
xor ebx, ebx
vmovdqu64 zmm0, zmmword [rcx]
mov r9, qword [rcx + 0x48]
vmovd xmm9, eax
vmovdqu xmm8, xmm9
mov r13, r8
mov r8, qword [rcx + 0x40]
lea rax, [rsp + 0x2e0]
lea rsi, [rsp + 0x1c0]
vmovq xmm7, rax
lea rax, [rsp + 0x2c0]
mov qword [rsp + 0xc8], r9
mov qword [rsp + 0x118], r9
mov qword [rsp + 0x168], r9
vmovq xmm6, rax
mov qword [rsp + 0x3c0], r13
vmovdqu xmmword [rsp + 0x170], xmm4
vmovdqu64 zmm4, zmmword [rdx]
vmovdqu64 zmmword [rsp + 0x200], zmm5
vmovdqu64 zmm5, zmmword [rdx + 0xc0]
mov qword [rsp + 0xc0], r8
mov qword [rsp + 0x110], r8
mov qword [rsp + 0x160], r8
lea r8, [rsp + 0x80]
vmovdqu64 zmmword [rsp + 0x80], zmm0
vmovdqu64 zmmword [rsp + 0xd0], zmm0
vmovdqu64 zmmword [rsp + 0x120], zmm0
vmovq xmm10, r8
vmovdqu64 zmmword [rsp + 0x180], zmm0
vmovdqu64 zmmword [rsp + 0x1c0], zmm4
vmovdqu64 zmm4, zmmword [rdx + 0x80]
vmovdqu64 zmmword [rsp + 0x280], zmm5
vmovdqu64 zmmword [rsp + 0x240], zmm4
vmovdqu ymm4, ymmword [rdx]
vmovdqu ymmword [rsp + 0x2c0], ymm4
jmp 0x1401d2cd0
vmovd eax, xmm8
dec eax
vmovd xmm8, eax
je 0x1401d2ec7
vmovq rax, xmm10
lea rdx, [rsi + rbx]
vmovq r8, xmm7
vzeroupper
lea rcx, [rax + rbx]
call sym.neoscrypt_blake2s.constprop.0
vpmovzxbw ymm1, xmmword [rsp + 0x2e0]
vmovdqu8 ymm3, ymmword [rsp + 0x2e0]
mov edx, dword [rsp + 0x2e0]
vpmovzxwd ymm2, xmm1
vextracti128 xmm1, ymm1, 1
vextracti128 xmm0, ymm3, 1
vpmovzxwd ymm1, xmm1
vpmovzxbw ymm0, xmm0
vpaddd ymm2, ymm2, ymm1
vpmovzxwd ymm1, xmm0
vextracti128 xmm0, ymm0, 1
vpaddd ymm1, ymm1, ymm2
vpmovzxwd ymm0, xmm0
vpaddd ymm0, ymm0, ymm1
vmovdqu xmm1, xmm0
vextracti128 xmm0, ymm0, 1
vpaddd xmm0, xmm1, xmm0
vpsrldq xmm1, xmm0, 8
vpaddd xmm0, xmm0, xmm1
vpsrldq xmm1, xmm0, 4
vpaddd xmm0, xmm0, xmm1
vmovd eax, xmm0
movzx ebx, al
lea rbp, [rsi + rbx]
lea r11, [rsi + rbx + 4]
lea rdi, [rsi + rbx + 8]
lea r9, [rsi + rbx + 0xc]
xor dword [rbp], edx
lea r12, [rsi + rbx + 0x10]
lea r13, [rsi + rbx + 0x14]
lea r14, [rsi + rbx + 0x18]
mov edx, dword [rsp + 0x2e4]
xor dword [r11], edx
lea rcx, [rsi + rbx + 0x1c]
mov r15, rbx
mov edx, dword [rsp + 0x2e8]
vmovq xmm11, rcx
xor dword [rdi], edx
mov edx, dword [rsp + 0x2ec]
xor dword [r9], edx
mov edx, dword [rsp + 0x2f0]
xor dword [r12], edx
mov edx, dword [rsp + 0x2f4]
xor dword [r13], edx
mov edx, dword [rsp + 0x2f8]
xor dword [r14], edx
mov edx, dword [rsp + 0x2fc]
xor dword [rcx], edx
mov ecx, 0x100
sub ecx, ebx
mov dword [rsp + 0x24], ecx
test al, 0xe0
jne 0x1401d2e03
lea ecx, [rbx + 0x100]
add rcx, rsi
cmp ebx, 0x20
jbe 0x1401d30b1
vmovdqu ymm5, ymmword [rbp]
vmovdqu ymmword [rcx], ymm5
cmp dword [rsp + 0x24], 0x1f
ja 0x1401d2cc0
mov eax, r15d
lea r10d, [r15 - 0xe0]
and eax, 3
vmovd xmm9, eax
mov eax, r10d
shr eax, 2
je 0x1401d2e69
mov qword [rsp + 0x30], r9
mov qword [rsp + 0x28], r11
mov dword [rsp + 0x38], r10d
vmovq rdx, xmm6
lea r8d, [rax*4]
mov rcx, rsi
vzeroupper
call sym.memmove
mov r11, qword [rsp + 0x28]
vmovd eax, xmm9
mov r9, qword [rsp + 0x30]
test eax, eax
je 0x1401d2cc0
mov r10d, dword [rsp + 0x38]
mov eax, r10d
vmovd ecx, xmm9
sub eax, ecx
cmp eax, r10d
jae 0x1401d2cc0
mov ecx, eax
vmovd eax, xmm9
vmovq rdx, xmm6
mov qword [rsp + 0x30], r9
sub eax, r10d
add rdx, rcx
mov qword [rsp + 0x28], r11
add rcx, rsi
lea eax, [r15 + rax - 0xe1]
vzeroupper
lea r8, [rax + 1]
call sym.memmove
mov r11, qword [rsp + 0x28]
vmovd eax, xmm8
mov r9, qword [rsp + 0x30]
dec eax
vmovd xmm8, eax
jne 0x1401d2cd0
cmp dword [rsp + 0x24], 0x1f
mov r10, r12
vmovdqu xmm9, xmm8
mov r12, r14
vmovq r8, xmm10
mov r14, r11
mov r11, r9
mov r9, r13
mov r13, qword [rsp + 0x3c0]
ja 0x1401d3154
mov eax, dword [rsp + 0x24]
mov ebx, eax
and ebx, 3
shr eax, 2
vmovd xmm8, ebx
mov ecx, eax
je 0x1401d3338
cmp eax, 1
je 0x1401d343d
lea rbx, [rsp + 0x84]
mov rax, rbp
sub rax, rbx
cmp rax, 8
ja 0x1401d33c0
mov eax, dword [rsp + 0x80]
xor dword [rbp], eax
mov eax, dword [rsp + 0x84]
xor dword [r14], eax
cmp ecx, 2
je 0x1401d2f8b
mov eax, dword [rsp + 0x88]
xor dword [rdi], eax
cmp ecx, 3
je 0x1401d2f8b
mov eax, dword [rsp + 0x8c]
xor dword [r11], eax
cmp ecx, 4
je 0x1401d2f8b
mov eax, dword [rsp + 0x90]
xor dword [r10], eax
cmp ecx, 5
je 0x1401d2f8b
mov eax, dword [rsp + 0x94]
xor dword [r9], eax
cmp ecx, 7
jne 0x1401d2f8b
mov eax, dword [rsp + 0x98]
xor dword [r12], eax
vmovd eax, xmm8
test eax, eax
jne 0x1401d3338
mov eax, dword [rsp + 0x24]
lea ebx, [r15 - 0xe0]
lea r9, [rsp + 0x40]
mov edi, ebx
add r8, rax
shr edi, 2
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x30], edi
je 0x1401d31e8
lea r10d, [rdi*4]
mov rax, r9
mov r11, r8
mov edx, edi
add r10, r9
mov edi, dword [r11]
xor dword [rax + 0x180], edi
add rax, 4
add r11, 4
cmp rax, r10
jne 0x1401d2fd1
mov eax, ebx
and eax, 3
vmovd xmm6, eax
jne 0x1401d31ec
test ecx, ecx
je 0x1401d344c
lea eax, [rcx - 1]
mov rdx, rbp
mov rcx, r13
vzeroupper
lea r8, [rax*4 + 4]
call sym.memcpy
vmovd eax, xmm8
test eax, eax
je 0x1401d304a
mov edi, dword [rsp + 0x24]
vmovd ecx, xmm8
mov eax, edi
sub eax, ecx
cmp eax, edi
jae 0x1401d304a
vmovd edi, xmm8
lea rcx, [r13 + rax]
add rax, rbp
lea edx, [rdi - 1]
lea r8, [rdx + 1]
mov rdx, rax
call sym.memcpy
mov rax, qword [rsp + 0x28]
mov edx, dword [rsp + 0x30]
add r13, rax
test edx, edx
je 0x1401d306d
lea r8, [rdx*4]
mov rcx, r13
mov rdx, rsi
call sym.memcpy
vmovd eax, xmm6
test eax, eax
je 0x1401d318d
mov eax, ebx
vmovd edi, xmm6
sub eax, edi
cmp eax, ebx
jae 0x1401d318d
vmovd r14d, xmm6
add r13, rax
lea rdx, [rsi + rax]
sub r14d, ebx
lea ecx, [r15 + r14 - 0xe1]
lea r8, [rcx + 1]
mov rcx, r13
call sym.memcpy
jmp 0x1401d318d
mov r10d, 0x20
sub r10d, ebx
mov eax, r10d
and eax, 3
vmovd xmm9, eax
mov eax, r10d
shr eax, 2
je 0x1401d31d7
mov qword [rsp + 0x38], r9
mov qword [rsp + 0x30], r11
mov dword [rsp + 0x28], r10d
lea r8d, [rax*4]
mov rdx, rbp
vzeroupper
call sym.memmove
mov r10d, dword [rsp + 0x28]
mov rcx, rax
vmovd eax, xmm9
mov r11, qword [rsp + 0x30]
mov r9, qword [rsp + 0x38]
test eax, eax
je 0x1401d2cc0
mov eax, r10d
vmovd edx, xmm9
sub eax, edx
cmp eax, r10d
jae 0x1401d2cc0
vmovd r8d, xmm9
mov qword [rsp + 0x30], r9
mov qword [rsp + 0x28], r11
add rcx, rax
and r8d, 3
lea rdx, [rbp + rax]
vzeroupper
call sym.memmove
mov r9, qword [rsp + 0x30]
mov r11, qword [rsp + 0x28]
jmp 0x1401d2cc0
lea rdx, [rsp + 0x84]
mov rax, rbp
sub rax, rdx
cmp rax, 0x18
jbe 0x1401d3367
vmovdqu ymm5, ymmword [rbp]
vpxor ymm0, ymm5, ymmword [rsp + 0x80]
vmovdqu ymmword [rbp], ymm0
vmovdqu ymm0, ymmword [rbp]
vmovdqu ymmword [r13], ymm0
vzeroupper
vmovups xmm6, xmmword [rsp + 0x300]
vmovups xmm7, xmmword [rsp + 0x310]
vmovups xmm8, xmmword [rsp + 0x320]
vmovups xmm9, xmmword [rsp + 0x330]
vmovups xmm10, xmmword [rsp + 0x340]
vmovups xmm11, xmmword [rsp + 0x350]
add rsp, 0x368
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
vmovd eax, xmm9
test eax, eax
jne 0x1401d3110
jmp 0x1401d2cc0
vmovd xmm6, ebx
mov eax, ebx
vmovd edi, xmm6
sub eax, edi
cmp eax, ebx
jae 0x1401d32e9
vmovd r11d, xmm6
sub r11d, ebx
lea r14d, [r11 + r15]
lea r11d, [r15 + r11 - 0xe1]
cmp r11d, 0x1e
jbe 0x1401d3320
mov r10, qword [rsp + 0x28]
mov r11d, eax
lea edx, [r14 - 0x120]
mov dword [rsp + 0x38], eax
shr edx, 6
vmovd eax, xmm9
lea r12d, [rdx + 1]
lea rdx, [r9 + r11 + 0x180]
lea rdi, [r10 + r11]
lea r10, [r10 + r11 + 0x40]
vmovq xmm7, rdi
add r10, r9
lea rdi, [r11 + 0x180]
xor r11d, r11d
vmovdqu8 zmm4, zmmword [rdx + r11]
inc eax
vpxorq zmm2, zmm4, zmmword [r10 + r11]
vmovdqu8 zmmword [rdx + r11], zmm2
add r11, 0x40
cmp eax, r12d
jb 0x1401d325b
mov eax, dword [rsp + 0x38]
mov edx, r12d
lea r11d, [r14 - 0xe0]
shl edx, 6
add eax, edx
cmp edx, r11d
je 0x1401d32e9
lea r10, [rdi + rdx]
lea rdi, [rdx + 0x300]
sub r14d, edx
lea rdx, [rsp + rdi]
vmovq rdi, xmm7
add r10, r9
mov r11d, r14d
vmovdqu8 ymm4, ymmword [rdi + rdx - 0x280]
sub r11d, 0xe0
vpxor ymm1, ymm4, ymmword [r10]
mov edx, r11d
and edx, 0xffffffe0
add eax, edx
and r11d, 0x1f
vmovdqu8 ymmword [r10], ymm1
je 0x1401d32e9
mov edx, eax
inc eax
movzx r9d, byte [r8 + rdx]
xor byte [rsi + rdx], r9b
cmp eax, ebx
jb 0x1401d32d8
test ecx, ecx
jne 0x1401d2ffe
vmovd eax, xmm8
test eax, eax
jne 0x1401d346c
mov rax, qword [rsp + 0x28]
mov edx, dword [rsp + 0x30]
add r13, rax
test edx, edx
je 0x1401d3494
vzeroupper
jmp 0x1401d305a
lea r9, [rsi + rax]
movzx edx, byte [r9]
xor dl, byte [r8 + rax]
inc rax
mov byte [r9], dl
cmp eax, ebx
jb 0x1401d3320
jmp 0x1401d32e9
mov edi, dword [rsp + 0x24]
vmovd ebx, xmm8
mov eax, edi
sub eax, ebx
cmp eax, edi
jae 0x1401d2f97
mov r9d, dword [rsp + 0x24]
movzx edx, byte [r8 + rax]
xor byte [rbp + rax], dl
inc rax
cmp eax, r9d
jb 0x1401d3351
jmp 0x1401d2f97
mov eax, dword [rsp + 0x80]
xor dword [rbp], eax
mov eax, dword [rsp + 0x84]
xor dword [r14], eax
mov eax, dword [rsp + 0x88]
xor dword [rdi], eax
vmovq rdi, xmm11
mov eax, dword [rsp + 0x8c]
xor dword [r11], eax
mov eax, dword [rsp + 0x90]
xor dword [r10], eax
mov eax, dword [rsp + 0x94]
xor dword [r9], eax
mov eax, dword [rsp + 0x98]
xor dword [r12], eax
mov eax, dword [rsp + 0x9c]
xor dword [rdi], eax
jmp 0x1401d317f
lea eax, [rcx - 1]
cmp eax, 2
jbe 0x1401d347b
vmovdqu xmm5, xmmword [rbp]
vpxor xmm0, xmm5, xmmword [rsp + 0x80]
vmovdqu xmmword [rbp], xmm0
cmp ecx, 4
je 0x1401d2f8b
lea ebx, [rcx - 4]
cmp ecx, 5
je 0x1401d3474
mov eax, 4
mov r11d, eax
add eax, 2
shl r11, 2
lea rdx, [rbp + r11]
vmovq xmm1, qword [rsp + r11 + 0x80]
vmovq xmm0, qword [rdx]
vpxor xmm0, xmm0, xmm1
vmovq qword [rdx], xmm0
cmp ebx, 2
je 0x1401d2f8b
shl rax, 2
mov r11d, dword [rsp + rax + 0x80]
xor dword [rbp + rax], r11d
jmp 0x1401d2f8b
mov eax, dword [rsp + 0x80]
xor dword [rbp], eax
jmp 0x1401d2f8b
vmovd eax, xmm8
test eax, eax
je 0x1401d3484
mov edi, dword [rsp + 0x24]
vmovd ecx, xmm8
mov eax, edi
sub eax, ecx
cmp eax, edi
jae 0x1401d3484
vzeroupper
jmp 0x1401d302f
vzeroupper
jmp 0x1401d301f
mov eax, 4
jmp 0x1401d3427
mov ebx, ecx
xor eax, eax
jmp 0x1401d33f9
mov rax, qword [rsp + 0x28]
add r13, rax
vzeroupper
jmp 0x1401d305a
vzeroupper
jmp 0x1401d3079