Function at 0x1401a1390
Capabilities:
Encrypt data using speck

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x8b8
mov r14, r8
mov r15, rdx
mov rdi, rcx
movabs r12, 0x8000000000000000
lea rcx, [rsp + 0x618]
call fcn.1401a5480
mov r8, qword [r14 + 0x20]
mov r9, qword [r14 + 0x28]
mov qword [rsp + 0x510], 0
mov qword [rsp + 0x4f0], 0
mov qword [rsp + 0x500], 0
lea rcx, [rsp + 0x6a0]
lea rdx, [rsp + 0x4f0]
call fcn.1401ae640
mov r9, qword [rsp + 0x6a0]
cmp r9, r12
jne 0x1401a141b
movzx eax, byte [rsp + 0x6a8]
jmp 0x1401a1497
mov r8, qword [rsp + 0x6a8]
movzx r10d, byte [rsp + 0x6e0]
test r10b, r10b
je 0x1401a1482
mov r11d, dword [rsp + 0x6d4]
mov esi, dword [rsp + 0x6d8]
cmp r11d, esi
ja 0x1401a3110
mov r13, qword [rsp + 0x6b0]
mov rbp, qword [rsp + 0x6b8]
mov ebx, dword [rsp + 0x6dc]
test r11d, r11d
je 0x1401a1704
cmp r13, r11
jbe 0x1401a16fe
cmp byte [r8 + r11], 0xc0
jge 0x1401a1704
jmp 0x1401a3110
test r9, r9
je 0x1401a1495
mov rcx, qword [0x141af8068]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
xor eax, eax
mov byte [rsp + 0x490], al
lea rax, [rsp + 0x490]
mov qword [rsp + 0x3c0], rax
lea rax, [0x1401ade20]
mov qword [rsp + 0x3c8], rax
lea rax, [0x141ab4d18]
mov qword [rsp + 0x6a0], rax
mov qword [rsp + 0x6a8], 1
mov qword [rsp + 0x6c0], 0
lea rax, [rsp + 0x3c0]
mov qword [rsp + 0x6b0], rax
mov qword [rsp + 0x6b8], 1
lea rcx, [rsp + 0x4f0]
lea rdx, [rsp + 0x6a0]
call fcn.140034eb0
movzx ebx, byte [rsp + 0x490]
movzx eax, byte [0x141af8129]
mov edx, 1
xor ecx, ecx
call fcn.140146820
test rax, rax
je 0x1401a3110
mov byte [rax], bl
mov r9, qword [rsp + 0x4f0]
movzx r10d, byte [rsp + 0x4f8]
mov ecx, dword [rsp + 0x4f9]
movzx edx, word [rsp + 0x4fd]
movzx r11d, byte [rsp + 0x4ff]
mov r8, qword [rsp + 0x500]
movaps xmm0, xmmword [rsp + 0x7d0]
movaps xmmword [rsp + 0x250], xmm0
mov esi, dword [rsp + 0x7e0]
mov dword [rsp + 0x260], esi
mov rsi, qword [rsp + 0x42f]
mov qword [rsp + 0x1ef], rsi
movaps xmm0, xmmword [rsp + 0x420]
movaps xmmword [rsp + 0x1e0], xmm0
mov rsi, qword [rsp + 0x840]
mov qword [rdi + 0x70], rsi
movups xmm0, xmmword [rsp + 0x830]
movups xmmword [rdi + 0x60], xmm0
mov qword [rdi + 0x78], rax
lea rax, [0x141ab4b40]
mov qword [rdi + 0x80], rax
mov qword [rdi + 0x88], 0
movups xmm0, xmmword [rsp + 0x140]
movups xmmword [rdi + 0x100], xmm0
movups xmm0, xmmword [rsp + 0x130]
movups xmmword [rdi + 0xf0], xmm0
movups xmm0, xmmword [rsp + 0x120]
movups xmmword [rdi + 0xe0], xmm0
movups xmm0, xmmword [rsp + 0x110]
movups xmmword [rdi + 0xd0], xmm0
movups xmm0, xmmword [rsp + 0xd0]
movups xmm1, xmmword [rsp + 0xe0]
movups xmm2, xmmword [rsp + 0xf0]
movups xmm3, xmmword [rsp + 0x100]
movups xmmword [rdi + 0xc0], xmm3
movups xmmword [rdi + 0xb0], xmm2
movups xmmword [rdi + 0xa0], xmm1
movups xmmword [rdi + 0x90], xmm0
mov qword [rdi + 8], r9
mov byte [rdi + 0x10], r10b
mov byte [rdi + 0x17], r11b
mov word [rdi + 0x15], dx
mov dword [rdi + 0x11], ecx
mov qword [rdi + 0x18], r8
mov qword [rdi + 0x20], r12
movaps xmm0, xmmword [rsp + 0x250]
movups xmmword [rdi + 0x28], xmm0
mov eax, dword [rsp + 0x260]
mov dword [rdi + 0x38], eax
movaps xmm0, xmmword [rsp + 0x1e0]
movups xmmword [rdi + 0x49], xmm0
mov rax, qword [rsp + 0x1ef]
mov qword [rdi + 0x58], rax
mov qword [rdi], r12
mov rdi, qword [rsp + 0x628]
mov rsi, qword [rsp + 0x630]
mov rax, qword [rsi]
test rax, rax
je 0x1401a16c0
mov rcx, rdi
call rax
cmp qword [rsi + 8], 0
je 0x1401a16e3
cmp qword [rsi + 0x10], 0x11
jb 0x1401a16d2
mov rdi, qword [rdi - 8]
mov rcx, qword [0x141af8068]
xor edx, edx
mov r8, rdi
call sub.KERNEL32.dll_HeapFree
mov rcx, r14
add rsp, 0x8b8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp fcn.1401a31e0
jne 0x1401a3110
test esi, esi
je 0x1401a171f
cmp r13, rsi
jbe 0x1401a1719
cmp byte [r8 + rsi], 0xbf
jg 0x1401a171f
jmp 0x1401a3110
jne 0x1401a3110
lea rcx, [rsp + 0x6c0]
mov rax, r8
shr rax, 8
mov edx, dword [rcx + 0x10]
mov dword [rsp + 0x7e0], edx
movups xmm0, xmmword [rcx]
movaps xmmword [rsp + 0x7d0], xmm0
movups xmm1, xmmword [rcx + 0x21]
movaps xmmword [rsp + 0x420], xmm1
mov rcx, qword [rcx + 0x30]
mov qword [rsp + 0x42f], rcx
mov dword [rsp + 0x260], edx
movaps xmmword [rsp + 0x250], xmm0
mov rcx, qword [rsp + 0x42f]
mov qword [rsp + 0x1ef], rcx
movaps xmm0, xmmword [rsp + 0x420]
movaps xmmword [rsp + 0x1e0], xmm0
movaps xmm0, xmmword [rsp + 0x250]
movaps xmmword [rsp + 0x600], xmm0
mov ecx, dword [rsp + 0x260]
mov dword [rsp + 0x610], ecx
mov rcx, qword [rsp + 0x1ef]
mov qword [rsp + 0x7bf], rcx
movaps xmm0, xmmword [rsp + 0x1e0]
movaps xmmword [rsp + 0x7b0], xmm0
mov qword [rsp + 0xa8], r9
mov qword [rsp + 0x648], r9
mov byte [rsp + 0x650], r8b
mov rcx, r8
shr rcx, 0x38
mov byte [rsp + 0x657], cl
mov qword [rsp + 0xa0], r8
mov rcx, r8
shr rcx, 0x28
mov word [rsp + 0x655], cx
mov dword [rsp + 0x651], eax
mov qword [rsp + 0x3a8], r13
mov qword [rsp + 0x658], r13
mov qword [rsp + 0x3a0], rbp
mov qword [rsp + 0x660], rbp
mov eax, dword [rsp + 0x260]
mov dword [rsp + 0x678], eax
movaps xmm0, xmmword [rsp + 0x250]
movups xmmword [rsp + 0x668], xmm0
mov qword [rsp + 0x3b8], r11
mov dword [rsp + 0x67c], r11d
mov qword [rsp + 0x3b0], rsi
mov dword [rsp + 0x680], esi
mov dword [rsp + 0xc4], ebx
mov dword [rsp + 0x684], ebx
mov byte [rsp + 0x57], r10b
mov byte [rsp + 0x688], r10b
mov rax, qword [rsp + 0x1ef]
mov qword [rsp + 0x698], rax
movaps xmm0, xmmword [rsp + 0x1e0]
movups xmmword [rsp + 0x689], xmm0
lea rdx, [r14 + 0x58]
mov r8, qword [r14 + 8]
mov r9, qword [r14 + 0x10]
mov rax, qword [r14 + 0x40]
mov qword [rsp + 0xe0], rax
mov qword [rsp + 0xb0], r14
movups xmm0, xmmword [r14 + 0x30]
movaps xmmword [rsp + 0xd0], xmm0
mov rax, qword [r15 + 0x28]
mov rcx, qword [rax]
mov eax, dword [rax + 8]
movups xmm0, xmmword [rsp + 0x618]
mov dword [rsp + 0x48], eax
mov qword [rsp + 0x40], rcx
movups xmmword [rsp + 0x30], xmm0
lea r15, [rsp + 0xd0]
mov qword [rsp + 0x28], r15
lea rax, [rsp + 0x648]
mov qword [rsp + 0x20], rax
lea rsi, [rsp + 0x2b0]
mov rcx, rsi
mov qword [rsp + 0xc8], rdx
call fcn.140186820
movups xmm0, xmmword [rsp + 0x618]
movups xmm1, xmmword [rsp + 0x628]
movaps xmmword [rsp + 0x370], xmm1
movaps xmmword [rsp + 0x360], xmm0
mov qword [rsp + 0x80], 0
mov qword [rsp + 0x88], 8
mov qword [rsp + 0x90], 0
lea rbx, [rsp + 0xd8]
lea r9, [rsp + 0x360]
lea r13, [r12 + 1]
lea r14, [0x141a7a988]
movabs rbp, 0x8080808080808080
mov qword [rsp + 0xb8], r13