Function at 0x14008ef50
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rdi
push r14
sub rsp, 0x20
mov rax, qword [rcx + 0x28]
mov r14, r9
mov rbx, r8
mov rdi, rdx
mov rbp, rcx
cmp qword [rcx + 0x20], rax
jne 0x14008ee20
call fcn.140041540
mov ecx, 1
call fcn.1400506a0
test al, al
je 0x14008ee75
cmp r14, 8
jb 0x14008ee75
mov qword [rsp + 0x30], rsi
mov rsi, r14
shr rsi, 3
imul rax, rsi, 0xfffffffffffffff8
add r14, rax
nop word [rax + rax]
mov r9, qword [rbp + 0x20]
mov r8, rbx
mov rdx, rdi
mov rcx, rbp
call fcn.1400a9af0
add rdi, 0x40
add rbx, 0x40
sub rsi, 1
jne 0x14008ee50
mov rsi, qword [rsp + 0x30]
mov r9, qword [rbp + 0x20]
mov r8, r14
mov rdx, rbx
mov rcx, rdi
mov rbx, qword [rsp + 0x38]
mov rbp, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x48]
add rsp, 0x20
pop r14
jmp 0x14008ef50
test r8, r8
je 0x14008f456
mov r11, rsp
mov qword [r11 + 0x20], r9
mov qword [r11 + 0x18], r8
push rsi
sub rsp, 0x60
mov qword [r11 + 8], rbx
mov rax, rdx
mov qword [r11 - 0x10], rbp
lea rdx, [r9 + 4]
mov qword [r11 - 0x18], rdi
sub rax, rcx
mov qword [r11 - 0x20], r12
mov qword [r11 - 0x28], r13
mov qword [r11 - 0x30], r14
mov qword [r11 - 0x38], r15
lea r15, [rcx + 4]
lea rcx, [rax - 2]
mov qword [rsp + 0x78], rax
mov qword [rsp + 0x18], rcx
lea rcx, [rax + 2]
add rax, 0xfffffffffffffffc
mov qword [rsp + 8], r15
mov qword [rsp + 0x10], rax
mov qword [rsp + 0x20], rcx
nop dword [rax + rax]
movzx r13d, word [r15 - 4]
movzx r14d, word [r15 - 2]
movzx eax, word [r15]
movzx r12d, word [r15 + 2]
mov r15, rdx
rol r13w, 8
rol r14w, 8
rol ax, 8
rol r12w, 8
mov qword [rsp], 4
nop dword [rax]
nop word [rax + rax]
movzx r10d, word [r15 - 4]
xor r9d, r9d
movzx r11d, word [r15 + 4]
mov r8d, r10d
movzx ecx, r13w
imul r8d, ecx
movzx ecx, r8w
mov edx, r8d
shr edx, 0x10
cmp ecx, edx
lea esi, [r8 - 1]
not r8d
setb r9b
add r14w, word [r15 - 2]
add ax, word [r15]
sub r9w, dx
add r9w, cx
shr r8d, 0x1f
shr esi, 0x1f
mov ecx, 1
sub cx, r10w
and si, r8w
movzx r10d, word [r15 + 2]
sub cx, r13w
xor cx, r9w
mov r8d, r10d
neg si
and si, cx
movzx ecx, r12w
imul r8d, ecx
xor si, r9w
xor r9d, r9d
movzx ecx, r8w
mov edx, r8d
shr edx, 0x10
cmp ecx, edx
lea ebp, [r8 - 1]
not r8d
setb r9b
shr r8d, 0x1f
sub r9w, dx
shr ebp, 0x1f
add r9w, cx
and bp, r8w
neg bp
mov ecx, 1
sub cx, r10w
movzx r10d, si
sub cx, r12w
xor r10w, ax
xor cx, r9w
movzx r8d, r10w
imul r8d, r11d
and bp, cx
xor bp, r9w
xor r9d, r9d
movzx ecx, r8w
mov edx, r8d
shr edx, 0x10
cmp ecx, edx
lea edi, [r8 - 1]
not r8d
setb r9b
shr edi, 0x1f
shr r8d, 0x1f
sub r9w, dx
add r9w, cx
and di, r8w
neg di
mov ecx, 1
sub cx, r10w
movzx r10d, r14w
sub cx, r11w
xor r10w, bp
movzx r11d, word [r15 + 6]
xor cx, r9w
and di, cx
xor di, r9w
add r10w, di
movzx r8d, r10w
imul r8d, r11d
movzx ecx, r8w
lea ebx, [r8 - 1]
xor r9d, r9d
mov edx, r8d
shr edx, 0x10
not r8d
cmp ecx, edx
setb r9b
shr ebx, 0x1f
sub r9w, dx
shr r8d, 0x1f
add r9w, cx
and bx, r8w
neg bx
xor r8d, r8d
mov ecx, 1
sub cx, r10w
movzx r10d, word [r15 + 0x10]
sub cx, r11w
xor cx, r9w
and bx, cx
xor bx, r9w
movzx r9d, word [r15 + 8]
xor si, bx
add di, bx
xor bp, di
movzx r13d, si
imul r13d, r9d
movzx ecx, r13w
mov edx, r13d
shr edx, 0x10
cmp ecx, edx
setb r8b
xor bx, ax
add bx, word [r15 + 0xa]
sub r8w, dx
add r8w, cx
movzx eax, bp
lea ecx, [r13 - 1]
xor edx, edx
shr ecx, 0x1f
not r13d
shr r13d, 0x1f
xor r14w, di
add r14w, word [r15 + 0xc]
and r13w, cx
neg r13w
mov ecx, 1
sub cx, si
movzx r11d, r14w
sub cx, r9w
xor cx, r8w
and r13w, cx
xor r13w, r8w
movzx r8d, word [r15 + 0xe]
mov r12d, r8d
movzx r9d, r13w
imul r12d, eax
movzx eax, r12w
mov ecx, r12d
shr ecx, 0x10
cmp eax, ecx
setb dl
xor r9w, r14w
sub dx, cx
add dx, ax
lea eax, [r12 - 1]
shr eax, 0x1f
not r12d
shr r12d, 0x1f
and r12w, ax
mov eax, 1
sub ax, r8w
neg r12w
sub ax, bp
xor ax, dx
and r12w, ax
movzx eax, r9w
xor r12w, dx
imul eax, r10d
mov edx, eax
movzx ecx, ax
lea r15, [r15 + 0x18]
xor r8d, r8d
shr edx, 0x10
cmp ecx, edx
setb r8b
sub r8w, dx
add r8w, cx
lea ecx, [rax - 1]
shr ecx, 0x1f
not eax
shr eax, 0x1f
and ax, cx
mov ecx, 1
sub cx, r9w
neg ax
sub cx, r10w
movzx r9d, bx
movzx r10d, word [r15 - 6]
xor cx, r8w
and ax, cx
xor r9w, r12w
xor ax, r8w
xor r8d, r8d
add r9w, ax
movzx r14d, r9w
imul r14d, r10d
movzx ecx, r14w
mov edx, r14d
shr edx, 0x10
cmp ecx, edx
setb r8b
sub r8w, dx
add r8w, cx
lea ecx, [r14 - 1]
not r14d
shr ecx, 0x1f
shr r14d, 0x1f
and r14w, cx
mov ecx, 1
neg r14w
sub cx, r9w
sub cx, r10w
xor cx, r8w
and r14w, cx
xor r14w, r8w
add ax, r14w
xor r13w, r14w
xor r12w, ax
xor r14w, r11w
xor ax, bx
sub qword [rsp], 1
jne 0x14008f000
mov rsi, qword [rsp + 0x88]
xor r9d, r9d
mov r15, qword [rsp + 8]
movzx ecx, r13w
movzx r10d, word [rsi + 0x60]
movzx edi, word [rsi + 0x66]
mov r8d, r10d
imul r8d, ecx
mov r11d, edi
movzx ecx, r8w
mov edx, r8d
shr edx, 0x10
cmp ecx, edx
setb r9b
xor ebx, ebx
sub r9w, dx
add r9w, cx
movzx ecx, r12w
imul r11d, ecx
movzx ecx, r11w
mov edx, r11d
shr edx, 0x10
cmp ecx, edx
setb bl
add ax, word [rsi + 0x62]
add r14w, word [rsi + 0x64]
sub bx, dx
add bx, cx
rol ax, 8
lea edx, [r8 - 1]
rol r14w, 8
shr edx, 0x1f
mov ecx, 1
sub cx, r10w
not r8d
sub cx, r13w
shr r8d, 0x1f
xor cx, r9w
and dx, r8w
neg dx
and dx, cx
mov rcx, qword [rsp + 0x10]
xor dx, r9w
rol dx, 8
mov word [rcx + r15], dx
lea rdx, [rsi + 4]
mov rcx, qword [rsp + 0x18]
mov word [rcx + r15], ax
lea ecx, [r11 - 1]
mov rax, qword [rsp + 0x78]
not r11d
shr ecx, 0x1f
shr r11d, 0x1f
and cx, r11w
mov word [r15 + rax], r14w
neg cx
mov eax, 1
sub ax, di
sub ax, r12w
xor ax, bx
and cx, ax
mov rax, qword [rsp + 0x20]
xor cx, bx
rol cx, 8
mov word [rax + r15], cx
add r15, 8
sub qword [rsp + 0x80], 1
mov qword [rsp + 8], r15
jne 0x14008efc0
mov r15, qword [rsp + 0x30]
mov r14, qword [rsp + 0x38]
mov r13, qword [rsp + 0x40]
mov r12, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x70]
add rsp, 0x60
pop rsi
ret