Function at 0x14008d410
Capabilities:
Encode data using xor
Encrypt data using speck

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x28
mov ebx, dword [rsp + 0x90]
cmp ebx, 4
jae 0x14008d6bf
mov rsi, r9
mov r14, r8
mov rdi, rcx
mov eax, ebx
lea rcx, [0x1402ae590]
mov rcx, qword [rcx + rax*8]
lea r8, [0x1402ae5b0]
mov r15, qword [r8 + rax*8]
mov qword [rdx], rcx
xorps xmm0, xmm0
movups xmmword [rdi + 0xc0], xmm0
movups xmmword [rdi + 0xb0], xmm0
movups xmmword [rdi + 0xa0], xmm0
movups xmmword [rdi + 0x90], xmm0
movups xmmword [rdi + 0x80], xmm0
movups xmmword [rdi + 0x70], xmm0
movups xmmword [rdi + 0x60], xmm0
movups xmmword [rdi + 0x50], xmm0
movups xmmword [rdi + 0x40], xmm0
movups xmmword [rdi + 0x30], xmm0
movups xmmword [rdi + 0x20], xmm0
movups xmmword [rdi + 0x10], xmm0
movups xmmword [rdi], xmm0
mov qword [rdi + 0xd0], 0
mov qword [rdi + 0xc8], r15
cmp r15, r9
jbe 0x14008d572
test rsi, rsi
je 0x14008d53f
cmp rsi, 8
jb 0x14008d4dd
lea rax, [r14 + rsi]
cmp rax, rdi
jbe 0x14008d630
lea rax, [rdi + rsi]
cmp r14, rax
jae 0x14008d630
xor eax, eax
mov rdx, rsi
mov rcx, rax
and rdx, 3
je 0x14008d501
mov rcx, rax
nop
movzx r8d, byte [r14 + rcx]
xor byte [rdi + rcx], r8b
inc rcx
dec rdx
jne 0x14008d4f0
sub rax, rsi
cmp rax, 0xfffffffffffffffc
ja 0x14008d53f
nop word [rax + rax]
movzx eax, byte [r14 + rcx]
xor byte [rdi + rcx], al
movzx eax, byte [r14 + rcx + 1]
xor byte [rdi + rcx + 1], al
movzx eax, byte [r14 + rcx + 2]
xor byte [rdi + rcx + 2], al
movzx eax, byte [r14 + rcx + 3]
xor byte [rdi + rcx + 3], al
add rcx, 4
cmp rsi, rcx
jne 0x14008d510
shl ebx, 3
mov eax, 0x1f1f0606
mov ecx, ebx
shr eax, cl
xor byte [rdi + rsi], al
mov rax, qword [rdi + 0xc8]
xor byte [rdi + rax - 1], 0x80
mov rcx, rdi
add rsp, 0x28
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp fcn.14008d7d0
mov r12, r15
shr r12, 3
lea r13, [rdi + r15]
lea rbp, [r12 - 1]
jmp 0x14008d5ae
mov rcx, rdi
call fcn.14008d7d0
mov rax, qword [rdi + 0xc8]
add r14, rax
sub rsi, rax
cmp rsi, rax
jb 0x14008d4b4
lea rax, [r14 + r15]
cmp rax, rdi
jbe 0x14008d5c0
cmp r14, r13
jae 0x14008d5c0
xor eax, eax
jmp 0x14008d5ec
xor eax, eax
nop word cs:[rax + rax]
movups xmm0, xmmword [r14 + rax*8]
movups xmm1, xmmword [rdi + rax*8]
xorps xmm1, xmm0
movups xmmword [rdi + rax*8], xmm1
add rax, 2
cmp rbp, rax
jne 0x14008d5d0
mov rax, rbp
mov edx, r12d
sub edx, eax
lea rcx, [rax + 1]
test dl, 1
je 0x14008d605
mov rdx, qword [r14 + rax*8]
xor qword [rdi + rax*8], rdx
mov rax, rcx
cmp r12, rcx
je 0x14008d590
nop word [rax + rax]
mov rcx, qword [r14 + rax*8]
xor qword [rdi + rax*8], rcx
mov rcx, qword [r14 + rax*8 + 8]
xor qword [rdi + rax*8 + 8], rcx
add rax, 2
cmp r12, rax
jne 0x14008d610
jmp 0x14008d590
cmp rsi, 0x20
jae 0x14008d63a
xor eax, eax
jmp 0x14008d68f
mov rax, rsi
and rax, 0xffffffffffffffe0
xor ecx, ecx
nop word cs:[rax + rax]
movups xmm0, xmmword [r14 + rcx]
movups xmm1, xmmword [r14 + rcx + 0x10]
movups xmm2, xmmword [rdi + rcx]
xorps xmm2, xmm0
movups xmm0, xmmword [rdi + rcx + 0x10]
xorps xmm0, xmm1
movups xmmword [rdi + rcx], xmm2
movups xmmword [rdi + rcx + 0x10], xmm0
add rcx, 0x20
cmp rax, rcx
jne 0x14008d650
cmp rsi, rax
je 0x14008d53f
test sil, 0x18
je 0x14008d4df
mov rcx, rax
mov rax, rsi
and rax, 0xfffffffffffffff8
nop dword [rax]
mov rdx, qword [r14 + rcx]
xor qword [rdi + rcx], rdx
add rcx, 8
cmp rax, rcx
jne 0x14008d6a0
cmp rsi, rax
je 0x14008d53f
jmp 0x14008d4df
call fcn.14026731c
int3