Function at 0x1400e8760
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 0x1400e87a8
mov rax, qword [rsp + 0x110]
mov qword [rsp + 0x20], rax
mov rcx, rbx
mov rdx, r15
mov r8, rdi
mov r9, rbp
call fcn.1400e7a10
jmp 0x1400e8d6f
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 0x1400e8d4c
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 0x1400e8840
mov rax, qword [rbx]
mov r9, qword [rdx]
cmp rax, r9
setb cl
je 0x1400e8850
mov r10, qword [r8]
cmp rax, r10
setb r11b
je 0x1400e8867
mov rax, rbx
cmp cl, r11b
je 0x1400e887b
jmp 0x1400e8897
mov rcx, rbx
call fcn.1400e6ec0
jmp 0x1400e8897
mov rcx, qword [rbx + 0x18]
cmp rcx, qword [rdx + 0x18]
setb cl
mov r10, qword [r8]
cmp rax, r10
setb r11b
jne 0x1400e8829
mov rax, qword [rbx + 0x18]
cmp rax, qword [r8 + 0x18]
setb r11b
mov rax, rbx
cmp cl, r11b
jne 0x1400e8897
cmp r9, r10
setb al
jne 0x1400e888e
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 0x1400e8918
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 0x1400e8918
movzx eax, al
test eax, eax
jne 0x1400e8b30
mov rax, qword [rsp + 0x40]
mov rax, qword [rax + 0x18]
cmp rax, qword [rsi + 0x18]
jae 0x1400e8b30
cmp r14, rbp
ja 0x1400e8d84
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 0x1400e898d
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 0x1400e89b0
mov r9, qword [rax]
cmp r9, qword [rsi]
setb r9b
jne 0x1400e8950
mov r9, qword [rax + 0x18]
cmp r9, qword [rsi + 0x18]
setb r9b
jmp 0x1400e8950
cmp rdx, r14
je 0x1400e89f0
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 0x1400e8940
mov rax, r15
shl rax, 4
lea r8, [rax + rax*2]
mov rcx, rbx
mov rdx, rdi
call fcn.1401ef240
mov rdx, r14
sub rdx, r15
je 0x1400e8ad4
lea rax, [r15 + 1]
cmp r14, rax
jne 0x1400e8a20
xor r8d, r8d
jmp 0x1400e8a97
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 0x1400e8a40
test dl, 1
je 0x1400e8ad4
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 0x1400e8b30
cmp r14, r15
jb 0x1400e8d84
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.1400e8760
mov r14, r15
cmp r15, 0x21
jae 0x1400e87e0
jmp 0x1400e8785
cmp r14, rbp
ja 0x1400e8d84
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 0x1400e8ba8
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 0x1400e8be0
mov r9, qword [rsi]
xor r8d, r8d
cmp r9, qword [rcx]
setne r8b
cmovb r8d, r13d
test r8b, r8b
jne 0x1400e8b60
mov r9, qword [rsi + 0x18]
xor r8d, r8d
cmp r9, qword [rcx + 0x18]
setne r8b
cmovb r8d, r13d
jmp 0x1400e8b60
cmp r12, r14
je 0x1400e8c20
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 0x1400e8b50
mov rax, rbp
shl rax, 4
lea r8, [rax + rax*2]
mov rcx, rbx
mov rdx, rdi
call fcn.1401ef240
mov r15, r14
sub r15, rbp
mov esi, dword [rsp + 0x4c]
je 0x1400e8d17
lea rax, [rbp + 1]
cmp r14, rax
jne 0x1400e8c56
xor edx, edx
jmp 0x1400e8cd9
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 0x1400e8c80
test r15b, 1
je 0x1400e8d17
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 0x1400e8d84
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 0x1400e87d0
jmp 0x1400e8785
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.1400e2780
nop
add rsp, 0x98
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
ud2