Function at 0x1404c88a9
Capabilities:
Encrypt data using speck

Disassembly:
push rbp
mov al, 0x9d
movzx bp, r9b
push rbx
push rsi
push rdi
sbb bp, bx
shrd ax, bp, 0xcd
push r12
push r13
sub r13b, r14b
push r14
push r15
lea rbp, [rsp - 0x88]
shr r13d, 0x69
sub rsp, 0x188
adc r12b, r8b
sub r14b, 0x4b
mov rax, qword [0x1400b7288]
movsx r13w, r14b
and r14b, al
xor rax, rsp
mov qword [rbp + 0x70], rax
mov r14, qword [rbp + 0xf0]
not bh
movsxd r12, esp
movzx r15d, cx
mov r15, rdx
jmp 0x1404c8914
mov r12, qword [rbp + 0x108]
movsx rsi, r13w
movzx r13, dx
mov rbx, rcx
cmovp r13d, r12d
mov qword [rsp + 0x78], rdx
movsx r13w, r9b
mov sil, 0xeb
mov rcx, r14
xchg dh, dl
cdq
mov rdx, r9
not r13w
xchg r13b, sil
mov qword [rbp - 0x60], r12
movzx si, sil
not si
mov rsi, r9
bswap r13w
mov byte [rsp + 0x60], 0
movsx r13d, cx
mov r13, r8
jmp 0x1404c896b
call fcn.1401986f3
cmp dword [rsi + 0x48], 0
mov dil, sil
mov edi, eax
je 0x1404c89a3
call fcn.1404c4330
cmp dword [rax + 0x78], 0xfffffffe
jmp 0x1404c898d
jne 0x1404c91f5
mov edi, dword [rsi + 0x48]
sub edi, 2
jmp 0x1404c899e
jmp 0x1404c89d3
call fcn.1404c4330
cmp dword [rax + 0x78], 0xfffffffe
jmp 0x1404c89b1
je 0x1404c89d3
call fcn.1404c4330
mov edi, dword [rax + 0x78]
jmp 0x1404c89c4
call fcn.1404c4330
mov dword [rax + 0x78], 0xfffffffe
cmp r14b, r14b
cmp edi, 0xffffffff
jmp 0x1404c89db
jl 0x1404c91f5
cmp dword [r14 + 8], 0
lea r8, [0x140000000]
jmp 0x1404c89f2
je 0x1404c8a41
movsxd rdx, dword [r14 + 8]
lahf
sar al, cl
add rdx, qword [rsi + 8]
movzx ecx, byte [rdx]
and ecx, 0xf
sar ax, cl
movsx rax, byte [rcx + r8 + 0xc1a30]
cmp sil, 0x1b
mov cl, byte [rcx + r8 + 0xc1a40]
cmp cl, bpl
cmp eax, 0x534f66ec
sub rdx, rax
neg ax
bt eax, ebx
mov eax, dword [rdx - 4]
shr eax, cl
jmp 0x1404c8a3c
jmp 0x1404c8a44
xor eax, eax
cmc
cmp edi, eax
jmp 0x1404c8a4b
jge 0x1404c91f5
cmp dword [rbx], 0xe06d7363
jmp 0x1404c8a5c
jne 0x1404c8ba8
cmp dword [rbx + 0x18], 4
jmp 0x1404c8a6b
jne 0x1404c8ba8
mov eax, dword [rbx + 0x20]
jmp 0x1404c8a7a
sub eax, 0x19930520
test si, r9w
clc
cmp eax, 2
ja 0x1404c8ba8
cmp qword [rbx + 0x30], 0
jmp 0x1404c8a97
jne 0x1404c8ba8
call fcn.1404c4330
cmp qword [rax + 0x20], 0
jmp 0x1404c8aac
je 0x1404c9123
call fcn.1404c4330
mov rbx, qword [rax + 0x20]
call fcn.1404c4330
mov rcx, qword [rbx + 0x38]
mov byte [rsp + 0x60], 1
movzx r13, cx
seta r13b
cmove r13w, ax
mov r13, qword [rax + 0x28]
jmp 0x1404c8adf
call fcn.1404a3577
cmp dword [rbx], 0xe06d7363
jmp 0x1404c8aef
jne 0x1404c8b33
cmp dword [rbx + 0x18], 4
jmp 0x1404c8afe
jne 0x1404c8b33
mov eax, dword [rbx + 0x20]
jmp 0x1404c8b0c
sub eax, 0x19930520
cmp r8b, r12b
clc
cmp eax, 2
jmp 0x1404c8b1d
ja 0x1404c8b33
cmp qword [rbx + 0x30], 0
jmp 0x1404c8b2d
je 0x1404c91f5
call fcn.1404c4330
cmp qword [rax + 0x38], 0
jmp 0x1404c8b42
je 0x1404c8ba8
call fcn.1404c4330
mov r15, qword [rax + 0x38]
jmp 0x1404c8b56
call fcn.1404c4330
mov rdx, r15
mov rcx, rbx
jmp 0x1404c8b68
and qword [rax + 0x38], 0
jmp 0x1404c8b72
call fcn.1404c61ea
test al, al
jmp 0x1404c8b7e
jne 0x1404c8ba3
mov rcx, r15
jmp 0x1404c8b8c
call fcn.1404c6418
test al, al
jmp 0x1404c8b98
je 0x1404c91c3
jmp 0x1404c9188
mov r15, qword [rsp + 0x78]
mov r8, qword [rsi + 8]
mov dx, r11w
xchg cx, cx
lea rcx, [rbp - 0x10]
movzx dx, r13b
mov rdx, r14
jmp 0x1404c8bc4
call fcn.140290ca3
cmp dword [rbx], 0xe06d7363
jmp 0x1404c8bd4
jne 0x1404c9098
cmp dword [rbx + 0x18], 4
jmp 0x1404c8be3
jne 0x1404c9098
mov eax, dword [rbx + 0x20]
sub eax, 0x19930520
test r12b, spl
cmp dil, sil
cmp eax, 2
jmp 0x1404c8bff
ja 0x1404c9098
cmp dword [rbp - 0x10], 0
jmp 0x1404c8c0e
jbe 0x1404c9067
mov eax, dword [rbp + 0x100]
movsx rcx, r15w
movsx ecx, dx
movzx r8, r12w
lea rdx, [rbp - 0x10]
mov dword [rsp + 0x28], eax
movzx r8, r14w
movzx r9d, sp
lea rcx, [rbp - 0x58]
movsxd r8, r14d
movzx r9w, r10b
mov r9, rsi
not r8b
movzx r8w, al
movsx r8d, r11w
mov qword [rsp + 0x20], r14
cmova r8, r10
movsx r8, r14w
mov r8d, edi
call fcn.1404a3209
movups xmm0, xmmword [rbp - 0x58]
movdqu xmmword [rbp - 0x78], xmm0
jmp 0x1404c8c73
psrldq xmm0, 8
movd eax, xmm0
cmp eax, dword [rbp - 0x40]
jmp 0x1404c8c84
jae 0x1404c9067
mov r15, qword [rbp - 0x58]
movsx rax, di
movsxd rax, r15d
bswap eax
mov eax, dword [rbp - 0x70]
jmp 0x1404c8c9f
mov qword [rbp - 0x80], r15
jmp 0x1404c8ca8
mov dword [rsp + 0x68], eax
jmp 0x1404c8cb1
movups xmm0, xmmword [r15 + 0x18]
jmp 0x1404c8cbb
movq rax, xmm0
movups xmmword [rbp - 0x78], xmm0
cmp eax, edi
jmp 0x1404c8ccb
jg 0x1404c8f0a
shr rax, 0x20
cmp rdx, 0x113c4bfe
cmp edi, eax
jmp 0x1404c8ce3
jg 0x1404c8f0a
mov rax, qword [rsi + 0x10]
lea rdx, [rbp - 0x78]
movzx r8, r8w
mov r8, qword [rsi + 8]
movsx cx, r8b
movzx ecx, bx
mov r9b, 0xaf
lea rcx, [rbp + 0x20]
movzx r9, r13w
movsxd r9, r12d
xchg r9b, r9b
mov r9d, dword [rax]
jmp 0x1404c8d1a
call fcn.1404c4cb4
mov eax, dword [rbp + 0x20]
stc
cmp spl, 0x41
clc
xor r12d, r12d
cmc
cmp sp, si
jmp 0x1404c8d34
mov dword [rsp + 0x64], r12d
mov dword [rsp + 0x6c], eax
cmp bx, dx
test dh, 0xb4
test eax, eax
jmp 0x1404c8d4a
je 0x1404c8f0a
movups xmm0, xmmword [rbp + 0x38]
jmp 0x1404c8d59
movups xmm1, xmmword [rbp + 0x48]
jmp 0x1404c8d62
movups xmmword [rbp - 0x38], xmm0
jmp 0x1404c8d6b
movsd xmm0, qword [rbp + 0x58]
movsd qword [rbp - 0x18], xmm0
jmp 0x1404c8d7a
movups xmmword [rbp - 0x28], xmm1
jmp 0x1404c8d83
call fcn.1404a355b
mov rcx, qword [rbx + 0x30]
add rax, 4
movsxd rdx, dword [rcx + 0xc]
add rax, rdx
mov qword [rsp + 0x70], rax
call fcn.1404a355b
mov rcx, qword [rbx + 0x30]
shl dx, 0x12
movsxd rdx, dword [rcx + 0xc]
adc r15b, 0x5c
rol r15b, 0xa2
mov r15d, dword [rax + rdx]
cmc
stc
cmp r8b, 9
test r15d, r15d
jmp 0x1404c8dc7
jle 0x1404c8e41
call fcn.1404a355b
mov r8, qword [rbx + 0x30]
mov r12, rax
mov rax, qword [rsp + 0x70]
sub dh, 0x3b
movsxd rcx, dword [rax]
bt dx, 5
cdq
rcl dl, cl
add r12, rcx
cmovo cx, r12w
movzx ecx, r15w
lea rcx, [rbp - 0x38]
movsx dx, r9b
mov rdx, r12
call fcn.1404c6882
test eax, eax
jmp 0x1404c8e10
jne 0x1404c8e74
add qword [rsp + 0x70], 4
jmp 0x1404c8e21
dec r15d
test spl, 0x83
test r15d, r15d
jmp 0x1404c8e30
jg 0x1404c8dcd
mov r12d, dword [rsp + 0x64]
bswap cx
mov cl, r10b
lea rcx, [rbp + 0x20]
jmp 0x1404c8e4a
call fcn.1401de107
inc r12d
jmp 0x1404c8e5a
mov dword [rsp + 0x64], r12d
cmp r12d, dword [rsp + 0x6c]
jmp 0x1404c8e69
je 0x1404c8f04
jmp 0x1404c8d50
mov al, byte [rbp + 0xf8]
cqo
cwd
cdq
mov r9, rsi
movzx r8d, cx
cqo
mov rdx, qword [rsp + 0x78]
jmp 0x1404c8e92
mov r8, r13
mov byte [rsp + 0x58], al
mov rcx, rbx
mov al, byte [rsp + 0x60]
jmp 0x1404c8ea5
mov byte [rsp + 0x50], al
cmovge eax, r12d
movsx rax, bp
mov rax, qword [rbp - 0x60]
jmp 0x1404c8eba
mov qword [rsp + 0x48], rax
movsx eax, si
mov eax, dword [rbp + 0x100]
jmp 0x1404c8ecd
mov dword [rsp + 0x40], eax
cbw
movzx rax, sp
lea rax, [rbp - 0x78]
mov qword [rsp + 0x38], rax
cmovno ax, dx
mov al, sil
lea rax, [rbp - 0x38]
mov qword [rsp + 0x30], r12
mov qword [rsp + 0x28], rax
jmp 0x1404c8efa
mov qword [rsp + 0x20], r14
call fcn.1404c9828
mov r15, qword [rbp - 0x80]
cbw
mov r8, qword [r15 + 8]
bt dx, 0xaf
lea rdx, [0x140000000]
ror cx, cl
movzx ecx, byte [r8]
and ecx, 0xf
sal ah, 0x86
xor rax, 0x34615d96
cdqe
movsx rax, byte [rcx + rdx + 0xc1a30]
jmp 0x1404c8f3e
mov cl, byte [rcx + rdx + 0xc1a40]
sub r8, rax
or al, r11b
shrd ax, cx, 0x13
mov eax, dword [r8 - 4]
jmp 0x1404c8f5f
shr eax, cl
rcr cl, cl
mov qword [r15 + 8], r8
rcl cx, 0xd
not rcx
mov dword [r15 + 0x18], eax
movzx ecx, byte [r8]
or ah, 0x12
and ecx, 0xf
movzx eax, di
bt eax, r9d
movsx rax, byte [rcx + rdx + 0xc1a30]
test r8, rcx
jmp 0x1404c8f94
mov cl, byte [rcx + rdx + 0xc1a40]
sub r8, rax
sal rax, 0xac
or al, al
add al, 0x41
mov eax, dword [r8 - 4]
shr eax, cl
bt ecx, r15d
mov qword [r15 + 8], r8
dec ch
cmc
jmp 0x1404c8fbc
mov dword [r15 + 0x1c], eax
test bpl, r10b
bsr ax, r9w
movzx ecx, byte [r8]
cmovbe rax, r11
adc ax, 0x4f5
rcl rax, 0xf9
and ecx, 0xf
shl ah, cl
movsx rax, byte [rcx + rdx + 0xc1a30]
mov cl, byte [rcx + rdx + 0xc1a40]
sub r8, rax
cmp r11d, edi
bts rdx, r10
cdq
mov eax, dword [r8 - 4]
movzx dx, r14b
sbb dh, 0x9b
shr eax, cl
movsx rdx, r15w
cmovge dx, r13w
mov ecx, 0x6c644342
mov ecx, dword [rsp + 0x68]
mov dword [r15 + 0x20], eax
movsxd rdx, r12d
inc ecx
cqo
xor dx, 0x2f95
rcr dx, 0xaa
mov qword [r15 + 8], r8
rcr dl, cl
movzx rdx, ax
lea rax, [r8 + 4]
cqo
mov edx, dword [r8]
test rbp, r15
stc
mov qword [r15 + 8], rax
cmp spl, 0xa5
jmp 0x1404c9050
mov dword [r15 + 0x24], edx
cmp bx, 0x5404
mov dword [rsp + 0x68], ecx
stc
cmp ecx, dword [rbp - 0x40]
jb 0x1404c8cb1
test byte [r14], 0x40
jmp 0x1404c9070
je 0x1404c910e
mov rdx, r14
movzx cx, bpl
mov rcx, rsi
call fcn.14027315b
test al, al
jmp 0x1404c908d
je 0x1404c91ce
jmp 0x1404c910e
cmp dword [rbp - 0x10], 0
jmp 0x1404c90a1
jbe 0x1404c910e
cmp byte [rbp + 0xf8], 0
jmp 0x1404c90b3
jne 0x1404c91f5
mov eax, dword [rbp + 0x100]
movsx r8d, bp
mov r9, rsi
movsxd r8, edx
mov ch, 0x40
movsx ecx, r14w
mov qword [rsp + 0x38], r12
movzx r8w, bl
mov r8, r13
movzx edx, si
movsx ecx, r14w
setno dl
mov dword [rsp + 0x30], eax
mov rdx, r15
mov dword [rsp + 0x28], edi
sets ch
xchg ecx, ecx
mov rcx, rbx
jmp 0x1404c90ff
mov qword [rsp + 0x20], r14
jmp 0x1404c9109
call fcn.1404c99f4
call fcn.1404c4330
cmp qword [rax + 0x38], 0
jmp 0x1404c911d
jne 0x1404c91f5
mov rcx, qword [rbp + 0x70]
xor rcx, rsp
jmp 0x1404c912f
call fcn.1404a0686
add rsp, 0x188
jmp 0x1404c9147
pop r15
xchg bp, di
pop r14
setno dil
movsxd rsi, r10d
mov r12b, 0xa4
pop r13
mov dil, 0x2c
movzx bp, r9b
bswap bp
pop r12
cmovb esi, ecx
not bh
pop rdi
setnp bpl
cmovs ebx, r10d
mov bpl, 0xed
pop rsi
movsx rbp, r15w
not bpl
pop rbx
pop rbp
jmp 0x1404c9187
ret
mov dl, 1
movsx cx, dil
movsx ecx, r15w
cmovge ecx, esp
mov rcx, rbx
call fcn.1404a3ae9
lea rcx, [rbp - 0x78]
call fcn.1400f2a15
lea rdx, [0x1400d73a8]
mov rcx, rsi
not cx
lea rcx, [rbp - 0x78]
call fcn.1404a1eac
int3
call fcn.1404c30e0
int3
call fcn.1404c4330
mov qword [rax + 0x20], rbx
jmp 0x1404c91dc
call fcn.1404c4330
mov qword [rax + 0x28], r13
jmp 0x1404c91ea
call fcn.1404c30e0
int3
call fcn.1404b8143
int3