Function at 0x1403d8c21
Capabilities:
Encrypt data using speck

Disassembly:
push r14
movsxd rax, edi
push rsi
push rdi
rcl rax, cl
mov rdi, r8
push rbx
cmc
adc rax, 0x627f1045
sub rsp, 0x28
mov rbx, r8
shrd eax, r8d, 0x73
movzx rdi, bx
mov rdi, rdx
movsx ax, sil
bsf r14d, r12d
mov r14, rcx
add ax, ax
mov rax, qword [rcx]
jmp 0x1403d8c65
mov rcx, qword [rcx + 0x10]
stc
test bl, 9
sub rcx, rax
stc
sar rcx, 5
cmc
cmp rcx, r8
jmp 0x1403d8c7e
jae 0x1403d8cc2
mov rcx, r14
xchg dl, dl
cmovl dx, dx
cwd
mov rdx, rbx
call fcn.1403d918a
mov rcx, qword [r14]
test r10w, dx
test bl, 1
jmp 0x1403d8ca6
jne 0x1403d8d79
mov rax, rbx
test bpl, 0x58
cmp rbx, 1
jne 0x1403d8de4
jmp 0x1403d9172
mov rcx, qword [r14 + 8]
movsx si, cl
and si, 0x5d22
sbb sil, r14b
mov rsi, rcx
sub rsi, rax
sar rsi, 5
cmp bx, r15w
cmp rsi, rbx
jmp 0x1403d8ce8
jae 0x1403d8ed5
cmp rax, rcx
jmp 0x1403d8cf6
je 0x1403d8d48
nop word cs:[rax + rax]
mov rcx, qword [rdi + 0x18]
cmp sil, r10b
mov qword [rax + 0x18], rcx
cmp edx, 0x425d0eeb
jmp 0x1403d8d1c
movups xmm0, xmmword [rdi + 8]
clc
movups xmmword [rax + 8], xmm0
cmp si, r9w
add rax, 0x20
clc
add rdi, 0x20
cmp r13b, 0x32
cmp si, si
cmp rax, qword [r14 + 8]
jmp 0x1403d8d42
jne 0x1403d8d06
mov rdx, rbx
sub rdx, rsi
jmp 0x1403d8d53
je 0x1403d9166
not rsi
stc
test dl, 1
jne 0x1403d902e
add rsi, rbx
jmp 0x1403d8d6e
jne 0x1403d90a9
jmp 0x1403d9172
lea rax, [0x1400beb50]
cmp r8b, 0x1b
mov qword [rcx], rax
sar al, 0x41
mov dword [rcx + 8], 0
cwde
btr rax, rcx
rcl al, cl
mov eax, dword [rdi + 8]
test dl, r14b
stc
mov dword [rcx + 8], eax
rcr al, 0xc1
cmc
mov rax, qword [rdi + 0x10]
mov qword [rcx + 0x10], rax
mov rax, qword [rdi + 0x18]
mov qword [rcx + 0x18], rax
sal al, 0x2a
adc al, r13b
bt ax, bx
add rcx, 0x20
shr ax, cl
sal ah, cl
add rdi, 0x20
cwde
ror ax, 0xd2
add ax, di
lea rax, [rbx - 1]
cmc
cmp rbx, 1
je 0x1403d9172
add rdi, 0x38
lea rdx, [0x1400beb50]
bt ebx, 0xff
rol bx, cl
inc bh
nop dword [rax]
mov qword [rcx], rdx
or rbx, 0x794b6c75
movsx rbx, di
mov dword [rcx + 8], 0
bsr bx, ax
neg bx
mov ebx, dword [rdi - 0x30]
cmp dil, 0xe8
mov dword [rcx + 8], ebx
rol bl, 0x8b
mov rbx, qword [rdi - 0x28]
clc
cmc
mov qword [rcx + 0x10], rbx
mov rbx, qword [rdi - 0x20]
jmp 0x1403d8e38
mov qword [rcx + 0x18], rbx
xor bx, r8w
movzx ebx, dx
mov qword [rcx + 0x20], rdx
btr bx, bp
or bh, 0xa3
movzx rbx, sp
mov dword [rcx + 0x28], 0
bts bx, r13w
btc bx, 0x61
mov ebx, dword [rdi - 0x10]
jmp 0x1403d8e70
mov dword [rcx + 0x28], ebx
ror bl, cl
bsr rbx, rdx
movsx rbx, r11w
mov rbx, qword [rdi - 8]
mov qword [rcx + 0x30], rbx
xor rbx, 0x377f2fb3
bsf ebx, r12d
bt ebx, ebp
mov rbx, qword [rdi]
cmc
cmp r9w, 0x432b
test r11b, 0x7a
mov qword [rcx + 0x38], rbx
test r10w, 0x6e3
add rcx, 0x40
jmp 0x1403d8eb5
add rdi, 0x40
jmp 0x1403d8ec1
add rax, 0xfffffffffffffffe
jmp 0x1403d8eca
jne 0x1403d8dfc
jmp 0x1403d9172
mov rcx, rbx
shl rcx, 5
lea rcx, [rcx + rax]
test ax, sp
cmc
test rbx, rbx
je 0x1403d9172
lea r8, [rbx - 1]
mov r9, rbx
cmp spl, bl
and r9, 3
je 0x1403d8f55
xor edx, edx
or si, 0x67b7
movzx esi, bx
nop word cs:[rax + rax]
mov rsi, qword [rdi + 0x18]
mov qword [rax + 0x18], rsi
movups xmm0, xmmword [rdi + 8]
jmp 0x1403d8f27
movups xmmword [rax + 8], xmm0
jmp 0x1403d8f30
add rax, 0x20
test dl, spl
add rdi, 0x20
jmp 0x1403d8f40
inc rdx
cmp r9, rdx
jmp 0x1403d8f4b
jne 0x1403d8f16
sub rbx, rdx
clc
cmp r8, 3
jb 0x1403d9172
mov edx, 0x68
sal si, 0x9a
rol sil, 0xe8
nop word cs:[rax + rax]
shrd esi, esi, 0xdd
xchg sil, sil
cmc
mov rsi, qword [rdi + rdx - 0x50]
mov qword [rax + rdx - 0x50], rsi
movzx rsi, cx
btc rsi, 0xbf
rcr si, 0xe6
movups xmm0, xmmword [rdi + rdx - 0x60]
movups xmmword [rax + rdx - 0x60], xmm0
sal si, 0xd4
shl esi, 0x17
movsx rsi, bp
mov rsi, qword [rdi + rdx - 0x30]
clc
mov qword [rax + rdx - 0x30], rsi
bswap esi
movups xmm0, xmmword [rdi + rdx - 0x40]
bt si, 0xd0
movups xmmword [rax + rdx - 0x40], xmm0
clc
sar esi, 0xb8
cmp bpl, r15b
mov rsi, qword [rdi + rdx - 0x10]
jmp 0x1403d8fdb
mov qword [rax + rdx - 0x10], rsi
movups xmm0, xmmword [rdi + rdx - 0x20]
movsx esi, r11w
add si, 0x5f2a
movups xmmword [rax + rdx - 0x20], xmm0
shr rsi, 0xbb
xchg rsi, rsi
movups xmm0, xmmword [rdi + rdx]
bts si, r10w
test r11b, r11b
rcr si, 0x73
movups xmmword [rax + rdx], xmm0
mov rsi, qword [rdi + rdx + 0x10]
cmp r15b, dil
mov qword [rax + rdx + 0x10], rsi
sub rdx, 0xffffffffffffff80
add rbx, 0xfffffffffffffffc
jne 0x1403d8f82
jmp 0x1403d9172
lea rcx, [0x1400beb50]
cmc
cmp r12d, r14d
mov qword [rax], rcx
dec ch
sal ecx, 0xc5
shr cl, cl
mov dword [rax + 8], 0
mov ecx, dword [rdi + 8]
cmc
test r13b, r10b
mov dword [rax + 8], ecx
mov rcx, qword [rdi + 0x10]
test bx, si
stc
mov qword [rax + 0x10], rcx
mov rcx, qword [rdi + 0x18]
cmp cx, 0x61b1
clc
mov qword [rax + 0x18], rcx
movsx ecx, r11w
ror cx, cl
jmp 0x1403d907a
add rax, 0x20
rcl cl, cl
movzx rcx, r15w
not rcx
add rdi, 0x20
cmove rcx, rdi
movzx rcx, cx
dec rdx
clc
dec cx
mov rcx, rax
test spl, r9b
add rsi, rbx
je 0x1403d9172
add rdi, 0x38
lea rcx, [0x1400beb50]
nop word cs:[rax + rax]
mov qword [rax], rcx
btc bx, 0x69
rol bh, cl
neg ebx
mov dword [rax + 8], 0
movzx ebx, bx
bt bx, di
btr bx, 0x61
mov ebx, dword [rdi - 0x30]
mov dword [rax + 8], ebx
mov rbx, qword [rdi - 0x28]
mov qword [rax + 0x10], rbx
sbb bl, r12b
not bx
mov rbx, qword [rdi - 0x20]
jmp 0x1403d90fe
mov qword [rax + 0x18], rbx
mov qword [rax + 0x20], rcx
adc rbx, 0x67142545
movsx ebx, bp
mov dword [rax + 0x28], 0
not bx
mov ebx, dword [rdi - 0x10]
cmp al, r9b
test rsi, 0x595319b9
jmp 0x1403d912c
mov dword [rax + 0x28], ebx
mov rbx, qword [rdi - 8]
test r11w, bp
mov qword [rax + 0x30], rbx
mov rbx, qword [rdi]
cmc
jmp 0x1403d9144
mov qword [rax + 0x38], rbx
cmc
add rax, 0x40
add rdi, 0x40
cmp r15b, 0x1f
test rdx, 0x1c0478e6
add rdx, 0xfffffffffffffffe
jne 0x1403d90c2
mov rcx, rax
bts bx, bx
movsx bx, r13b
mov qword [r14 + 8], rcx
xor dil, 0xbd
clc
add rsp, 0x28
pop rbx
pop rdi
movzx si, r13b
pop rsi
pop r14
ret