Function at 0x14018c390
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xd8
vmovups xmmword [rsp + 0xc0], xmm6
mov eax, r8d
mov dword [rsp + 0x130], r8d
mov r15, rdx
lea rdi, [rcx + 0x100]
shl eax, 5
lea r13, [rcx + 0x200]
lea rsi, [rdx + rax*8]
mov qword [rsp + 0x80], rax
mov eax, r8d
shl eax, 6
mov qword [rsp + 0xb0], rsi
mov qword [rsp + 0x88], rax
lea rax, [rdx + rax*8]
mov qword [rsp + 0xb8], rax
test r8d, r8d
je 0x14018cd3c
lea rbx, [rcx + 0x80]
lea rdx, [rcx + 0x180]
mov qword [rsp + 0x120], rcx
mov r11, r15
mov qword [rsp + 0x40], rbx
lea r14, [rcx + 0x280]
mov rbx, rax
mov eax, r8d
shl rax, 8
mov qword [rsp + 0x90], r14
mov qword [rsp + 0x98], rdx
lea rbp, [rax + r15]
mov qword [rsp + 0x128], r15
mov r12, rbp
mov r15, rbx
mov rbp, rcx
mov rbx, rdx
nop dword [rax]
vmovdqu xmm4, xmmword [rbp]
mov r8, r13
mov rdx, rdi
mov rcx, rbp
add r11, 0x100
add rsi, 0x100
add r15, 0x100
vmovdqu xmmword [r11 - 0x100], xmm4
vmovdqu xmm5, xmmword [rbp + 0x10]
vmovdqu xmmword [r11 - 0xf0], xmm5
vmovdqu xmm6, xmmword [rbp + 0x20]
vmovdqu xmmword [r11 - 0xe0], xmm6
vmovdqu xmm4, xmmword [rbp + 0x30]
vmovdqu xmmword [r11 - 0xd0], xmm4
vmovdqu xmm5, xmmword [rbp + 0x40]
vmovdqu xmmword [r11 - 0xc0], xmm5
vmovdqu xmm6, xmmword [rbp + 0x50]
vmovdqu xmmword [r11 - 0xb0], xmm6
vmovdqu xmm4, xmmword [rbp + 0x60]
vmovdqu xmmword [r11 - 0xa0], xmm4
vmovdqu xmm5, xmmword [rbp + 0x70]
vmovdqu xmmword [r11 - 0x90], xmm5
vmovdqu xmm6, xmmword [rbp + 0x80]
vmovdqu xmmword [r11 - 0x80], xmm6
vmovdqu xmm4, xmmword [rbp + 0x90]
vmovdqu xmmword [r11 - 0x70], xmm4
vmovdqu xmm5, xmmword [rbp + 0xa0]
vmovdqu xmmword [r11 - 0x60], xmm5
vmovdqu xmm6, xmmword [rbp + 0xb0]
vmovdqu xmmword [r11 - 0x50], xmm6
vmovdqu xmm4, xmmword [rbp + 0xc0]
vmovdqu xmmword [r11 - 0x40], xmm4
vmovdqu xmm5, xmmword [rbp + 0xd0]
vmovdqu xmmword [r11 - 0x30], xmm5
vmovdqu xmm6, xmmword [rbp + 0xe0]
vmovdqu xmmword [r11 - 0x20], xmm6
vmovdqu xmm4, xmmword [rbp + 0xf0]
vmovdqu xmmword [r11 - 0x10], xmm4
vmovdqu xmm5, xmmword [rdi]
vmovdqu xmmword [rsi - 0x100], xmm5
vmovdqu xmm6, xmmword [rdi + 0x10]
vmovdqu xmmword [rsi - 0xf0], xmm6
vmovdqu xmm4, xmmword [rdi + 0x20]
vmovdqu xmmword [rsi - 0xe0], xmm4
vmovdqu xmm5, xmmword [rdi + 0x30]
vmovdqu xmmword [rsi - 0xd0], xmm5
vmovdqu xmm6, xmmword [rdi + 0x40]
vmovdqu xmmword [rsi - 0xc0], xmm6
vmovdqu xmm4, xmmword [rdi + 0x50]
vmovdqu xmmword [rsi - 0xb0], xmm4
vmovdqu xmm5, xmmword [rdi + 0x60]
vmovdqu xmmword [rsi - 0xa0], xmm5
vmovdqu xmm6, xmmword [rdi + 0x70]
vmovdqu xmmword [rsi - 0x90], xmm6
vmovdqu xmm4, xmmword [rdi + 0x80]
vmovdqu xmmword [rsi - 0x80], xmm4
vmovdqu xmm5, xmmword [rdi + 0x90]
vmovdqu xmmword [rsi - 0x70], xmm5
vmovdqu xmm6, xmmword [rdi + 0xa0]
vmovdqu xmmword [rsi - 0x60], xmm6
vmovdqu xmm4, xmmword [rdi + 0xb0]
vmovdqu xmmword [rsi - 0x50], xmm4
vmovdqu xmm5, xmmword [rdi + 0xc0]
vmovdqu xmmword [rsi - 0x40], xmm5
vmovdqu xmm6, xmmword [rdi + 0xd0]
vmovdqu xmmword [rsi - 0x30], xmm6
vmovdqu xmm4, xmmword [rdi + 0xe0]
vmovdqu xmmword [rsi - 0x20], xmm4
vmovdqu xmm5, xmmword [rdi + 0xf0]
vmovdqu xmmword [rsi - 0x10], xmm5
vmovdqu xmm6, xmmword [r13]
vmovdqu xmmword [r15 - 0x100], xmm6
vmovdqu xmm1, xmmword [r13 + 0x10]
vmovdqu xmmword [r15 - 0xf0], xmm1
vmovdqu xmm4, xmmword [r13 + 0x20]
vmovdqu xmmword [r15 - 0xe0], xmm4
vmovdqu xmm5, xmmword [r13 + 0x30]
vmovdqu xmmword [r15 - 0xd0], xmm5
vmovdqu xmm6, xmmword [r13 + 0x40]
vmovdqu xmmword [r15 - 0xc0], xmm6
vmovdqu xmm1, xmmword [r13 + 0x50]
vmovdqu xmmword [r15 - 0xb0], xmm1
vmovdqu xmm4, xmmword [r13 + 0x60]
vmovdqu xmmword [r15 - 0xa0], xmm4
vmovdqu xmm5, xmmword [r13 + 0x70]
vmovdqu xmmword [r15 - 0x90], xmm5
vmovdqu xmm0, xmmword [r13 + 0x80]
vmovdqu xmmword [r15 - 0x80], xmm0
vmovdqu xmm6, xmmword [r13 + 0x90]
vmovdqu xmmword [r15 - 0x70], xmm6
vmovdqu xmm1, xmmword [r13 + 0xa0]
vmovdqu xmmword [r15 - 0x60], xmm1
vmovdqu xmm4, xmmword [r13 + 0xb0]
vmovdqu xmmword [r15 - 0x50], xmm4
vmovdqu xmm5, xmmword [r13 + 0xc0]
vmovdqu xmmword [r15 - 0x40], xmm5
vmovdqu xmm0, xmmword [r13 + 0xd0]
vmovdqu xmmword [r15 - 0x30], xmm0
vmovdqu xmm6, xmmword [r13 + 0xe0]
vmovdqu xmmword [r15 - 0x20], xmm6
vmovdqu xmm1, xmmword [r13 + 0xf0]
vmovdqu xmmword [r15 - 0x10], xmm1
mov qword [rsp + 0x28], r14
mov r9, qword [rsp + 0x40]
mov qword [rsp + 0x20], rbx
call sym.salsa8_simd128_2way_3buf
mov qword [rsp + 0x28], r13
mov r9, rbp
mov r8, r14
mov qword [rsp + 0x20], rdi
mov rcx, qword [rsp + 0x40]
mov rdx, rbx
call sym.salsa8_simd128_2way_3buf
cmp r11, r12
jne 0x14018c460
mov eax, dword [rsp + 0x130]
lea rbx, [rbp + 0x220]
mov r12, rbp
mov dword [rsp + 0x3c], 0
movabs rbp, 0xffffffff00000000
mov qword [rsp + 0xa8], r13
mov r15, qword [rsp + 0x128]
mov qword [rsp + 0x30], rbx
sub eax, 1
vmovq xmm4, rbp
mov ebx, 0xffffffff
mov qword [rsp + 0xa0], rdi
vpbroadcastq ymm1, xmm4
vmovq xmm6, rbx
mov edi, eax
mov rdx, qword [r12 + 0x180]
mov ebx, edi
mov r14d, edi
mov rsi, qword [rsp + 0x80]
mov rax, qword [r12 + 0x80]
and ebx, edx
shr rdx, 0x20
mov rcx, rbx
mov qword [rsp + 0x78], rbx
and r14d, eax
shr rax, 0x20
shl rcx, 5
mov r11d, eax
mov rax, qword [r12 + 0x280]
mov dword [rsp + 0x58], r14d
lea rcx, [rsi + rcx + 4]
and r11d, edi
shl rcx, 3
mov dword [rsp + 0x5c], r11d
lea rbx, [r15 + rcx]
lea r9, [r15 + rcx - 0x20]
mov qword [rsp + 0x50], rbx
mov ebx, edx
and ebx, edi
mov rdx, rbx
mov qword [rsp + 0x70], rbx
mov ebx, edi
shl rdx, 5
and ebx, eax
shr rax, 0x20
lea rdx, [rsi + rdx + 4]
and eax, edi
mov qword [rsp + 0x68], rbx
shl rdx, 3
mov qword [rsp + 0x60], rax
shl rax, 5
lea rsi, [r15 + rdx]
lea r10, [r15 + rdx - 0x20]
mov rdx, rbx
mov qword [rsp + 0x48], rsi
mov rsi, qword [rsp + 0x88]
shl rdx, 5
lea rax, [rsi + rax + 4]
lea rdx, [rsi + rdx + 4]
shl rax, 3
shl rdx, 3
lea rsi, [r15 + rax]
lea r8, [r15 + rax - 0x20]
mov eax, r14d
mov r14, qword [rsp + 0x30]
lea rbx, [r15 + rdx]
lea rcx, [r15 + rdx - 0x20]
mov edx, r11d
shl rax, 8
shl rdx, 8
cmp rcx, r14
setae r13b
cmp r12, rbx
setae r11b
or r13d, r11d
cmp r9, r14
mov r14, qword [rsp + 0x50]
setae r11b
cmp r12, r14
setae r14b
or r11d, r14d
lea r14, [r15 + rax + 8]
and r11d, r13d
mov r13, r12
sub r13, r14
mov r14, qword [rsp + 0x30]
add r13, 0x200
cmp r13, 0x210
seta r13b
and r13d, r11d
cmp r10, r14
mov r14, qword [rsp + 0x48]
setae r11b
cmp r12, r14
setae r14b
or r11d, r14d
mov r14, qword [rsp + 0x30]
and r11d, r13d
cmp r8, r14
setae r13b
cmp r12, rsi
setae r14b
or r13d, r14d
test r11b, r13b
je 0x14018cd59
lea r13, [r15 + rdx + 8]
mov r11, r12
sub r11, r13
add r11, 0x200
cmp r11, 0x210
jbe 0x14018cd59
add rdx, r15
add rax, r15
vpbroadcastq ymm0, xmm6
mov r11, qword [rsp + 0x48]
vpand ymm3, ymm0, ymmword [rax]
vpand ymm2, ymm1, ymmword [rdx]
mov r14, qword [rsp + 0x50]
vpor ymm2, ymm2, ymm3
vpxor ymm2, ymm2, ymmword [r12]
vmovdqu ymmword [r12], ymm2
vpand ymm3, ymm0, ymmword [r9]
vpand ymm2, ymm1, ymmword [r10]
vpor ymm2, ymm2, ymm3
vpxor ymm2, ymm2, ymmword [r12 + 0x100]
vmovdqu ymmword [r12 + 0x100], ymm2
vpand ymm3, ymm0, ymmword [rcx]
vpand ymm2, ymm1, ymmword [r8]
vpor ymm2, ymm2, ymm3
vpxor ymm2, ymm2, ymmword [r12 + 0x200]
vmovdqu ymmword [r12 + 0x200], ymm2
vpand ymm3, ymm0, ymmword [rax + 0x20]
vpand ymm2, ymm1, ymmword [rdx + 0x20]
vpor ymm2, ymm2, ymm3
vpxor ymm2, ymm2, ymmword [r12 + 0x20]
vmovdqu ymmword [r12 + 0x20], ymm2
vpand ymm3, ymm0, ymmword [r14]
vpand ymm2, ymm1, ymmword [r11]
vpor ymm2, ymm2, ymm3
vpxor ymm2, ymm2, ymmword [r12 + 0x120]
vmovdqu ymmword [r12 + 0x120], ymm2
vpand ymm3, ymm0, ymmword [rbx]
vpand ymm2, ymm1, ymmword [rsi]
vpor ymm2, ymm2, ymm3
vpxor ymm2, ymm2, ymmword [r12 + 0x220]
vmovdqu ymmword [r12 + 0x220], ymm2
vpand ymm3, ymm0, ymmword [rax + 0x40]
vpand ymm2, ymm1, ymmword [rdx + 0x40]
vpor ymm2, ymm2, ymm3
vpxor ymm2, ymm2, ymmword [r12 + 0x40]
vmovdqu ymmword [r12 + 0x40], ymm2
vpand ymm3, ymm0, ymmword [r9 + 0x40]
vpand ymm2, ymm1, ymmword [r10 + 0x40]
vpor ymm2, ymm2, ymm3
vpxor ymm2, ymm2, ymmword [r12 + 0x140]
vmovdqu ymmword [r12 + 0x140], ymm2
vpand ymm3, ymm0, ymmword [rcx + 0x40]
vpand ymm2, ymm1, ymmword [r8 + 0x40]
vpor ymm2, ymm2, ymm3
vpxor ymm2, ymm2, ymmword [r12 + 0x240]
vmovdqu ymmword [r12 + 0x240], ymm2
vpand ymm3, ymm0, ymmword [rax + 0x60]
vpand ymm2, ymm1, ymmword [rdx + 0x60]
vpor ymm2, ymm2, ymm3
vpxor ymm2, ymm2, ymmword [r12 + 0x60]
vmovdqu ymmword [r12 + 0x60], ymm2
vpand ymm3, ymm0, ymmword [r9 + 0x60]
vpand ymm2, ymm1, ymmword [r10 + 0x60]
vpor ymm2, ymm2, ymm3
vpxor ymm2, ymm2, ymmword [r12 + 0x160]
vmovdqu ymmword [r12 + 0x160], ymm2
vpand ymm3, ymm0, ymmword [rcx + 0x60]
vpand ymm2, ymm1, ymmword [r8 + 0x60]
vpor ymm2, ymm2, ymm3
vpxor ymm2, ymm2, ymmword [r12 + 0x260]
vmovdqu ymmword [r12 + 0x260], ymm2
vpand ymm3, ymm0, ymmword [rax + 0x80]
vpand ymm2, ymm1, ymmword [rdx + 0x80]
vpor ymm2, ymm2, ymm3
vpxor ymm2, ymm2, ymmword [r12 + 0x80]
vmovdqu ymmword [r12 + 0x80], ymm2
vpand ymm3, ymm0, ymmword [r9 + 0x80]
vpand ymm2, ymm1, ymmword [r10 + 0x80]
vpor ymm2, ymm2, ymm3
vpxor ymm2, ymm2, ymmword [r12 + 0x180]
vmovdqu ymmword [r12 + 0x180], ymm2
vpand ymm3, ymm0, ymmword [rcx + 0x80]
vpand ymm2, ymm1, ymmword [r8 + 0x80]
vpor ymm2, ymm2, ymm3
vpxor ymm2, ymm2, ymmword [r12 + 0x280]
vmovdqu ymmword [r12 + 0x280], ymm2
vpand ymm3, ymm0, ymmword [rax + 0xa0]
vpand ymm2, ymm1, ymmword [rdx + 0xa0]
vpor ymm2, ymm2, ymm3
vpxor ymm2, ymm2, ymmword [r12 + 0xa0]
vmovdqu ymmword [r12 + 0xa0], ymm2
vpand ymm3, ymm0, ymmword [r9 + 0xa0]
vpand ymm2, ymm1, ymmword [r10 + 0xa0]
vpor ymm2, ymm2, ymm3
vpxor ymm2, ymm2, ymmword [r12 + 0x1a0]
vmovdqu ymmword [r12 + 0x1a0], ymm2
vpand ymm3, ymm0, ymmword [rcx + 0xa0]
vpand ymm2, ymm1, ymmword [r8 + 0xa0]
vpor ymm2, ymm2, ymm3
vpxor ymm2, ymm2, ymmword [r12 + 0x2a0]
vmovdqu ymmword [r12 + 0x2a0], ymm2
vpand ymm3, ymm0, ymmword [rax + 0xc0]
vpand ymm2, ymm1, ymmword [rdx + 0xc0]
vpor ymm2, ymm2, ymm3
vpxor ymm2, ymm2, ymmword [r12 + 0xc0]
vmovdqu ymmword [r12 + 0xc0], ymm2
vpand ymm3, ymm0, ymmword [r9 + 0xc0]
vpand ymm2, ymm1, ymmword [r10 + 0xc0]
vpor ymm2, ymm2, ymm3
vpxor ymm2, ymm2, ymmword [r12 + 0x1c0]
vmovdqu ymmword [r12 + 0x1c0], ymm2
vpand ymm3, ymm0, ymmword [rcx + 0xc0]
vpand ymm2, ymm1, ymmword [r8 + 0xc0]
vpor ymm2, ymm2, ymm3
vpxor ymm2, ymm2, ymmword [r12 + 0x2c0]
vmovdqu ymmword [r12 + 0x2c0], ymm2
vpand ymm3, ymm0, ymmword [rax + 0xe0]
vpand ymm2, ymm1, ymmword [rdx + 0xe0]
vpor ymm2, ymm2, ymm3
vpxor ymm2, ymm2, ymmword [r12 + 0xe0]
vmovdqu ymmword [r12 + 0xe0], ymm2
vpand ymm3, ymm0, ymmword [r9 + 0xe0]
vpand ymm2, ymm1, ymmword [r10 + 0xe0]
vpor ymm2, ymm2, ymm3
vpxor ymm2, ymm2, ymmword [r12 + 0x1e0]
vmovdqu ymmword [r12 + 0x1e0], ymm2
vpand ymm2, ymm1, ymmword [r8 + 0xe0]
vpand ymm0, ymm0, ymmword [rcx + 0xe0]
vpor ymm0, ymm2, ymm0
vpxor ymm0, ymm0, ymmword [r12 + 0x2e0]
vmovdqu ymmword [r12 + 0x2e0], ymm0
mov rbx, qword [rsp + 0x90]
mov r11, qword [rsp + 0x40]
mov rcx, r12
mov rsi, qword [rsp + 0x98]
mov r14, qword [rsp + 0xa0]
mov qword [rsp + 0x28], rbx
mov r8, qword [rsp + 0xa8]
mov r9, r11
mov qword [rsp + 0x20], rsi
mov rdx, r14
vzeroupper
call sym.salsa8_simd128_2way_3buf
mov qword [rsp + 0x28], r8
mov r9, r12
mov qword [rsp + 0x20], r14
mov r8, rbx
mov rdx, rsi
mov rcx, r11
call sym.salsa8_simd128_2way_3buf
add dword [rsp + 0x3c], 1
mov eax, dword [rsp + 0x3c]
cmp eax, dword [rsp + 0x130]
vmovdqu ymm1, ymmword [0x1402f5520]
jne 0x14018c7b0
vzeroupper
vmovups xmm6, xmmword [rsp + 0xc0]
add rsp, 0xd8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov eax, dword [rsp + 0x5c]
mov r10, qword [rsp + 0x70]
mov rdx, r12
mov r11, qword [rsp + 0x78]
mov rbx, qword [rsp + 0x60]
shl eax, 5
mov rsi, qword [rsp + 0x68]
shl r10, 8
lea r8, [r15 + rax*8]
mov eax, dword [rsp + 0x58]
shl r11, 8
shl rbx, 8
shl rsi, 8
shl eax, 5
lea r9, [r15 + rax*8]
mov rax, qword [rsp + 0xb0]
add r10, rax
add r11, rax
mov rax, qword [rsp + 0xb8]
add rbx, rax
add rsi, rax
xor eax, eax
nop dword [rax]
mov r13, qword [r8 + rax]
mov ecx, dword [r9 + rax]
and r13, rbp
or rcx, r13
xor qword [rdx], rcx
mov r13, qword [r10 + rax]
mov ecx, dword [r11 + rax]
and r13, rbp
or rcx, r13
xor qword [rdx + 0x100], rcx
mov r13, qword [rbx + rax]
mov ecx, dword [rsi + rax]
add rax, 8
and r13, rbp
or rcx, r13
xor qword [rdx + 0x200], rcx
add rdx, 8
cmp rax, 0x100
jne 0x14018cdb8
jmp 0x14018ccc0