Function at 0x1800eb980
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x98
mov rbp, r9
mov rdi, r8
mov r15, rdx
mov rbx, rcx
cmp rdx, 0x21
jae 0x1800eb9c8
mov rax, qword [rsp + 0x110]
mov qword [rsp + 0x20], rax
mov rcx, rbx
mov rdx, r15
mov r8, rdi
mov r9, rbp
call fcn.1800eac30
jmp 0x1800ebf8f
mov rax, qword [rsp + 0x108]
mov qword [rsp + 0x40], rax
mov esi, dword [rsp + 0x100]
lea rax, [rdi - 0x30]
mov qword [rsp + 0x50], rax
mov r13d, 0xff
mov qword [rsp + 0x58], rbp
mov r14, r15
nop word cs:[rax + rax]
sub esi, 1
jb 0x1800ebf6c
mov r9, r14
shr r9, 3
lea rdx, [r9 + r9*2]
shl rdx, 6
add rdx, rbx
imul r8, r9, 0x150
add r8, rbx
cmp r14, 0x40
mov dword [rsp + 0x4c], esi
jae 0x1800eba60
mov rax, qword [rbx]
mov r9, qword [rdx]
cmp rax, r9
setb cl
je 0x1800eba70
mov r10, qword [r8]
cmp rax, r10
setb r11b
je 0x1800eba87
mov rax, rbx
cmp cl, r11b
je 0x1800eba9b
jmp 0x1800ebab7
mov rcx, rbx
call fcn.1800ea0e0
jmp 0x1800ebab7
mov rcx, qword [rbx + 0x18]
cmp rcx, qword [rdx + 0x18]
setb cl
mov r10, qword [r8]
cmp rax, r10
setb r11b
jne 0x1800eba49
mov rax, qword [rbx + 0x18]
cmp rax, qword [r8 + 0x18]
setb r11b
mov rax, rbx
cmp cl, r11b
jne 0x1800ebab7
cmp r9, r10
setb al
jne 0x1800ebaae
mov rax, qword [rdx + 0x18]
cmp rax, qword [r8 + 0x18]
setb al
xor cl, al
cmovne rdx, r8
mov rax, rdx
sub rax, rbx
movabs rcx, 0xaaaaaaaaaaaaaaab
mul rcx
mov r12, rdx
shr r12, 5
lea rax, [r12 + r12*2]
shl rax, 4
lea rsi, [rbx + rax]
movups xmm0, xmmword [rbx + rax]
movups xmm1, xmmword [rbx + rax + 0x10]
movups xmm2, xmmword [rbx + rax + 0x20]
movaps xmmword [rsp + 0x80], xmm2
movaps xmmword [rsp + 0x70], xmm1
movaps xmmword [rsp + 0x60], xmm0
cmp qword [rsp + 0x40], 0
je 0x1800ebb38
mov rax, qword [rsp + 0x40]
mov rcx, qword [rax]
xor eax, eax
cmp rcx, qword [rsi]
setne al
cmovb eax, r13d
cmp al, 0xff
je 0x1800ebb38
movzx eax, al
test eax, eax
jne 0x1800ebd50
mov rax, qword [rsp + 0x40]
mov rax, qword [rax + 0x18]
cmp rax, qword [rsi + 0x18]
jae 0x1800ebd50
cmp r14, rbp
ja 0x1800ebfa4
lea rbp, [r14 + r14*2]
shl rbp, 4
lea rcx, [rdi + rbp]
xor r15d, r15d
mov rax, rbx
mov rdx, r12
nop word cs:[rax + rax]
lea r8, [rdx + rdx*2]
shl r8, 4
add r8, rbx
jmp 0x1800ebbad
add rcx, 0xffffffffffffffd0
test r9b, r9b
mov r10, rcx
cmovne r10, rdi
lea r11, [r15 + r15*2]
shl r11, 4
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movups xmm2, xmmword [rax + 0x20]
movups xmmword [r10 + r11 + 0x20], xmm2
movups xmmword [r10 + r11 + 0x10], xmm1
movups xmmword [r10 + r11], xmm0
movzx r9d, r9b
add r15, r9
add rax, 0x30
cmp rax, r8
jae 0x1800ebbd0
mov r9, qword [rax]
cmp r9, qword [rsi]
setb r9b
jne 0x1800ebb70
mov r9, qword [rax + 0x18]
cmp r9, qword [rsi + 0x18]
setb r9b
jmp 0x1800ebb70
cmp rdx, r14
je 0x1800ebc10
lea rdx, [r15 + r15*2]
shl rdx, 4
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movups xmm2, xmmword [rax + 0x20]
movups xmmword [rcx + rdx - 0x10], xmm2
movups xmmword [rcx + rdx - 0x20], xmm1
movups xmmword [rcx + rdx - 0x30], xmm0
add rcx, 0xffffffffffffffd0
add rax, 0x30
mov rdx, r14
jmp 0x1800ebb60
mov rax, r15
shl rax, 4
lea r8, [rax + rax*2]
mov rcx, rbx
mov rdx, rdi
call fcn.1801f0cd0
mov rdx, r14
sub rdx, r15
je 0x1800ebcf4
lea rax, [r15 + 1]
cmp r14, rax
jne 0x1800ebc40
xor r8d, r8d
jmp 0x1800ebcb7
mov rax, rdx
and rax, 0xfffffffffffffffe
lea rcx, [r15 + r15*2]
shl rcx, 4
add rcx, rbx
add rbp, qword [rsp + 0x50]
xor r9d, r9d
nop word [rax + rax]
movups xmm0, xmmword [rbp]
movups xmm1, xmmword [rbp + 0x10]
movups xmm2, xmmword [rbp + 0x20]
movups xmmword [rcx + 0x20], xmm2
movups xmmword [rcx + 0x10], xmm1
movups xmmword [rcx], xmm0
lea r8, [r9 + 2]
xor r9, 0xfffffffffffffffe
add r9, r14
lea r9, [r9 + r9*2]
shl r9, 4
movups xmm0, xmmword [rdi + r9]
movups xmm1, xmmword [rdi + r9 + 0x10]
movups xmm2, xmmword [rdi + r9 + 0x20]
movups xmmword [rcx + 0x30], xmm0
movups xmmword [rcx + 0x40], xmm1
movups xmmword [rcx + 0x50], xmm2
add rcx, 0x60
add rbp, 0xffffffffffffffa0
mov r9, r8
cmp rax, r8
jne 0x1800ebc60
test dl, 1
je 0x1800ebcf4
mov rax, r8
not rax
add rax, r14
lea rax, [rax + rax*2]
shl rax, 4
add r8, r15
lea rcx, [r8 + r8*2]
shl rcx, 4
movups xmm0, xmmword [rdi + rax]
movups xmm1, xmmword [rdi + rax + 0x10]
movups xmm2, xmmword [rdi + rax + 0x20]
movups xmmword [rbx + rcx + 0x20], xmm2
movups xmmword [rbx + rcx + 0x10], xmm1
movups xmmword [rbx + rcx], xmm0
test r15, r15
mov rbp, qword [rsp + 0x58]
je 0x1800ebd50
cmp r14, r15
jb 0x1800ebfa4
lea rcx, [r15 + r15*2]
shl rcx, 4
add rcx, rbx
mov rax, qword [rsp + 0x110]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x60]
mov qword [rsp + 0x28], rax
mov esi, dword [rsp + 0x4c]
mov dword [rsp + 0x20], esi
mov r8, rdi
mov r9, rbp
call fcn.1800eb980
mov r14, r15
cmp r15, 0x21
jae 0x1800eba00
jmp 0x1800eb9a5
cmp r14, rbp
ja 0x1800ebfa4
lea rax, [r14 + r14*2]
shl rax, 4
mov qword [rsp + 0x40], rax
add rax, rdi
xor ebp, ebp
mov rcx, rbx
nop
lea rdx, [r12 + r12*2]
shl rdx, 4
add rdx, rbx
jmp 0x1800ebdc8
add rax, 0xffffffffffffffd0
xor r9d, r9d
cmp r8b, 0xff
mov r8, rax
cmovne r8, rdi
setne r9b
lea r10, [rbp*2]
add r10, rbp
shl r10, 4
movups xmm0, xmmword [rcx]
movups xmm1, xmmword [rcx + 0x10]
movups xmm2, xmmword [rcx + 0x20]
movups xmmword [r8 + r10 + 0x20], xmm2
movups xmmword [r8 + r10 + 0x10], xmm1
movups xmmword [r8 + r10], xmm0
add rbp, r9
add rcx, 0x30
cmp rcx, rdx
jae 0x1800ebe00
mov r9, qword [rsi]
xor r8d, r8d
cmp r9, qword [rcx]
setne r8b
cmovb r8d, r13d
test r8b, r8b
jne 0x1800ebd80
mov r9, qword [rsi + 0x18]
xor r8d, r8d
cmp r9, qword [rcx + 0x18]
setne r8b
cmovb r8d, r13d
jmp 0x1800ebd80
cmp r12, r14
je 0x1800ebe40
add rax, 0xffffffffffffffd0
lea rdx, [rbp*2]
add rdx, rbp
shl rdx, 4
movups xmm0, xmmword [rcx]
movups xmm1, xmmword [rcx + 0x10]
movups xmm2, xmmword [rcx + 0x20]
movups xmmword [rdi + rdx + 0x20], xmm2
movups xmmword [rdi + rdx + 0x10], xmm1
movups xmmword [rdi + rdx], xmm0
inc rbp
add rcx, 0x30
mov r12, r14
jmp 0x1800ebd70
mov rax, rbp
shl rax, 4
lea r8, [rax + rax*2]
mov rcx, rbx
mov rdx, rdi
call fcn.1801f0cd0
mov r15, r14
sub r15, rbp
mov esi, dword [rsp + 0x4c]
je 0x1800ebf37
lea rax, [rbp + 1]
cmp r14, rax
jne 0x1800ebe76
xor edx, edx
jmp 0x1800ebef9
mov rax, r15
and rax, 0xfffffffffffffffe
lea rcx, [rbp*2]
add rcx, rbp
shl rcx, 4
add rcx, rbx
mov r9, qword [rsp + 0x40]
add r9, qword [rsp + 0x50]
xor r8d, r8d
nop dword [rax]
movups xmm0, xmmword [r9]
movups xmm1, xmmword [r9 + 0x10]
movups xmm2, xmmword [r9 + 0x20]
movups xmmword [rcx + 0x20], xmm2
movups xmmword [rcx + 0x10], xmm1
movups xmmword [rcx], xmm0
lea rdx, [r8 + 2]
xor r8, 0xfffffffffffffffe
add r8, r14
lea r8, [r8 + r8*2]
shl r8, 4
movups xmm0, xmmword [rdi + r8]
movups xmm1, xmmword [rdi + r8 + 0x10]
movups xmm2, xmmword [rdi + r8 + 0x20]
movups xmmword [rcx + 0x30], xmm0
movups xmmword [rcx + 0x40], xmm1
movups xmmword [rcx + 0x50], xmm2
add rcx, 0x60
add r9, 0xffffffffffffffa0
mov r8, rdx
cmp rax, rdx
jne 0x1800ebea0
test r15b, 1
je 0x1800ebf37
mov rax, rdx
not rax
add rax, r14
lea rax, [rax + rax*2]
shl rax, 4
add rdx, rbp
lea rcx, [rdx + rdx*2]
shl rcx, 4
movups xmm0, xmmword [rdi + rax]
movups xmm1, xmmword [rdi + rax + 0x10]
movups xmm2, xmmword [rdi + rax + 0x20]
movups xmmword [rbx + rcx + 0x20], xmm2
movups xmmword [rbx + rcx + 0x10], xmm1
movups xmmword [rbx + rcx], xmm0
cmp r14, rbp
jb 0x1800ebfa4
lea rax, [rbp*2]
add rax, rbp
shl rax, 4
add rbx, rax
mov eax, 0
mov qword [rsp + 0x40], rax
cmp r15, 0x21
mov rbp, qword [rsp + 0x58]
jae 0x1800eb9f0
jmp 0x1800eb9a5
mov rax, qword [rsp + 0x110]
mov qword [rsp + 0x28], rax
mov byte [rsp + 0x20], 1
mov rcx, rbx
mov rdx, r14
mov r8, rdi
mov r9, rbp
call fcn.1800e59a0
nop
add rsp, 0x98
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
ud2