Function at 0x14018aad0
Capabilities:
Encrypt data using speck

Disassembly:
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
push rbp
sub rsp, 0x58
mov r15, r9
mov rax, qword [rsp + 0xc0]
mov r14, r8
mov r13, rdx
mov rsi, rcx
add r14, r13
mov rbp, r13
lea r12, [rax + r15]
cmp rax, 8
jae 0x14018ab1c
mov rax, 0xffffffffffffffb8
add rsp, 0x58
pop rbp
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
mov dl, byte [r15 + 4]
mov bl, dl
shr bl, 6
mov r10b, dl
shr r10b, 5
movzx r9d, bl
lea r8, [0x140000000]
mov r9, qword [r8 + r9*8 + 0x2416e0]
and r10b, 1
je 0x14018ab4f
xor ecx, ecx
test r9, r9
sete cl
jmp 0x14018ab51
xor ecx, ecx
movzx r8d, dl
lea rbx, [0x140000000]
and r8, 3
xor r10b, 1
movzx r10d, r10b
add r10, qword [rbx + r8*8 + 0x241700]
add r10, r9
lea rbx, [r10 + rcx + 5]
cmp rbx, 0xffffffffffffff88
ja 0x14018afb0
lea r8, [rbx + 3]
cmp rax, r8
jb 0x14018ab04
cmp rbx, 5
jae 0x14018ab9f
mov edi, 5
jmp 0x14018adbe
vpxor xmm0, xmm0, xmm0
vmovdqu xmmword [rsi + 0x5448], xmm0
vmovq qword [rsi + 0x5458], xmm0
mov r8d, dword [r15]
cmp r8d, 0xfd2fb527
je 0x14018ac04
and r8d, 0xfffffff0
cmp r8d, 0x184d2a50
jne 0x14018abf8
cmp rbx, 8
jae 0x14018abdc
mov edi, 8
jmp 0x14018adbe
mov r8d, dword [r15 + 4]
xor edi, edi
mov qword [rsi + 0x5448], r8
mov dword [rsi + 0x5450], 0
jmp 0x14018adbe
mov rdi, 0xfffffffffffffff6
jmp 0x14018adbe
lea rdx, [0x140000000]
movzx r10d, byte [r15 + 4]
mov r9d, r10d
shr r9d, 6
mov r8d, r10d
shr r8d, 5
mov rcx, qword [rdx + r9*8 + 0x2416e0]
mov qword [rsp + 0x30], rcx
and r8d, 1
je 0x14018ac3e
xor edx, edx
cmp qword [rsp + 0x30], 0
sete dl
jmp 0x14018ac40
xor edx, edx
mov r11d, r10d
lea rdi, [0x140000000]
and r11, 3
mov ecx, r8d
xor ecx, 1
add rcx, qword [rdi + r11*8 + 0x241700]
add rcx, qword [rsp + 0x30]
lea rdi, [rcx + rdx + 5]
cmp rbx, rdi
jb 0x14018adbe
mov edx, r10d
xor edi, edi
and edx, 3
mov dword [rsp + 0x40], edx
xor edx, edx
mov qword [rsp + 0x48], 5
mov dword [rsp + 0x38], edx
test r10d, 8
jne 0x14018adb7
test r8d, r8d
jne 0x14018acd8
movzx ecx, byte [r15 + 5]
mov dword [rsp + 0x30], ecx
shr ecx, 3
add ecx, 0xa
mov qword [rsp + 0x48], 6
cmp ecx, 0x1b
ja 0x14018adb7
mov edx, 1
shl edx, cl
mov r11d, edx
mov ecx, dword [rsp + 0x30]
shr r11d, 3
and ecx, 7
imul ecx, r11d
add edx, ecx
cmp dword [rsp + 0x40], 1
je 0x14018ad1e
cmp dword [rsp + 0x40], 2
jne 0x14018acff
mov r11, qword [rsp + 0x48]
movzx ecx, word [r11 + r15]
add r11, 2
mov dword [rsp + 0x38], ecx
mov qword [rsp + 0x48], r11
jmp 0x14018ad34
cmp dword [rsp + 0x40], 3
jne 0x14018ad34
mov r11, qword [rsp + 0x48]
mov ecx, dword [r11 + r15]
add r11, 4
mov dword [rsp + 0x38], ecx
mov qword [rsp + 0x48], r11
jmp 0x14018ad34
mov r11, qword [rsp + 0x48]
movzx ecx, byte [r11 + r15]
inc r11
mov dword [rsp + 0x38], ecx
mov qword [rsp + 0x48], r11
cmp r9d, 1
je 0x14018ad6d
cmp r9d, 2
jne 0x14018ad4b
mov r8, qword [rsp + 0x48]
mov edi, dword [r8 + r15]
jmp 0x14018ad7e
cmp r9d, 3
jne 0x14018ad5c
mov r8, qword [rsp + 0x48]
mov rdi, qword [r8 + r15]
jmp 0x14018ad7e
test r8d, r8d
je 0x14018ad7e
mov r8, qword [rsp + 0x48]
movzx edi, byte [r8 + r15]
jmp 0x14018ad7e
mov r8, qword [rsp + 0x48]
movzx edi, word [r8 + r15]
add rdi, 0x100
test edx, edx
cmove edx, edi
cmp edx, 0x8000000
ja 0x14018adb7
shr r10d, 2
mov r8d, dword [rsp + 0x38]
and r10d, 1
mov qword [rsi + 0x5448], rdi
xor edi, edi
mov dword [rsi + 0x5450], edx
mov dword [rsi + 0x5454], r8d
mov dword [rsi + 0x5458], r10d
jmp 0x14018adbe
mov rdi, 0xfffffffffffffff2
mov r8d, dword [rsi + 0x5454]
test r8d, r8d
je 0x14018addc
cmp r8d, dword [rsi + 0x54d0]
je 0x14018addc
mov rdi, 0xffffffffffffffe0
jmp 0x14018adfb
cmp dword [rsi + 0x5458], 0
je 0x14018adfb
xor edx, edx
lea rcx, [rsi + 0x5470]
call fcn.140116700
mov rax, qword [rsp + 0xc0]
test rdi, rdi
je 0x14018ae18
mov rax, 0xffffffffffffffec
add rsp, 0x58
pop rbp
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
mov rdi, rax
lea rcx, [rsi + 0x5470]
mov qword [rsp + 0x48], r13
add r15, rbx
sub rdi, rbx
mov r11, r12
mov r12, rcx
mov r9, r11
sub r9, r15
cmp r9, 3
jb 0x14018ae84
movzx r9d, byte [r15]
mov ebx, r9d
movzx r8d, byte [r15 + 1]
and r9d, 7
shl r8d, 8
movzx r13d, byte [r15 + 2]
shl r9d, 0x10
add r13d, r8d
shr ebx, 6
add r13d, r9d
cmp ebx, 2
je 0x14018ae79
xor r9d, r9d
cmp ebx, 3
cmove r13, r9
xor r10d, r10d
jmp 0x14018ae8b
mov r10d, r13d
mov r13d, 1
jmp 0x14018ae8b
mov r13, 0xffffffffffffffb8
cmp r13, 0xffffffffffffff88
ja 0x14018b044
add rdi, 0xfffffffffffffffd
lea rdx, [r15 + 3]
cmp r13, rdi
ja 0x14018ab04
test ebx, ebx
je 0x14018afc4
cmp ebx, 1
je 0x14018af20
cmp ebx, 2
jne 0x14018aef5
mov r9, r14
sub r9, rbp
movzx edx, byte [r15 + 3]
cmp r10, r9
ja 0x14018af54
test r10, r10
jbe 0x14018aef0
mov rcx, rbp
mov r8, r10
mov qword [rsp + 0x30], r10
mov qword [rsp + 0x38], r11
call fcn.1401bb600
mov r11, qword [rsp + 0x38]
mov r10, qword [rsp + 0x30]
mov r8, r10
jmp 0x14018af5b
cmp ebx, 3
jne 0x14018af08
test rdi, rdi
jne 0x14018ab04
xor r8d, r8d
jmp 0x14018af5b
mov rax, 0xffffffffffffffff
add rsp, 0x58
pop rbp
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
mov r9, r14
sub r9, rbp
cmp r13, r9
ja 0x14018af54
test r13, r13
jbe 0x14018af4f
mov rcx, rbp
mov r8, r13
mov qword [rsp + 0x30], r10
mov qword [rsp + 0x38], r11
call fcn.1401bb6d0
mov r11, qword [rsp + 0x38]
mov r10, qword [rsp + 0x30]
mov r8, r13
jmp 0x14018af5b
mov r8, 0xffffffffffffffba
cmp ebx, 3
je 0x14018b06c
cmp r8, 0xffffffffffffff88
ja 0x14018b058
cmp dword [rsi + 0x5458], 0
je 0x14018afa0
mov rcx, r12
mov rdx, rbp
mov qword [rsp + 0x40], r8
mov qword [rsp + 0x30], r10
mov qword [rsp + 0x38], r11
call fcn.140116d60
mov r11, qword [rsp + 0x38]
mov r10, qword [rsp + 0x30]
mov r8, qword [rsp + 0x40]
add rbp, r8
lea r15, [r13 + r15 + 3]
sub rdi, r13
jmp 0x14018ae33
mov rax, rbx
add rsp, 0x58
pop rbp
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
cmp r13, 0x20000
jb 0x14018afd6
mov r8, 0xffffffffffffffb8
jmp 0x14018af5b
mov rcx, rsi
mov r8, r13
mov qword [rsp + 0x30], r10
mov qword [rsp + 0x38], r11
call fcn.14018d850
mov r11, qword [rsp + 0x38]
mov r8, rax
mov r10, qword [rsp + 0x30]
cmp r8, 0xffffffffffffff88
ja 0x14018af5b
mov rdx, rsp
mov rax, r14
sub rax, rbp
lea r9, [r8 + r15 + 3]
neg r8
mov rcx, rsi
add r8, r13
mov qword [rdx + 0x20], r8
mov rdx, rbp
mov r8, rax
mov qword [rsp + 0x30], r10
mov qword [rsp + 0x38], r11
call fcn.14018b090
mov r11, qword [rsp + 0x38]
mov r8, rax
mov r10, qword [rsp + 0x30]
jmp 0x14018af5b
mov rax, r13
add rsp, 0x58
pop rbp
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
mov rax, r8
add rsp, 0x58
pop rbp
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
mov r13, qword [rsp + 0x48]
sub rbp, r13
mov rax, rbp
add rsp, 0x58
pop rbp
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret