Function at 0x14018e3a0
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 + 0xd0]
movq xmm0, qword [rax]
mov eax, dword [rsp + 0xd8]
mov rdi, r9
mov r13, rcx
mov r14, rdx
mov r10d, r8d
lea r9d, [r8 - 8]
test eax, eax
je 0x14018e530
test r9d, r9d
js 0x14018e8b0
mov ebp, r9d
mov dword [rsp + 0x30], r9d
lea r12, [rsp + 0x48]
mov rbx, rcx
shr ebp, 3
mov dword [rsp + 0xb0], r10d
lea eax, [rbp + 1]
mov dword [rsp + 0x20], ebp
mov rbp, qword [rsp + 0xc8]
lea r8, [rax*8]
mov qword [rsp + 0x28], r8
lea r15, [rdx + r8]
nop
movq xmm1, qword [rbx]
mov r9, rbp
mov rdx, rdi
mov rcx, r12
mov r8, qword [rsp + 0xc0]
add r14, 8
add rbx, 8
pxor xmm0, xmm1
movq qword [rsp + 0x48], xmm0
call fcn.14018dbd0
movq xmm0, qword [rsp + 0x48]
pshufd xmm2, xmm0, 0xe5
movd ecx, xmm2
movd edx, xmm0
mov eax, ecx
mov r11d, ecx
movzx esi, ch
mov r9d, edx
shr eax, 0x18
shr r11d, 0x10
mov r8d, edx
shr r9d, 0x18
movzx eax, al
movzx r11d, r11b
shr r8d, 0x10
shl rax, 8
movzx r9d, r9b
movzx r8d, r8b
or rax, r11
movzx r11d, cl
shl rax, 8
or rax, rsi
movzx esi, dh
shl rax, 8
or rax, r11
shl rax, 8
or rax, r9
shl rax, 8
or rax, r8
movzx r8d, dl
shl rax, 8
or rax, rsi
shl rax, 8
or rax, r8
mov qword [r14 - 8], rax
cmp r14, r15
jne 0x14018e420
mov ebp, dword [rsp + 0x20]
mov ebx, ecx
mov r8, qword [rsp + 0x28]
mov r10d, dword [rsp + 0xb0]
mov r9d, dword [rsp + 0x30]
mov ecx, ebp
add r13, r8
neg ecx
shl ecx, 3
lea eax, [r10 + rcx - 0x10]
lea r10d, [rcx + r9]
mov r8d, ebx
cmp eax, 0xfffffff8
je 0x14018e8d0
movsxd rax, r10d
add rax, r13
cmp r10d, 7
ja case.0x14018e52c.0
lea r9, [0x1402bfbc0]
mov ecx, r10d
movsxd rcx, dword [r9 + rcx*4]
add rcx, r9
jmp rcx
pshufd xmm3, xmm0, 0xe5
movd esi, xmm0
movd ebx, xmm3
cmp r8d, 7
jle 0x14018e8a0
mov edx, r9d
lea r12, [rsp + 0x48]
mov dword [rsp + 0x3c], r9d
shr edx, 3
mov qword [rsp + 0xa8], r14
lea eax, [rdx + 1]
mov dword [rsp + 0x28], edx
lea rcx, [rax*8]
mov dword [rsp + 0xb0], r8d
mov qword [rsp + 0x30], rcx
lea r11, [r13 + rcx]
mov qword [rsp + 0xb8], rdi
mov rbp, r11
mov qword [rsp + 0x20], r12
mov rcx, qword [rsp + 0x20]
mov r12d, esi
mov r15d, ebx
mov esi, dword [r13]
mov ebx, dword [r13 + 4]
add r14, 8
add r13, 8
mov r9, qword [rsp + 0xc8]
mov r8, qword [rsp + 0xc0]
mov rdx, qword [rsp + 0xb8]
mov dword [rsp + 0x48], esi
mov dword [rsp + 0x4c], ebx
call fcn.14018dd10
mov ecx, dword [rsp + 0x4c]
mov edx, dword [rsp + 0x48]
xor ecx, r15d
xor edx, r12d
mov eax, ecx
mov r11d, ecx
movzx edi, ch
mov r9d, edx
shr eax, 0x18
shr r11d, 0x10
movzx ecx, cl
mov r8d, edx
shr r9d, 0x18
movzx eax, al
movzx r11d, r11b
shr r8d, 0x10
shl rax, 8
movzx r9d, r9b
or rax, r11
shl rax, 8
or rax, rdi
shl rax, 8
or rax, rcx
movzx ecx, r8b
shl rax, 8
or rax, r9
shl rax, 8
mov r8, rax
movzx eax, dh
or r8, rcx
shl r8, 8
or r8, rax
movzx eax, dl
mov rdx, r8
shl rdx, 8
or rdx, rax
mov qword [r14 - 8], rdx
cmp r13, rbp
jne 0x14018e590
mov edx, dword [rsp + 0x28]
mov r10d, dword [rsp + 0xb0]
mov r11, rbp
mov rcx, qword [rsp + 0x30]
mov r9d, dword [rsp + 0x3c]
mov r14, qword [rsp + 0xa8]
neg edx
mov rdi, qword [rsp + 0xb8]
shl edx, 3
lea eax, [r10 + rdx - 0x10]
add r14, rcx
lea r10d, [rdx + r9]
mov dword [rsp + 0xb0], r10d
cmp eax, 0xfffffff8
je 0x14018e748
mov r12d, dword [r11]
mov r13d, dword [r11 + 4]
lea rcx, [rsp + 0x48]
mov rdx, rdi
mov r9, qword [rsp + 0xc8]
mov r8, qword [rsp + 0xc0]
mov dword [rsp + 0x48], r12d
mov dword [rsp + 0x4c], r13d
call fcn.14018dd10
xor esi, dword [rsp + 0x48]
xor ebx, dword [rsp + 0x4c]
movsxd rax, dword [rsp + 0xb0]
mov r10, rax
add rax, r14
cmp r10d, 7
ja case.0x14018e6fd.0
lea rcx, [0x1402bfbe0]
mov r10d, r10d
movsxd rdx, dword [rcx + r10*4]
add rdx, rcx
jmp rdx
mov edx, ebx
sub rax, 1
shr edx, 0x10
mov byte [rax], dl
mov byte [rax - 1], bh
sub rax, 1
mov byte [rax - 1], bl
lea rdx, [rax - 1]
mov ecx, esi
lea rax, [rdx - 1]
shr ecx, 0x18
mov byte [rdx - 1], cl
mov ecx, esi
lea rdx, [rax - 1]
shr ecx, 0x10
mov byte [rax - 1], cl
mov ebx, esi
lea rax, [rdx - 1]
mov byte [rdx - 1], bh
mov byte [rax - 1], sil
mov ebx, r13d
mov esi, r12d
nop dword [rax + rax]
mov eax, esi
mov r9d, esi
movzx ecx, sil
shr esi, 0x18
movzx eax, ah
shr r9d, 0x10
mov r8d, eax
movzx eax, bh
mov r11d, ebx
movzx edx, bl
shr ebx, 0x18
mov r10d, eax
shr r11d, 0x10
movzx eax, bl
movzx r11d, r11b
movzx r10d, r10b
movzx esi, sil
shl rax, 8
movzx r9d, r9b
movzx r8d, r8b
mov rdi, qword [rsp + 0xd0]
or rax, r11
shl rax, 8
or rax, r10
shl rax, 8
or rax, rdx
shl rax, 8
or rax, rsi
shl rax, 8
or rax, r9
shl rax, 8
or rax, r8
shl rax, 8
or rax, rcx
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 r8d, r8d
movzx ecx, byte [rax - 1]
sub rax, 1
shl ecx, 8
or ecx, r8d
movzx r8d, byte [rax - 1]
lea r9, [rax - 1]
or r8d, ecx
xor r8d, ebx
movzx r10d, byte [r9 - 1]
lea rax, [r9 - 1]
shl r10d, 0x18
movzx r9d, byte [rax - 1]
lea rcx, [rax - 1]
shl r9d, 0x10
or r9d, r10d
lea rax, [rcx - 1]
movzx ecx, byte [rcx - 1]
shl ecx, 8
or ecx, r9d
movzx eax, byte [rax - 1]
movd xmm4, r8d
or eax, ecx
xor eax, edx
movd xmm0, eax
punpckldq xmm0, xmm4
mov r9, qword [rsp + 0xc8]
mov r8, qword [rsp + 0xc0]
lea rcx, [rsp + 0x48]
mov rdx, rdi
movq qword [rsp + 0x48], xmm0
call fcn.14018dbd0
mov esi, dword [rsp + 0x48]
mov ebx, dword [rsp + 0x4c]
mov eax, esi
mov r9d, esi
mov r11d, ebx
movzx ecx, sil
shr r9d, 0x10
movzx eax, ah
movzx edx, bl
shr esi, 0x18
mov r8d, eax
movzx eax, bh
shr r11d, 0x10
mov r10d, eax
mov rax, qword [rsp + 0x48]
shr ebx, 0x18
mov qword [r15], rax
jmp 0x14018e771
mov eax, r9d
mov r11, rcx
jmp 0x14018e691
mov r15, rdx
pshufd xmm5, xmm0, 0xe5
mov eax, r9d
movd ebx, xmm5
movd edx, xmm0
jmp 0x14018e4ff
movzx eax, dh
mov r9d, edx
movzx ecx, dl
shr edx, 0x18
mov r8d, eax
shr r9d, 0x10
mov esi, edx
jmp 0x14018e75e
xor ecx, ecx
jmp 0x14018e823
mov rcx, rax
xor r9d, r9d
jmp 0x14018e815
xor r10d, r10d
jmp 0x14018e805
mov r9, rax
jmp 0x14018e7f8
xor ecx, ecx
jmp 0x14018e7e9
movzx r8d, byte [rax - 1]
sub rax, 1
shl r8d, 0x10
jmp 0x14018e7db
mov rdx, rax
jmp 0x14018e730
mov rdx, rax
jmp 0x14018e718