Function at 0x180018580
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r14
xor ebx, ebx
mov rdi, r9
shr rdi, 3
mov r10, rcx
mov esi, ebx
test rdi, rdi
je 0x1800186b5
cmp rdi, 8
jb 0x180018674
add rcx, 0xfffffffffffffff8
lea rax, [r8 - 8]
lea rax, [rax + rdi*8]
lea rcx, [rcx + rdi*8]
cmp r10, rax
ja 0x1800185d5
cmp rcx, r8
jae 0x180018674
lea rax, [rdx - 8]
lea rax, [rax + rdi*8]
cmp r10, rax
ja 0x1800185eb
cmp rcx, rdx
jae 0x180018674
mov rbp, rdi
and rbp, 0xfffffffffffffff8
mov rcx, rdx
lea rax, [r8 + 0x10]
sub rcx, r8
mov r11, r10
sub r11, r8
nop dword [rax]
nop word [rax + rax]
movdqu xmm0, xmmword [rax - 0x10]
add rsi, 8
movdqu xmm1, xmmword [rcx + rax - 0x10]
movdqu xmm2, xmmword [rcx + rax]
lea rax, [rax + 0x40]
pxor xmm1, xmm0
movdqu xmm0, xmmword [rax - 0x40]
movdqu xmmword [r11 + rax - 0x50], xmm1
pxor xmm2, xmm0
movdqu xmm0, xmmword [rax - 0x30]
movdqu xmm1, xmmword [rcx + rax - 0x30]
movdqu xmmword [r11 + rax - 0x40], xmm2
pxor xmm1, xmm0
movdqu xmm0, xmmword [rax - 0x20]
movdqu xmm2, xmmword [rcx + rax - 0x20]
movdqu xmmword [r11 + rax - 0x30], xmm1
pxor xmm2, xmm0
movdqu xmmword [r11 + rax - 0x20], xmm2
cmp rsi, rbp
jb 0x180018610
cmp rsi, rdi
jae 0x1800186b5
mov rbp, rdx
lea rcx, [r8 + rsi*8]
mov r14, r10
sub rbp, r8
sub r14, r8
mov r11, rdi
sub r11, rsi
mov rsi, rdi
nop dword [rax]
nop word [rax + rax]
mov rax, qword [rcx + rbp]
xor rax, qword [rcx]
mov qword [rcx + r14], rax
lea rcx, [rcx + 8]
sub r11, 1
jne 0x1800186a0
lea rsi, [rsi*8]
sub r9, rsi
je 0x1800188e4
add r10, rsi
add rdx, rsi
add r8, rsi
mov rdi, r9
shr rdi, 2
mov rsi, rbx
test rdi, rdi
je 0x1800187d5
cmp rdi, 0x10
jb 0x1800187a4
lea rax, [rdi - 1]
lea rax, [r8 + rax*4]
lea rcx, [rdi - 1]
lea rcx, [r10 + rcx*4]
cmp r10, rax
ja 0x18001870a
cmp rcx, r8
jae 0x1800187a4
lea rax, [rdi - 1]
lea rax, [rdx + rax*4]
cmp r10, rax
ja 0x180018720
cmp rcx, rdx
jae 0x1800187a4
mov rbp, rdi
and rbp, 0xfffffffffffffff0
mov rcx, rdx
lea rax, [r8 + 0x10]
sub rcx, r8
mov r11, r10
sub r11, r8
nop word [rax + rax]
movdqu xmm0, xmmword [rax - 0x10]
add rsi, 0x10
movdqu xmm1, xmmword [rax + rcx - 0x10]
movdqu xmm2, xmmword [rax + rcx]
lea rax, [rax + 0x40]
pxor xmm1, xmm0
movdqu xmm0, xmmword [rax - 0x40]
movdqu xmmword [rax + r11 - 0x50], xmm1
pxor xmm2, xmm0
movdqu xmm0, xmmword [rax - 0x30]
movdqu xmm1, xmmword [rax + rcx - 0x30]
movdqu xmmword [rax + r11 - 0x40], xmm2
pxor xmm1, xmm0
movdqu xmm0, xmmword [rax - 0x20]
movdqu xmm2, xmmword [rax + rcx - 0x20]
movdqu xmmword [rax + r11 - 0x30], xmm1
pxor xmm2, xmm0
movdqu xmmword [rax + r11 - 0x20], xmm2
cmp rsi, rbp
jb 0x180018740
cmp rsi, rdi
jae 0x1800187d5
mov rbp, rdx
lea rcx, [r8 + rsi*4]
mov r14, r10
sub rbp, r8
sub r14, r8
mov r11, rdi
sub r11, rsi
mov rsi, rdi
mov eax, dword [rcx + rbp]
xor eax, dword [rcx]
mov dword [rcx + r14], eax
lea rcx, [rcx + 4]
sub r11, 1
jne 0x1800187c2
lea rsi, [rsi*4]
sub r9, rsi
je 0x1800188e4
add r10, rsi
add rdx, rsi
add r8, rsi
test r9, r9
je 0x1800188e4
cmp r9, 0x40
jb 0x1800188b3
lea rcx, [r10 - 1]
lea rax, [r8 - 1]
add rcx, r9
add rax, r9
cmp r10, rax
ja 0x18001881e
cmp rcx, r8
jae 0x1800188b3
lea rax, [rdx - 1]
add rax, r9
cmp r10, rax
ja 0x180018833
cmp rcx, rdx
jae 0x1800188b3
mov rdi, r9
and rdi, 0xffffffffffffffc0
mov rcx, rdx
mov r11, r10
sub rcx, r8
mov rax, r8
sub r11, r8
nop dword [rax]
movdqu xmm0, xmmword [rax]
add rbx, 0x40
movdqu xmm1, xmmword [rax + rcx]
movdqu xmm2, xmmword [rax + rcx + 0x10]
lea rax, [rax + 0x40]
pxor xmm1, xmm0
movdqu xmm0, xmmword [rax - 0x30]
movdqu xmmword [rax + r11 - 0x40], xmm1
pxor xmm2, xmm0
movdqu xmm0, xmmword [rax - 0x20]
movdqu xmm1, xmmword [rax + rcx - 0x20]
movdqu xmmword [rax + r11 - 0x30], xmm2
pxor xmm1, xmm0
movdqu xmm0, xmmword [rax - 0x10]
movdqu xmm2, xmmword [rcx + rax - 0x10]
movdqu xmmword [rax + r11 - 0x20], xmm1
pxor xmm2, xmm0
movdqu xmmword [r11 + rax - 0x10], xmm2
cmp rbx, rdi
jb 0x180018850
cmp rbx, r9
jae 0x1800188e4
sub rdx, r8
lea rax, [rbx + r8]
sub r10, r8
sub r9, rbx
nop word [rax + rax]
movzx ecx, byte [rdx + rax]
xor cl, byte [rax]
mov byte [r10 + rax], cl
lea rax, [rax + 1]
sub r9, 1
jne 0x1800188d0
mov rbx, qword [rsp + 0x10]
mov rbp, qword [rsp + 0x18]
mov rsi, qword [rsp + 0x20]
mov rdi, qword [rsp + 0x28]
pop r14
ret