Function at 0x1403a7130
Capabilities:
Encrypt data using speck

Disassembly:
push rbp
push r15
push r14
push r12
push rsi
push rdi
push rbx
sub rsp, 0x30
lea rbp, [rsp + 0x30]
mov qword [rbp - 8], 0xfffffffffffffffe
mov rsi, r8
mov rdi, rdx
mov rbx, rcx
mov ecx, dword [0x1405926c8]
lea eax, [rcx - 1]
imul eax, ecx
mov ecx, dword [0x1405794f0]
mov edx, ecx
xor edx, 0xac65a440
and ecx, 0x2c65a440
lea ecx, [rdx + rcx*2]
xor edx, edx
div ecx
test edx, edx
jne 0x1403a719a
mov rcx, qword [rbx]
mov rax, qword [rbx + 8]
mov edx, dword [0x1405926c8]
lea r8d, [rdx - 1]
imul r8d, edx
test r8b, 1
je 0x1403a71b6
lea rax, [fcn.1403a7130]
add eax, eax
add eax, 0x320
mov ecx, eax
not ecx
nop dword [rax]
test ecx, eax
jne 0x1403a71b0
jmp 0x1403a717f
mov r15, rax
sub r15, rcx
mov rdx, r15
sar rdx, 3
cmp rdx, rdi
jae 0x1403a729d
mov rax, rdi
shr rax, 0x3d
jne 0x1403a7442
lea r12, [rdi*8]
cmp rdi, 0x200
jb 0x1403a72c2
movabs rax, 0x1ffffffffffffffc
cmp rdi, rax
jae 0x1403a7442
mov eax, 0xac65a43f
add eax, dword [0x1405794f0]
lea rcx, [fcn.1403a7130]
add ecx, ecx
add ecx, 0x6c0
xor eax, ecx
not eax
test eax, ecx
jne 0x1403a7254
lea rcx, [r12 + 0x27]
mov edx, 0x86cac97c
mov r8d, 0x6e00eec4
call fcn.1400abf80
lea rcx, [rax + 0x27]
mov r14, rcx
xor r14, 0x1f
and r14, rcx
mov qword [r14 - 8], rax
mov al, 1
test al, al
jne 0x1403a72eb
mov eax, 0x27
sub eax, r12d
mov ecx, r12d
sub ecx, eax
imul ecx, eax
mov rax, r12
shl rax, cl
sub rax, r12
mov rcx, rax
sub rcx, r12
add rcx, rax
mov r8d, dword [0x1405794f0]
mov eax, r8d
xor eax, 0x33306dba
mov edx, r8d
and edx, 0x33306dba
lea edx, [rax + rdx*2]
add r8d, 0x1a669302
call fcn.1400abf80
cmp rcx, rax
je 0x1403a74ed
mov r8, rax
sub r8, rcx
add r8, 0xfffffffffffffff8
cmp r8, 0x18
jae 0x1403a73dd
mov rdx, rcx
jmp 0x1403a7430
mov rcx, r12
mov edx, 0x86cac97c
mov r8d, 0x6e00eec4
call fcn.1400abf80
mov r14, rax
jmp 0x1403a72eb
mov eax, dword [0x1405926cc]
cmp eax, 0x56
jge 0x1403a72e0
mov eax, dword [0x1405926c8]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x1403a72e0
test r15, r15
je 0x1403a7351
mov rcx, qword [rbx]
cmp r15, 0x1000
jb 0x1403a7349
mov rax, qword [rcx - 8]
add rcx, qword [0x1405794f8]
sub rcx, rax
movabs rdx, 0x4119ce5e97ce91b4
add rdx, rcx
cmp rdx, 0x20
jae 0x1403a73c1
add r15, qword [0x1405794f8]
movabs rcx, 0x4119ce5e97ce91e3
add r15, rcx
mov rcx, rax
mov rdx, r15
call fcn.1400ab270
mov qword [rbx], r14
lea rax, [r14 + rdi*8]
mov qword [rbx + 8], rax
mov qword [rbx + 0x10], rax
mov rcx, rdi
not rcx
lea rdx, [rcx + rdi*2]
movabs rcx, 0x1fffffffffffffff
and rcx, rdx
cmp rcx, 3
jae 0x1403a7385
mov rdx, r14
jmp 0x1403a74e0
inc rcx
mov edx, dword [0x1405926cc]
mov r8d, 0xac65a48e
add r8d, dword [0x1405794f0]
cmp edx, r8d
jge 0x1403a7470
jmp 0x1403a7447
mov eax, dword [0x1405926c8]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
je 0x1403a73cd
cmp dword [0x1405794f0], 0x539a5bc2
jne 0x1403a73b0
mov eax, dword [0x1405926cc]
cmp eax, 0x1a
jg 0x1403a73b0
call fcn.1403e571c
shr r8, 3
inc r8
mov r9, r8
and r9, 0xfffffffffffffffc
lea rdx, [rcx + r9*8]
movq xmm0, rsi
pshufd xmm0, xmm0, 0x44
lea r10, [r9 - 4]
xor r11d, r11d
movdqu xmmword [rcx + r11*8], xmm0
movdqu xmmword [rcx + r11*8 + 0x10], xmm0
cmp r10, r11
je 0x1403a7418
add r11, 4
jmp 0x1403a7400
cmp r8, r9
je 0x1403a74ed
nop word cs:[rax + rax]
add rdx, 8
mov qword [rdx - 8], rsi
cmp rdx, rax
jne 0x1403a7430
jmp 0x1403a74ed
call fcn.140085110
lea rdx, [fcn.1403a7130]
add edx, edx
add edx, 0xd80
mov r8d, edx
not r8d
test r8d, edx
je 0x1403a747d
nop word cs:[rax + rax]
mov edx, dword [0x1405926cc]
cmp edx, 0x27
jge 0x1403a7470
jmp 0x1403a7447
mov r9, rcx
not r9
mov rdx, r9
and rdx, 0xfffffffffffffffc
mov r8d, ecx
and r8d, 3
or r8, rdx
and r9d, 3
or r9, r8
mov r8, 0xfffffffffffffffb
sub r8, r9
not r9
lea rdx, [r14 + r9*8]
movq xmm0, rsi
pshufd xmm0, xmm0, 0x44
xor r10d, r10d
nop dword [rax]
movdqu xmmword [r14 + r10*8], xmm0
movdqu xmmword [r14 + r10*8 + 0x10], xmm0
cmp r8, r10
je 0x1403a74d8
add r10, 4
jmp 0x1403a74c0
cmp rcx, r9
je 0x1403a74ed
nop dword [rax]
add rdx, 8
mov qword [rdx - 8], rsi
cmp rdx, rax
jne 0x1403a74e0
mov ecx, 0xac65a440
nop word cs:[rax + rax]
mov edx, dword [0x1405926c8]
lea eax, [rdx - 1]
imul eax, edx
mov r8d, dword [0x1405794f0]
add r8d, ecx
xor edx, edx
div r8d
test edx, edx
jne 0x1403a7500
add rsp, 0x30
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
pop rbp
ret