Function at 0x14018faf0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x358
mov eax, 0x20
mov r9, qword [rcx + 8]
mov rsi, qword [rcx + 0x30]
mov rdi, qword [rcx + 0x38]
mov r14, qword [rcx + 0x10]
mov r15, qword [rcx + 0x18]
mov r12, qword [rcx + 0x20]
mov r13, qword [rcx + 0x28]
mov rbx, qword [rcx + 0x48]
mov qword [rsp + 0x3b0], r8
mov r8, qword [rcx]
mov rcx, qword [rcx + 0x40]
mov qword [rsp + 0xd8], r9
mov qword [rsp + 0xd0], r8
mov qword [rsp + 0x100], rsi
mov qword [rsp + 0x108], rdi
mov qword [rsp + 0x110], rcx
mov qword [rsp + 0x118], rbx
mov qword [rsp + 0x120], r8
mov qword [rsp + 0x128], r9
mov qword [rsp + 0x150], rsi
mov qword [rsp + 0x158], rdi
mov qword [rsp + 0x160], rcx
mov qword [rsp + 0x168], rbx
mov qword [rsp + 0x170], r8
mov qword [rsp + 0xe0], r14
mov qword [rsp + 0xe8], r15
mov qword [rsp + 0xf0], r12
mov qword [rsp + 0xf8], r13
mov qword [rsp + 0x130], r14
mov qword [rsp + 0x138], r15
mov qword [rsp + 0x140], r12
mov qword [rsp + 0x148], r13
mov qword [rsp + 0x178], r9
vmovdqu xmm4, xmmword [rdx + 0x20]
mov qword [rsp + 0x1b0], rcx
vmovdqu xmm5, xmmword [rdx + 0x30]
mov rcx, qword [rdx + 0x10]
mov qword [rsp + 0x1b8], rbx
mov qword [rsp + 0x1c0], r8
mov rbx, qword [rdx + 0x18]
mov qword [rsp + 0x1c8], r9
mov qword [rsp + 0x1d0], r8
mov r8, qword [rdx]
mov qword [rsp + 0x1d8], r9
mov r9, qword [rdx + 8]
vmovdqu xmmword [rsp + 0x230], xmm4
vmovdqu xmm4, xmmword [rdx + 0x40]
mov qword [rsp + 0x1a0], rsi
mov qword [rsp + 0x1a8], rdi
mov qword [rsp + 0x200], rsi
lea rsi, [rsp + 0x210]
mov qword [rsp + 0x208], rdi
lea rdi, [rsp + 0x330]
mov qword [rsp + 0x228], rbx
vmovdqu xmmword [rsp + 0x250], xmm4
mov qword [rsp + 0x180], r14
mov qword [rsp + 0x188], r15
mov qword [rsp + 0x190], r12
mov qword [rsp + 0x198], r13
mov qword [rsp + 0x1e0], r14
mov qword [rsp + 0x1e8], r15
mov qword [rsp + 0x1f0], r12
mov qword [rsp + 0x1f8], r13
mov qword [rsp + 0x210], r8
mov qword [rsp + 0x218], r9
mov qword [rsp + 0x220], rcx
vmovdqu xmmword [rsp + 0x240], xmm5
vmovdqu xmm5, xmmword [rdx + 0x50]
vmovdqu xmm4, xmmword [rdx + 0x60]
mov qword [rsp + 0x58], rdi
lea rdi, [rsp + 0xd0]
vmovdqu xmmword [rsp + 0x260], xmm5
vmovdqu xmm5, xmmword [rdx + 0x70]
vmovdqu xmmword [rsp + 0x270], xmm4
vmovdqu xmm4, xmmword [rdx + 0x80]
vmovdqu xmmword [rsp + 0x280], xmm5
vmovdqu xmm5, xmmword [rdx + 0x90]
vmovdqu xmmword [rsp + 0x290], xmm4
vmovdqu xmm4, xmmword [rdx + 0xa0]
vmovdqu xmmword [rsp + 0x2a0], xmm5
vmovdqu xmm5, xmmword [rdx + 0xb0]
vmovdqu xmmword [rsp + 0x2b0], xmm4
vmovdqu xmm4, xmmword [rdx + 0xc0]
vmovdqu xmmword [rsp + 0x2c0], xmm5
vmovdqu xmm5, xmmword [rdx + 0xd0]
vmovdqu xmmword [rsp + 0x2d0], xmm4
vmovdqu xmm4, xmmword [rdx + 0xe0]
vmovdqu xmmword [rsp + 0x2e0], xmm5
vmovdqu xmm5, xmmword [rdx + 0xf0]
mov qword [rsp + 0x50], rdi
lea rdi, [rsp + 0x310]
mov qword [rsp + 0x328], rbx
xor ebx, ebx
mov qword [rsp + 0x310], r8
mov qword [rsp + 0x318], r9
mov qword [rsp + 0x320], rcx
mov qword [rsp + 0x80], rdi
mov dword [rsp + 0x30], eax
vmovdqu xmmword [rsp + 0x2f0], xmm4
vmovdqu xmmword [rsp + 0x300], xmm5
jmp 0x14018fdee
sub dword [rsp + 0x30], 1
je 0x14019000a
vzeroupper
mov rax, qword [rsp + 0x50]
mov r8, qword [rsp + 0x58]
lea rdx, [rsi + rbx]
lea rcx, [rax + rbx]
call sym.neoscrypt_blake2s.constprop.0
mov edx, dword [rsp + 0x330]
vpmovzxbw ymm2, xmmword [rsp + 0x330]
vmovdqu ymm3, ymmword [rsp + 0x330]
vpmovzxwd ymm1, xmm2
vextracti128 xmm2, ymm2, 1
vextracti128 xmm0, ymm3, 1
vpmovzxwd ymm2, xmm2
vpmovzxbw ymm0, xmm0
vpaddd ymm1, ymm1, ymm2
vpmovzxwd ymm2, xmm0
vextracti128 xmm0, ymm0, 1
vpmovzxwd ymm0, xmm0
vpaddd ymm0, ymm2, ymm0
vpaddd ymm0, ymm1, ymm0
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 rcx, [rsi + rbx + 0x1c]
lea rbp, [rsi + rbx]
mov rdi, rbx
lea r15, [rsi + rbx + 4]
lea r11, [rsi + rbx + 8]
xor dword [rbp], edx
mov edx, dword [rsp + 0x334]
lea r9, [rsi + rbx + 0xc]
lea r14, [rsi + rbx + 0x10]
xor dword [r15], edx
mov edx, dword [rsp + 0x338]
lea r13, [rsi + rbx + 0x14]
lea r12, [rsi + rbx + 0x18]
xor dword [r11], edx
mov edx, dword [rsp + 0x33c]
mov qword [rsp + 0x60], rcx
xor dword [r9], edx
mov edx, dword [rsp + 0x340]
xor dword [r14], edx
mov edx, dword [rsp + 0x344]
xor dword [r13], edx
mov edx, dword [rsp + 0x348]
xor dword [r12], edx
mov edx, dword [rsp + 0x34c]
xor dword [rcx], edx
mov ecx, 0x100
sub ecx, ebx
mov dword [rsp + 0x2c], ecx
test al, 0xe0
jne 0x14018ff3c
lea ecx, [rbx + 0x100]
add rcx, rsi
cmp ebx, 0x20
jbe 0x140190202
mov qword [rsp + 0x70], r11
mov r8d, 0x20
mov rdx, rbp
mov qword [rsp + 0x68], r9
vzeroupper
call sym.memmove
mov r9, qword [rsp + 0x68]
mov r11, qword [rsp + 0x70]
cmp dword [rsp + 0x2c], 0x1f
ja 0x14018fde0
mov eax, edi
lea r10d, [rdi - 0xe0]
and eax, 3
mov dword [rsp + 0x68], eax
mov eax, r10d
shr eax, 2
je 0x14018ffaa
mov qword [rsp + 0x78], r11
mov rdx, qword [rsp + 0x80]
mov rcx, rsi
lea r8d, [rax*4]
mov qword [rsp + 0x70], r9
mov dword [rsp + 0x88], r10d
vzeroupper
call sym.memmove
mov edx, dword [rsp + 0x68]
mov r9, qword [rsp + 0x70]
mov r11, qword [rsp + 0x78]
test edx, edx
je 0x14018fde0
mov r10d, dword [rsp + 0x88]
mov edx, dword [rsp + 0x68]
mov eax, r10d
sub eax, edx
cmp eax, r10d
jae 0x14018fde0
mov edx, eax
mov eax, dword [rsp + 0x68]
mov qword [rsp + 0x78], r11
mov qword [rsp + 0x70], r9
lea rcx, [rsi + rdx]
sub eax, r10d
lea r8d, [rdi + rax - 0xe1]
mov rax, qword [rsp + 0x80]
add r8, 1
add rax, rdx
mov rdx, rax
vzeroupper
call sym.memmove
sub dword [rsp + 0x30], 1
mov r9, qword [rsp + 0x70]
mov r11, qword [rsp + 0x78]
jne 0x14018fdeb
cmp dword [rsp + 0x2c], 0x1f
mov eax, dword [rsp + 0x30]
ja 0x1401902ad
mov edx, dword [rsp + 0x2c]
mov ebx, edx
and ebx, 3
shr edx, 2
je 0x1401905f9
cmp edx, 1
je 0x140190706
lea r8, [rsp + 0xd4]
mov rcx, rbp
sub rcx, r8
cmp rcx, 8
ja 0x140190689
mov ecx, dword [rsp + 0xd0]
xor dword [rbp], ecx
mov ecx, dword [rsp + 0xd4]
xor dword [r15], ecx
cmp edx, 2
je 0x1401900ad
mov ecx, dword [rsp + 0xd8]
xor dword [r11], ecx
cmp edx, 3
je 0x1401900ad
mov ecx, dword [rsp + 0xdc]
xor dword [r9], ecx
cmp edx, 4
je 0x1401900ad
mov ecx, dword [rsp + 0xe0]
xor dword [r14], ecx
cmp edx, 5
je 0x1401900ad
mov ecx, dword [rsp + 0xe4]
xor dword [r13], ecx
cmp edx, 7
jne 0x1401900ad
mov ecx, dword [rsp + 0xe8]
xor dword [r12], ecx
test ebx, ebx
jne 0x1401905f9
mov r15d, dword [rsp + 0x2c]
mov r9, qword [rsp + 0x50]
lea r12d, [rdi - 0xe0]
lea rcx, [rsp + 0x90]
mov r13d, r12d
mov qword [rsp + 0x30], rcx
add r9, r15
shr r13d, 2
je 0x140190329
lea ecx, [r13 - 1]
cmp ecx, 2
jbe 0x1401905c2
vmovdqu xmm5, xmmword [rsp + r15 + 0xd0]
vpxor xmm0, xmm5, xmmword [rsp + 0x210]
vmovdqu xmmword [rsp + 0x210], xmm0
test r13b, 3
je 0x140190144
mov ecx, r13d
and ecx, 0xfffffffc
mov r8d, ecx
mov r11d, dword [r9 + r8*4]
xor dword [rsi + r8*4], r11d
lea r8d, [rcx + 1]
cmp r8d, r13d
jae 0x140190144
add ecx, 2
mov r11d, dword [r9 + r8*4]
xor dword [rsi + r8*4], r11d
cmp ecx, r13d
jae 0x140190144
mov r8d, dword [r9 + rcx*4]
xor dword [rsi + rcx*4], r8d
mov r14d, r12d
and r14d, 3
jne 0x14019032c
test edx, edx
je 0x14019071c
lea eax, [rdx - 1]
mov rcx, qword [rsp + 0x3b0]
mov rdx, rbp
lea r8, [rax*4 + 4]
vzeroupper
call sym.memcpy
test ebx, ebx
je 0x1401901a4
mov edx, dword [rsp + 0x2c]
mov eax, edx
sub eax, ebx
cmp eax, edx
jae 0x1401901a4
mov rcx, qword [rsp + 0x3b0]
lea edx, [rbx - 1]
lea r8, [rdx + 1]
add rcx, rax
add rax, rbp
mov rdx, rax
call sym.memcpy
mov rcx, qword [rsp + 0x3b0]
add rcx, r15
test r13d, r13d
je 0x1401901c7
lea r8d, [r13*4]
mov rdx, rsi
call sym.memcpy
mov rcx, rax
test r14d, r14d
je 0x140190304
mov eax, r12d
sub eax, r14d
cmp eax, r12d
jae 0x140190304
mov edx, r14d
add rcx, rax
sub edx, r12d
lea r8d, [rdi + rdx - 0xe1]
lea rdx, [rsi + rax]
add r8, 1
call sym.memcpy
jmp 0x140190304
mov r10d, 0x20
sub r10d, ebx
mov eax, r10d
mov edx, r10d
and eax, 3
shr edx, 2
mov dword [rsp + 0x68], eax
mov eax, edx
je 0x140190318
mov qword [rsp + 0x78], r9
lea r8d, [rax*4]
mov rdx, rbp
mov qword [rsp + 0x88], r11
mov dword [rsp + 0x70], r10d
vzeroupper
call sym.memmove
mov r8d, dword [rsp + 0x68]
mov r10d, dword [rsp + 0x70]
mov r9, qword [rsp + 0x78]
mov r11, qword [rsp + 0x88]
mov rcx, rax
test r8d, r8d
je 0x14018fde0
mov edx, dword [rsp + 0x68]
mov eax, r10d
sub eax, edx
cmp eax, r10d
jae 0x14018fde0
mov qword [rsp + 0x78], r11
mov r8d, edx
add rcx, rax
lea rdx, [rbp + rax]
mov qword [rsp + 0x70], r9
and r8d, 3
vzeroupper
call sym.memmove
mov r11, qword [rsp + 0x78]
mov r9, qword [rsp + 0x70]
jmp 0x14018fde0
lea rdx, [rsp + 0xd4]
mov rax, rbp
sub rax, rdx
cmp rax, 0x18
jbe 0x14019062e
vmovdqu ymm4, ymmword [rbp]
vpxor ymm0, ymm4, ymmword [rsp + 0xd0]
vmovdqu ymmword [rbp], ymm0
mov rax, qword [rsp + 0x3b0]
vmovdqu xmm5, xmmword [rbp]
mov rdi, qword [rsp + 0x3b0]
mov rdx, qword [rbp + 0x18]
vmovdqu xmmword [rax], xmm5
mov rax, qword [rbp + 0x10]
mov qword [rdi + 0x18], rdx
mov qword [rdi + 0x10], rax
vzeroupper
add rsp, 0x358
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov eax, dword [rsp + 0x68]
test eax, eax
jne 0x14019026b
jmp 0x14018fde0
mov r14d, r12d
mov ecx, r12d
sub ecx, r14d
cmp ecx, r12d
jae 0x140190575
mov r8d, r14d
sub r8d, r12d
lea r11d, [r8 + rdi]
mov dword [rsp + 0x50], r11d
sub r11d, 0xe1
cmp r11d, 0xe
jbe 0x1401905a8
mov r8d, ecx
cmp r11d, 0x1e
mov r11d, dword [rsp + 0x50]
lea r10, [r15 + r8]
mov qword [rsp + 0x70], r10
jbe 0x14019075e
sub r11d, 0x100
mov dword [rsp + 0x78], edx
shr r11d, 5
add r11d, 1
mov dword [rsp + 0x58], r11d
lea r11, [r8 + 0x180]
mov r8, qword [rsp + 0x30]
mov qword [rsp + 0x68], r11
lea r10, [r8 + r10 + 0x40]
add r11, r8
xor r8d, r8d
mov qword [rsp + 0x60], r10
mov r10, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x60]
add eax, 1
vmovdqu ymm4, ymmword [rdx + r8]
mov edx, dword [rsp + 0x58]
vpxor ymm0, ymm4, ymmword [r11 + r8]
vmovdqu ymmword [rsp + 0x30], ymm4
vmovdqu ymmword [r11 + r8], ymm0
add r8, 0x20
cmp eax, edx
jb 0x1401903b4
mov r11d, dword [rsp + 0x50]
mov eax, edx
mov edx, dword [rsp + 0x78]
mov qword [rsp + 0x30], r10
shl eax, 5
lea r8d, [r11 - 0xe0]
add ecx, eax
cmp eax, r8d
je 0x140190575
sub r11d, eax
mov r8d, r11d
lea r11d, [r11 - 0xe0]
sub r8d, 0xe1
cmp r8d, 0xe
jbe 0x140190465
mov r8, qword [rsp + 0x68]
mov r10, qword [rsp + 0x30]
mov eax, eax
add r8, rax
add rax, 0x350
add r8, r10
mov r10, qword [rsp + 0x70]
add rax, rsp
vmovdqu xmm4, xmmword [r10 + rax - 0x280]
mov eax, r11d
vpxor xmm0, xmm4, xmmword [r8]
and eax, 0xfffffff0
add ecx, eax
and r11d, 0xf
vmovdqu xmmword [r8], xmm0
je 0x140190575
mov eax, ecx
movzx r8d, byte [r9 + rax]
xor byte [rsi + rax], r8b
lea eax, [rcx + 1]
cmp eax, r12d
jae 0x140190575
movzx r8d, byte [r9 + rax]
xor byte [rsi + rax], r8b
lea eax, [rcx + 2]
cmp eax, r12d
jae 0x140190575
movzx r8d, byte [r9 + rax]
xor byte [rsi + rax], r8b
lea eax, [rcx + 3]
cmp eax, r12d
jae 0x140190575
movzx r8d, byte [r9 + rax]
xor byte [rsi + rax], r8b
lea eax, [rcx + 4]
cmp eax, r12d
jae 0x140190575
movzx r8d, byte [r9 + rax]
xor byte [rsi + rax], r8b
lea eax, [rcx + 5]
cmp eax, r12d
jae 0x140190575
movzx r8d, byte [r9 + rax]
xor byte [rsi + rax], r8b
lea eax, [rcx + 6]
cmp eax, r12d
jae 0x140190575
movzx r8d, byte [r9 + rax]
xor byte [rsi + rax], r8b
lea eax, [rcx + 7]
cmp eax, r12d
jae 0x140190575
movzx r8d, byte [r9 + rax]
xor byte [rsi + rax], r8b
lea eax, [rcx + 8]
cmp eax, r12d
jae 0x140190575
movzx r8d, byte [r9 + rax]
xor byte [rsi + rax], r8b
lea eax, [rcx + 9]
cmp eax, r12d
jae 0x140190575
movzx r8d, byte [r9 + rax]
xor byte [rsi + rax], r8b
lea eax, [rcx + 0xa]
cmp eax, r12d
jae 0x140190575
movzx r8d, byte [r9 + rax]
xor byte [rsi + rax], r8b
lea eax, [rcx + 0xb]
cmp eax, r12d
jae 0x140190575
movzx r8d, byte [r9 + rax]
xor byte [rsi + rax], r8b
lea eax, [rcx + 0xc]
cmp eax, r12d
jae 0x140190575
movzx r8d, byte [r9 + rax]
xor byte [rsi + rax], r8b
lea eax, [rcx + 0xd]
cmp eax, r12d
jae 0x140190575
movzx r8d, byte [r9 + rax]
xor byte [rsi + rax], r8b
lea eax, [rcx + 0xe]
cmp eax, r12d
jae 0x140190575
movzx ecx, byte [r9 + rax]
xor byte [rsi + rax], cl
test edx, edx
jne 0x140190159
test ebx, ebx
jne 0x14019073b
mov rcx, qword [rsp + 0x3b0]
add rcx, r15
test r13d, r13d
je 0x140190756
vzeroupper
jmp 0x1401901b4
lea r8, [rsi + rcx]
movzx eax, byte [r8]
xor al, byte [r9 + rcx]
add rcx, 1
mov byte [r8], al
cmp ecx, r12d
jb 0x1401905a8
jmp 0x140190575
mov r10, qword [rsp + 0x30]
lea r14d, [r13*4]
mov r8, r9
mov rcx, r10
add r14, r10
mov r11d, dword [r8]
xor dword [rcx + 0x180], r11d
add rcx, 4
add r8, 4
cmp rcx, r14
jne 0x1401905d8
mov qword [rsp + 0x30], r10
jmp 0x140190144
mov r15d, dword [rsp + 0x2c]
mov ecx, r15d
sub ecx, ebx
cmp ecx, r15d
jae 0x1401900b5
mov r9d, dword [rsp + 0x2c]
mov r10, qword [rsp + 0x50]
movzx r8d, byte [r10 + rcx]
xor byte [rbp + rcx], r8b
add rcx, 1
cmp ecx, r9d
jb 0x140190616
jmp 0x1401900b5
mov rdi, qword [rsp + 0x60]
mov eax, dword [rsp + 0xd0]
xor dword [rbp], eax
mov eax, dword [rsp + 0xd4]
xor dword [r15], eax
mov eax, dword [rsp + 0xd8]
xor dword [r11], eax
mov eax, dword [rsp + 0xdc]
xor dword [r9], eax
mov eax, dword [rsp + 0xe0]
xor dword [r14], eax
mov eax, dword [rsp + 0xe4]
xor dword [r13], eax
mov eax, dword [rsp + 0xe8]
xor dword [r12], eax
mov eax, dword [rsp + 0xec]
xor dword [rdi], eax
jmp 0x1401902d8
lea ecx, [rdx - 1]
cmp ecx, 2
jbe 0x140190715
vmovdqu xmm4, xmmword [rbp]
vpxor xmm0, xmm4, xmmword [rsp + 0xd0]
vmovdqu xmmword [rbp], xmm0
cmp edx, 4
je 0x1401900ad
lea r9d, [rdx - 4]
cmp edx, 5
je 0x140190734
mov ecx, 4
mov r8d, ecx
add ecx, 2
shl r8, 2
vmovq xmm1, qword [rsp + r8 + 0xd0]
lea r11, [rbp + r8]
vmovq xmm0, qword [r11]
vpxor xmm0, xmm0, xmm1
vmovq qword [r11], xmm0
cmp r9d, 2
je 0x1401900ad
shl rcx, 2
mov r8d, dword [rsp + rcx + 0xd0]
xor dword [rbp + rcx], r8d
jmp 0x1401900ad
mov ecx, dword [rsp + 0xd0]
xor dword [rbp], ecx
jmp 0x1401900ad
mov r9d, edx
xor ecx, ecx
jmp 0x1401906bf
test ebx, ebx
je 0x140190743
mov edx, dword [rsp + 0x2c]
mov eax, edx
sub eax, ebx
cmp eax, edx
jae 0x140190743
vzeroupper
jmp 0x140190187
mov ecx, 4
jmp 0x1401906f0
vzeroupper
jmp 0x14019017b
mov rcx, qword [rsp + 0x3b0]
add rcx, r15
vzeroupper
jmp 0x1401901b4
vzeroupper
jmp 0x1401901d0
lea r10, [r8 + 0x180]
sub r11d, 0xe0
mov qword [rsp + 0x68], r10
jmp 0x14019041f