Function at 0x1400e81a0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x58
mov rax, qword [rsp + 0xc0]
movq xmm0, qword [rax]
mov eax, dword [rsp + 0xc8]
mov r10, rcx
mov r15d, r8d
lea r11d, [r8 - 8]
mov rdi, r9
test eax, eax
je 0x1400e8320
test r11d, r11d
js 0x1400e8670
mov r9d, r11d
mov dword [rsp + 0x30], r11d
lea rbp, [rsp + 0x48]
mov rbx, rcx
shr r9d, 3
mov qword [rsp + 0xa0], rcx
mov r13, rdx
lea r14d, [r9 + 1]
mov dword [rsp + 0x20], r9d
shl r14, 3
lea r12, [rdx + r14]
nop dword [rax]
movq xmm1, qword [rbx]
mov rdx, rdi
mov rcx, rbp
add r13, 8
add rbx, 8
pxor xmm0, xmm1
movq qword [rsp + 0x48], xmm0
call fcn.1400e7f20
movq xmm0, qword [rsp + 0x48]
mov edx, dword [rsp + 0x48]
pshufd xmm2, xmm0, 0xe5
movd ecx, xmm2
mov r10d, edx
mov r8d, edx
mov eax, ecx
mov r11d, ecx
movzx esi, ch
shr r10d, 0x18
shr eax, 0x18
shr r11d, 0x10
movzx r10d, r10b
movzx eax, al
movzx r11d, r11b
shr r8d, 0x10
shl rax, 8
or rax, r11
movzx r11d, cl
shl rax, 8
or rax, rsi
shl rax, 8
or rax, r11
shl rax, 8
or rax, r10
movzx r10d, r8b
shl rax, 8
mov r8, rax
movzx eax, dh
or r8, r10
shl r8, 8
or r8, rax
movzx eax, dl
mov rdx, r8
shl rdx, 8
or rdx, rax
mov qword [r13 - 8], rdx
cmp r13, r12
jne 0x1400e8218
mov r9d, dword [rsp + 0x20]
mov r11d, dword [rsp + 0x30]
mov ebx, ecx
mov r10, qword [rsp + 0xa0]
neg r9d
shl r9d, 3
add r10, r14
lea eax, [r15 + r9 - 0x10]
lea r15d, [r9 + r11]
mov ecx, ebx
movd r13d, xmm0
cmp eax, 0xfffffff8
je 0x1400e8520
movsxd rax, r15d
add rax, r10
cmp r15d, 7
ja case.0x1400e831e.0
lea r8, [0x1402ad710]
mov r15d, r15d
movsxd rdx, dword [r8 + r15*4]
add rdx, r8
jmp rdx
pshufd xmm3, xmm0, 0xe5
movd r13d, xmm0
movd ebx, xmm3
cmp r8d, 7
jle 0x1400e8660
mov r9d, r11d
lea rbp, [rsp + 0x48]
mov dword [rsp + 0x34], r11d
mov esi, ebx
shr r9d, 3
mov qword [rsp + 0xa0], r10
mov r14, r10
lea eax, [r9 + 1]
mov dword [rsp + 0x30], r9d
lea rcx, [rax*8]
mov dword [rsp + 0xb0], r8d
lea r12, [rdx + rcx]
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x20], rbp
mov qword [rsp + 0xa8], rdx
mov rbx, qword [rsp + 0xa8]
nop word [rax + rax]
mov ebp, r13d
mov rcx, qword [rsp + 0x20]
mov r13d, dword [r14]
mov r15d, esi
mov esi, dword [r14 + 4]
mov rdx, rdi
add rbx, 8
add r14, 8
mov dword [rsp + 0x48], r13d
mov dword [rsp + 0x4c], esi
call fcn.1400e8040
mov ecx, dword [rsp + 0x4c]
mov edx, dword [rsp + 0x48]
xor ecx, r15d
xor edx, ebp
mov eax, ecx
mov r11d, ecx
movzx ebp, ch
mov r10d, edx
shr eax, 0x18
shr r11d, 0x10
movzx ecx, cl
mov r8d, edx
shr r10d, 0x18
movzx eax, al
movzx r11d, r11b
shr r8d, 0x10
shl rax, 8
movzx r10d, r10b
movzx r8d, r8b
or rax, r11
shl rax, 8
or rax, rbp
shl rax, 8
or rax, rcx
movzx ecx, dh
shl rax, 8
or rax, r10
shl rax, 8
or rax, r8
shl rax, 8
or rax, rcx
movzx ecx, dl
shl rax, 8
mov rdx, rax
or rdx, rcx
mov qword [rbx - 8], rdx
cmp rbx, r12
jne 0x1400e8398
mov r9d, dword [rsp + 0x30]
mov r15d, dword [rsp + 0xb0]
mov ebx, esi
mov rcx, qword [rsp + 0x28]
mov r11d, dword [rsp + 0x34]
mov r10, qword [rsp + 0xa0]
neg r9d
shl r9d, 3
lea eax, [r15 + r9 - 0x10]
add r10, rcx
lea r15d, [r9 + r11]
cmp eax, 0xfffffff8
je 0x1400e8520
mov esi, dword [r10]
mov ebp, dword [r10 + 4]
mov rdx, rdi
lea rcx, [rsp + 0x48]
mov dword [rsp + 0x48], esi
mov dword [rsp + 0x4c], ebp
call fcn.1400e8040
mov rdi, qword [rsp + 0x38]
movsxd rax, r15d
xor ebx, dword [rsp + 0x4c]
xor r13d, dword [rsp + 0x48]
add rdi, rax
mov rax, rdi
cmp r15d, 7
ja case.0x1400e84cd.0
lea rcx, [0x1402ad730]
mov r15d, r15d
movsxd rdx, dword [rcx + r15*4]
add rdx, rcx
jmp rdx
mov edx, ebx
sub rax, 1
shr edx, 0x10
mov byte [rdi - 1], dl
mov byte [rax - 1], bh
sub rax, 1
mov byte [rax - 1], bl
lea rdx, [rax - 1]
mov ecx, r13d
lea rax, [rdx - 1]
shr ecx, 0x18
mov byte [rdx - 1], cl
mov ecx, r13d
lea rdx, [rax - 1]
shr ecx, 0x10
mov byte [rax - 1], cl
mov ebx, r13d
lea rax, [rdx - 1]
mov byte [rdx - 1], bh
mov byte [rax - 1], r13b
mov ebx, ebp
mov r13d, esi
nop word cs:[rax + rax]
mov eax, r13d
mov r8d, r13d
mov r11d, ebx
movzx edx, r13b
shr r8d, 0x10
movzx ecx, ah
movzx eax, bh
movzx r9d, bl
shr r13d, 0x18
mov r10d, eax
shr r11d, 0x10
shr ebx, 0x18
movzx eax, bl
movzx r11d, r11b
movzx r10d, r10b
movzx r13d, r13b
shl rax, 8
movzx r8d, r8b
movzx ecx, cl
mov rdi, qword [rsp + 0xc0]
or rax, r11
shl rax, 8
or rax, r10
shl rax, 8
or rax, r9
shl rax, 8
or rax, r13
shl rax, 8
or rax, r8
shl rax, 8
or rax, rcx
shl rax, 8
or rax, rdx
mov qword [rdi], rax
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
xor ecx, ecx
movzx edx, byte [rax - 1]
sub rax, 1
shl edx, 8
or edx, ecx
movzx ecx, byte [rax - 1]
lea r8, [rax - 1]
or ecx, edx
xor ecx, ebx
movzx r9d, byte [r8 - 1]
lea rax, [r8 - 1]
shl r9d, 0x18
movzx r8d, byte [rax - 1]
lea rdx, [rax - 1]
shl r8d, 0x10
or r8d, r9d
lea rax, [rdx - 1]
movzx edx, byte [rdx - 1]
shl edx, 8
or edx, r8d
movzx eax, byte [rax - 1]
movd xmm4, ecx
or eax, edx
xor eax, r13d
movd xmm0, eax
punpckldq xmm0, xmm4
lea rcx, [rsp + 0x48]
mov rdx, rdi
movq qword [rsp + 0x48], xmm0
call fcn.1400e7f20
mov r13d, dword [rsp + 0x48]
mov ebx, dword [rsp + 0x4c]
mov eax, r13d
mov r8d, r13d
mov r11d, ebx
movzx edx, r13b
shr r8d, 0x10
movzx ecx, ah
movzx eax, bh
movzx r9d, bl
shr r13d, 0x18
mov r10d, eax
mov rax, qword [rsp + 0x48]
shr r11d, 0x10
shr ebx, 0x18
mov qword [r12], rax
jmp 0x1400e8549
mov qword [rsp + 0x38], rdx
mov eax, r11d
jmp 0x1400e847a
pshufd xmm5, xmm0, 0xe5
mov eax, r11d
mov r12, rdx
movd ebx, xmm5
jmp 0x1400e82ed
xor edx, edx
jmp 0x1400e85f6
mov rdx, rax
xor r8d, r8d
jmp 0x1400e85e8
xor r9d, r9d
jmp 0x1400e85d8
mov r8, rax
jmp 0x1400e85cb
xor edx, edx
jmp 0x1400e85bf
movzx ecx, byte [rax - 1]
sub rax, 1
shl ecx, 0x10
jmp 0x1400e85b2
mov rdx, rdi
jmp 0x1400e84e9
mov rdx, rdi
jmp 0x1400e8503