Function at 0x14007ebd0
Capabilities:
Encode data using xor
Encrypt data using twofish

Disassembly:
mov rax, rsp
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x50
mov qword [rsp + 0x30], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov ebx, r8d
mov rsi, rdx
mov r12, rcx
xor edi, edi
cmp r8d, 0x10
ja 0x14007ec0b
lea ebp, [rdi + 2]
jmp 0x14007ec17
mov ebp, edi
cmp ebx, 0x18
seta bpl
add ebp, 3
lea eax, [rbp + rbp]
mov r14d, eax
mov qword [rsp + 0x40], r14
mov ecx, eax
call fcn.14006fcc0
or rcx, 0xffffffffffffffff
test r14, r14
jne 0x14007ec38
mov r15, rdi
jmp 0x14007ec4f
mov eax, 4
mul r14
cmovo rax, rcx
mov rcx, rax
call fcn.14000fdf0
mov r15, rax
mov qword [rsp + 0x48], r15
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], 4
mov r8, rbx
mov rdx, rsi
mov rcx, r15
call fcn.14001e9d0
lea r8, [r14*4]
sub r8, rbx
lea rcx, [rbx + r15]
xor edx, edx
call fcn.14001ed20
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x28]
call fcn.14007b790
mov esi, edi
mov r13, rdi
lea rdi, [0x1400fdf00]
mov r8d, ebp
mov rdx, r15
mov ecx, esi
call fcn.14007e030
mov r11d, eax
shr eax, 0x18
movzx edx, al
mov eax, r11d
shr eax, 0x10
movzx ecx, al
mov ebx, dword [rdi + rdx*4 + 0xc00]
xor ebx, dword [rdi + rcx*4 + 0x800]
mov eax, r11d
shr eax, 8
movzx ecx, al
xor ebx, dword [rdi + rcx*4 + 0x400]
movzx eax, r11b
xor ebx, dword [rdi + rax*4]
lea ecx, [rsi + 1]
mov r8d, ebp
lea rdx, [r15 + 4]
call fcn.14007e030
mov r11d, eax
shr eax, 0x18
movzx edx, al
mov eax, r11d
shr eax, 0x10
movzx ecx, al
mov r8d, dword [rdi + rdx*4 + 0xc00]
xor r8d, dword [rdi + rcx*4 + 0x800]
mov eax, r11d
shr eax, 8
movzx ecx, al
xor r8d, dword [rdi + rcx*4 + 0x400]
movzx eax, r11b
xor r8d, dword [rdi + rax*4]
rol r8d, 8
mov rcx, qword [r12 + 0xc0]
lea eax, [r8 + rbx]
mov dword [r13 + rcx], eax
lea ecx, [rbx + r8*2]
mov rax, qword [r12 + 0xc0]
rol ecx, 9
mov dword [r13 + rax + 4], ecx
add esi, 2
add r13, 8
cmp esi, 0x28
jb 0x14007eca1
mov r14, qword [rsp + 0x40]
mov rcx, r14
call fcn.14006fcc0
test r14, r14
mov edi, 0
jne 0x14007ed89
mov rax, rdi
mov qword [rsp + 0x20], rax
jmp 0x14007eda9
mov eax, 4
mul r14
mov rcx, 0xffffffffffffffff
cmovo rax, rcx
mov rcx, rax
call fcn.14000fdf0
mov qword [rsp + 0x20], rax
movsxd rcx, ebp
test ebp, ebp
je 0x14007edda
mov rbx, r15
lea rsi, [rax + rcx*8 - 8]
mov r13d, ebp
nop dword [rax + rax]
mov edx, dword [rbx]
mov ecx, dword [rbx + 4]
call fcn.14007dd30
mov dword [rsi], eax
add rbx, 8
sub rsi, 8
sub r13, 1
jne 0x14007edc0
mov ebx, 0x800
mov rsi, qword [rsp + 0x20]
lea r13, [0x1400fdf00]
nop dword [rax + rax]
mov r8d, ebp
mov rdx, rsi
mov ecx, edi
call fcn.14007e030
mov r11d, eax
mov rdx, qword [r12 + 0x10d8]
movzx ecx, al
mov ecx, dword [r13 + rcx*4]
mov dword [rbx + rdx - 0x800], ecx
mov r8, qword [r12 + 0x10d8]
mov ecx, eax
shr ecx, 8
movzx edx, cl
mov ecx, dword [r13 + rdx*4 + 0x400]
mov dword [rbx + r8 - 0x400], ecx
mov rdx, qword [r12 + 0x10d8]
shr eax, 0x10
movzx ecx, al
mov eax, dword [r13 + rcx*4 + 0x800]
mov dword [rbx + rdx], eax
mov rcx, qword [r12 + 0x10d8]
shr r11d, 0x18
movzx eax, r11b
mov eax, dword [r13 + rax*4 + 0xc00]
mov dword [rbx + rcx + 0x400], eax
inc edi
add rbx, 4
cmp edi, 0x100
jb 0x14007edf0
lea r8, [r14*4]
xor edx, edx
mov rcx, rsi
call fcn.14001ed20
mov rcx, rsi
call fcn.14000fdf8
nop
lea r8, [r14*4]
xor edx, edx
mov rcx, r15
call fcn.14001ed20
mov rcx, r15
lea r11, [rsp + 0x50]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
jmp fcn.14000fdf8