Function at 0x1403ec751
Capabilities:
Encrypt data using speck

Disassembly:
push r15
bsr r15, rdi
bts r15, rbx
and al, ch
push r14
bts r9d, eax
sar ax, 0x73
xor eax, 0x677f7ebe
push r13
btr r13, 4
or r14w, 0x1fea
xadd r15b, r15b
push r12
push rsi
bts r13, r14
push rdi
cwde
cdqe
test r9, 0x75ae5a89
push rbp
test cl, 0x5e
movsx r10w, r10b
push rbx
movsx bx, ch
btc r14w, r8w
cbw
sub rsp, 0x68
movaps xmmword [rsp + 0x50], xmm6
sbb eax, 0x33704a61
xadd ax, r10w
mov r15, r8
rcl ax, cl
movzx r9w, r13b
xor r9w, 0x3d2b
mov rbx, rdx
mov r14, rcx
btc eax, esi
btr ax, 0xad
add r15, rdx
mov dword [rcx + 8], 0
lea r9, [rsp + 0x30]
btr rax, 0xc4
ror r13d, cl
lea rax, [rcx + 0x40]
mov qword [rsp + 0x48], rax
setb ah
mov rax, r9
lea rax, [rcx + 0x28]
neg r13d
mov r13w, 0x699f
cmovg r13w, bx
mov qword [rsp + 0x40], rax
movsx r13d, bp
shl r13d, 5
lea r13, [rcx + 0x10]
sub eax, eax
mov r10b, r14b
lea r10, [0x1400bed90]
jmp 0x1403ec830
xorps xmm6, xmm6
lea r11, [rsp + 0x20]
or r12b, bpl
bts r12, rdx
ror r12b, cl
xor ecx, ecx
mov r12, 0xb317bff
lea r12, [rbx + 1]
jmp 0x1403ec854
cmp r12, r15
jmp 0x1403ec85c
ja 0x1403ecf57
mov rdx, rbx
rcl bp, cl
setne dil
movzx edi, byte [rbx]
shr rbp, 0x7a
ror bpl, 0xab
mov ebp, edi
btc bx, 0x70
add bh, 0x68
and ebp, 0x7f
shl rbp, cl
shl rbx, 0xf9
bt ebx, 0xa4
ror bx, 0x74
add rax, rbp
add ebx, r10d
mov bx, r12w
dec bh
add rcx, 7
shr bx, cl
rcl bh, cl
mov rbx, r12
cmc
test dh, 0x88
jmp 0x1403ec8b4
test dil, dil
js 0x1403ec84b
mov rcx, rax
shr rcx, 3
clc
cmp r9, 0x4c3d1835
cmc
and eax, 7
cmp spl, 0x1a
cmc
cmp rcx, 3
je 0x1403ec963
cmp rcx, 2
jmp 0x1403ec8e8
je 0x1403ecad6
cmp rcx, 1
je 0x1403ecc4b
cmp rax, 1
jmp 0x1403ec901
jg 0x1403ece08
test rax, rax
jne 0x1403ecebc
mov rdx, r12
xor bx, sp
nop word [rax + rax]
dec rbx
bsf ebx, r9d
lea rbx, [rdx + 1]
cmp r14b, al
clc
cmp rbx, r15
jmp 0x1403ec933
ja 0x1403ecf57
cmp byte [rdx], 0
cmovl dx, r10w
cwd
lahf
mov eax, 0
cwd
mov ecx, 0
mov rdx, rbx
jmp 0x1403ec958
js 0x1403ec923
jmp 0x1403ec84b
cmp eax, 2
jmp 0x1403ec96b
jne 0x1403ecf57
or byte [r14 + 8], 8
cmp r12w, 0x29d7
add bpl, 0x16
mov rbp, r12
stc
sub r8d, r8d
xor rdx, r9
shl dx, 0xc1
sub ecx, ecx
rol rdx, cl
nop word cs:[rax + rax]
lea rdx, [rbp + 1]
cmp rdx, r15
jmp 0x1403ec9a9
ja 0x1403ecf57
mov rax, r8
bts di, r12w
cmp bpl, r13b
rcl di, 0xf2
movzx edi, byte [rbp]
mov ebx, edi
and ebx, 0x7f
shl rbx, cl
rcr bpl, cl
bt bp, r15w
rcl bpl, cl
add r8, rbx
add rcx, 7
mov rbp, rdx
clc
test bpl, 0x8d
test dil, dil
js 0x1403ec99d
lea rbx, [rbx + rax]
cmp bl, 0xeb
add rbx, rdx
jmp 0x1403ec9fd
cmp rbx, r15
jmp 0x1403eca05
ja 0x1403ecf57
mov rdi, r10
movsxd rbp, ebp
mov qword [rsp + 0x20], r10
xchg rcx, rsi
not bpl
movsx rcx, di
mov dword [rsp + 0x28], 0
jmp 0x1403eca34
mov rsi, r9
movsx rcx, r11w
setae bpl
movsx ecx, si
movups xmmword [r9], xmm6
movsxd rcx, ebp
movzx ebp, bx
xchg cl, bpl
mov rbp, r11
mov rcx, r11
jmp 0x1403eca5a
call fcn.1403ed8d6
test al, al
jmp 0x1403eca66
je 0x1403ecf57
mov rdx, qword [r14 + 0x48]
cmp r15, rax
cmp rdx, qword [r14 + 0x50]
jmp 0x1403eca7c
je 0x1403ecf0b
mov r10, rdi
mov qword [rdx], rdi
mov dword [rdx + 8], 0
cbw
mov eax, dword [rsp + 0x28]
mov dword [rdx + 8], eax
lahf
mov rax, qword [rsp + 0x30]
mov qword [rdx + 0x10], rax
not ah
or al, r14b
xor ax, 0x1e50
mov eax, dword [rsp + 0x38]
mov dword [rdx + 0x18], eax
sbb ax, 0x3259
mov eax, dword [rsp + 0x3c]
mov dword [rdx + 0x1c], eax
stc
test r9b, bl
test rax, 0x65a5527a
add qword [r14 + 0x48], 0x20
jmp 0x1403ecad1
jmp 0x1403ecdec
cmp eax, 2
jmp 0x1403ecade
jne 0x1403ecf57
or byte [r14 + 8], 4
movzx dx, dil
movsx rdx, bp
mov rbp, r12
movsx edx, r9w
ror rdx, 0x39
xor r8d, r8d
rcl dh, cl
xor ecx, ecx
cmp r10w, 0x10eb
cmp r8b, r15b
add rdx, rbx
nop word cs:[rax + rax]
mov dl, 0xe8
lea rdx, [rbp + 1]
cmp bp, 0x39ed
clc
cmp rdx, r15
jmp 0x1403ecb2e
ja 0x1403ecf57
mov rax, r8
bsf di, r10w
movzx edi, byte [rbp]
btr bx, r13w
mov ebx, edi
and ebx, 0x7f
and bpl, bl
shr ebp, 0xcf
btr ebp, r9d
shl rbx, cl
add r8, rbx
sar bp, 0x58
add rcx, 7
dec bpl
btc rbp, 0x66
cmp r12b, r11b
mov rbp, rdx
cmc
stc
test dil, dil
jmp 0x1403ecb7a
js 0x1403ecb1c
lea rbx, [rbx + rax]
jmp 0x1403ecb8c
add rbx, rdx
cmp rbx, r15
jmp 0x1403ecb97
ja 0x1403ecf57
mov rdi, r10
bswap bp
mov qword [rsp + 0x20], r10
mov dword [rsp + 0x28], 0
mov rsi, r9
setbe ch
movups xmmword [r9], xmm6
mov rbp, r11
mov rcx, r11
jmp 0x1403ecbc5
call fcn.1403ed8d6
test al, al
jmp 0x1403ecbd1
je 0x1403ecf57
mov rdx, qword [r14 + 0x30]
cmp rdx, qword [r14 + 0x38]
jmp 0x1403ecbe4
je 0x1403ecf1a
mov r10, rdi
mov qword [rdx], rdi
cdqe
mov dword [rdx + 8], 0
stc
bsf rax, rdi
mov eax, dword [rsp + 0x28]
clc
mov dword [rdx + 8], eax
bt rax, r13
mov rax, qword [rsp + 0x30]
mov qword [rdx + 0x10], rax
ror ax, cl
movsx rax, r15w
not rax
mov eax, dword [rsp + 0x38]
mov dword [rdx + 0x18], eax
dec al
movsx rax, r9w
shld eax, ebx, 0xc7
mov eax, dword [rsp + 0x3c]
cmp cl, 0x20
cmc
test r8, rbp
mov dword [rdx + 0x1c], eax
add qword [r14 + 0x30], 0x20
jmp 0x1403ecc46
jmp 0x1403ecdec
cmp eax, 2
jmp 0x1403ecc53
jne 0x1403ecf57
or byte [r14 + 8], 2
mov rbp, r12
ror dx, cl
xor r8d, r8d
cmovne dx, di
sub ecx, ecx
sub dl, r9b
rol dh, 0xcd
adc dx, 0x452d
nop word cs:[rax + rax]
lea rdx, [rbp + 1]
stc
test r9w, sp
cmp rdx, r15
jmp 0x1403ecc93
ja 0x1403ecf57
mov rax, r8
test r11w, r11w
movzx edi, byte [rbp]
shrd bx, r12w, 0xe2
sar bpl, cl
xor rbp, 0x76866e36
mov ebx, edi
movsx bp, sil
shld bp, r13w, 0x83
movsx ebp, dx
and ebx, 0x7f
shl rbx, cl
lea r8, [r8 + rbx]
shrd ebp, ebp, 0x21
ror bpl, cl
btc ebp, r9d
add rcx, 7
rol bpl, 0x73
rcr bp, cl
btc rbp, 0x36
mov rbp, rdx
test dil, dil
jmp 0x1403eccf4
js 0x1403ecc82
lea rbx, [rbx + rax]
add rbx, rdx
cmp rbx, r15
jmp 0x1403ecd09
ja 0x1403ecf57
mov rdi, r10
movzx rbp, bx
mov qword [rsp + 0x20], r10
movsx ecx, r14w
mov dword [rsp + 0x28], 0
setge bpl
mov bpl, 0x5a
mov rsi, r9
movsxd rcx, esp
movups xmmword [r9], xmm6
sets bpl
xchg cl, bpl
mov rbp, r11
movzx rcx, si
movsx rcx, bx
mov rcx, r11
jmp 0x1403ecd52
call fcn.1403ed8d6
test al, al
je 0x1403ecf57
mov rdx, qword [r14 + 0x18]
clc
test cl, 0x32
jmp 0x1403ecd6c
cmp rdx, qword [r14 + 0x20]
jmp 0x1403ecd75
je 0x1403ecf24
mov r10, rdi
bsr r9d, r12d
mov qword [rdx], rdi
sub r11w, 0x1ef9
mov dword [rdx + 8], 0
bt ax, 0x54
inc r11b
mov eax, dword [rsp + 0x28]
btr r9, 0x7c
bt r9d, 0xf6
mov dword [rdx + 8], eax
or al, 0x29
sal r11w, cl
mov rax, qword [rsp + 0x30]
sete r9b
btr r9d, r14d
xadd r11b, r9b
mov qword [rdx + 0x10], rax
mov eax, dword [rsp + 0x38]
cmove r11w, di
rol r11d, 0x37
sal r11w, cl
mov dword [rdx + 0x18], eax
mov eax, dword [rsp + 0x3c]
mov dword [rdx + 0x1c], eax
shr r9b, 0x55
add qword [r14 + 0x18], 0x20
clc
cmc
mov r9, rsi
adc r11, rcx
shl r11b, cl
cmovl r11d, r13d
mov r11, rbp
xor eax, eax
jmp 0x1403ece03
jmp 0x1403ec842
cmp eax, 5
jmp 0x1403ece10
je 0x1403eced8
cmp eax, 2
jne 0x1403ecf57
mov rax, r12
xor edx, edx
cmp r8b, r15b
btc rbp, rdx
sub ecx, ecx
nop word cs:[rax + rax]
add bp, 0x7749
lea rbp, [rax + 1]
cmp rbp, r15
jmp 0x1403ece4a
ja 0x1403ecf57
mov rdi, rdx
sal bl, cl
and rsi, 0x435b7d63
inc si
movzx esi, byte [rax]
btr ax, 0x2b
mov ebx, esi
and ebx, 0x7f
shl rbx, cl
sar al, cl
lea rdx, [rdx + rbx]
sub al, bpl
add rcx, 7
test dl, r13b
cmovl ax, r14w
mov rax, rbp
cmp r13w, 0x4713
test sil, sil
js 0x1403ece3e
add rbx, rdi
lea rbx, [rbx + rbp]
cmc
jmp 0x1403ecea3
cmp rbx, r15
cmova rbx, rbp
jmp 0x1403eceb0
sub eax, eax
jmp 0x1403eceb7
jmp 0x1403ec842
cmp eax, 1
jmp 0x1403ecec4
jne 0x1403ecf57
add rdx, 9
jmp 0x1403eced3
jmp 0x1403ecee7
add rdx, 5
or bh, 0x9e
sar bx, cl
shld bx, bx, 0x65
cmp rdx, r15
movsxd rbx, r10d
cmova rdx, r12
mov rbx, rdx
test spl, al
test r12, 0x53a83ad0
cmc
xor eax, eax
jmp 0x1403ecf06
jmp 0x1403ec842
mov rcx, qword [rsp + 0x48]
jmp 0x1403ecf15
jmp 0x1403ecf31
mov rcx, qword [rsp + 0x40]
jmp 0x1403ecf31
mov rcx, r13
bswap r8
movsxd r8, edi
movsx r8, bp
mov r8, rbp
jmp 0x1403ecf39
call fcn.1403edd05
mov r11, rbp
xor r9w, r9w
mov r9, rsi
mov r10, rdi
xor eax, eax
jmp 0x1403ecf52
jmp 0x1403ec842
cmp r12, r15
seta al
movaps xmm6, xmmword [rsp + 0x50]
movzx bx, r13b
movsx rsi, sp
add rsp, 0x68
pop rbx
movsx di, dil
pop rbp
movsx si, dil
movzx r15d, sp
seta r14b
pop rdi
jmp 0x1403ecf92
pop rsi
movsxd r13, ecx
movzx r12w, cl
pop r12
mov r13, 0x221589e
movsx r15w, spl
mov r13w, r13w
pop r13
xchg r14d, r15d
setle r14b
movsx r15, dx
pop r14
pop r15
jmp 0x1403ecfc3
ret