Function at 0x18012ddf7
Capabilities:
Encrypt data using speck

Disassembly:
push rbp
push rbx
movzx ebp, r13w
sub ebx, 0x386e62c2
push rsi
adc bl, r10b
sar ebp, 0x95
push rdi
shl rsi, cl
mov di, 0x5cff
push r12
push r13
adc r12b, r11b
sal ah, 0x70
push r14
push r15
adc ax, r11w
shrd ax, dx, 0x6a
lea rbp, [rsp - 0x28]
sar r15, cl
sub rsp, 0x128
mov rax, qword [0x180085010]
xor rax, rsp
movsx r15w, spl
mov qword [rbp + 0x10], rax
mov rdi, qword [rbp + 0x90]
bswap r12
movsx r13, r8w
mov r12, rdx
mov r13, qword [rbp + 0xa8]
movzx r15d, r13w
mov r15, r8
mov qword [rsp + 0x68], r8
mov rbx, rcx
xchg si, r8w
jmp 0x18012de81
mov qword [rbp - 0x80], rdx
movsx ecx, di
xchg r8w, cx
mov r8, rdi
mov dl, r14b
bswap si
cqo
mov rcx, r12
cmovs si, di
mov qword [rbp - 0x68], r13
xchg sil, sil
mov rdx, r9
movsx rsi, r12w
movsx si, dil
mov byte [rsp + 0x60], 0
jmp 0x18012debb
mov rsi, r9
jmp 0x18012dec3
call fcn.180131c2e
mov r14d, eax
cmc
cmp eax, 0xffffffff
jmp 0x18012ded4
jl 0x18012e6e9
cmp eax, dword [rdi + 4]
jge 0x18012e6e9
cmp dword [rbx], 0xe06d7363
jmp 0x18012deee
jne 0x18012e01f
cmp dword [rbx + 0x18], 4
jmp 0x18012defd
jne 0x18012e01f
mov eax, dword [rbx + 0x20]
test r8w, 0x3edd
sub eax, 0x19930520
stc
cmp eax, 2
ja 0x18012e01f
cmp qword [rbx + 0x30], 0
jne 0x18012e01f
call fcn.18012c875
cmp qword [rax + 0x20], 0
jmp 0x18012df35
je 0x18012e61c
call fcn.18012c875
mov rbx, qword [rax + 0x20]
jmp 0x18012df49
call fcn.18012c875
mov rcx, qword [rbx + 0x38]
setno r15b
movsx r15, r13w
mov byte [rsp + 0x60], 1
mov r15, qword [rax + 0x28]
jmp 0x18012df68
mov qword [rsp + 0x68], r15
call fcn.18012b791
cmp dword [rbx], 0xe06d7363
jmp 0x18012df7d
jne 0x18012dfb3
cmp dword [rbx + 0x18], 4
jne 0x18012dfb3
mov eax, dword [rbx + 0x20]
sub eax, 0x19930520
cmp eax, 2
jmp 0x18012df9d
ja 0x18012dfb3
cmp qword [rbx + 0x30], 0
jmp 0x18012dfad
je 0x18012e6e9
call fcn.18012c875
cmp qword [rax + 0x38], 0
je 0x18012e01f
call fcn.18012c875
mov r15, qword [rax + 0x38]
jmp 0x18012dfd1
call fcn.18012c875
mov rdx, r15
sbb ch, 0xf
mov rcx, rbx
and qword [rax + 0x38], 0
jmp 0x18012dfe9
call fcn.180131d7c
test al, al
jne 0x18012e010
mov rcx, r15
jmp 0x18012dffe
call fcn.180131f86
test al, al
je 0x18012e6ad
jmp 0x18012e664
mov r15, qword [rsp + 0x68]
or ah, 0xa7
bsr rax, rbp
ror eax, 0x46
mov rax, qword [rsi + 8]
cmc
mov qword [rbp - 0x40], rax
cmp r14d, 0x451dd
clc
test spl, 0x93
mov qword [rbp - 0x48], rdi
jmp 0x18012e041
cmp dword [rbx], 0xe06d7363
jne 0x18012e589
cmp dword [rbx + 0x18], 4
jne 0x18012e589
mov eax, dword [rbx + 0x20]
cmp rdx, r10
sub eax, 0x19930520
stc
cmp eax, 2
jmp 0x18012e06b
ja 0x18012e589
xor r13d, r13d
stc
jmp 0x18012e07a
cmp dword [rdi + 0xc], r13d
jmp 0x18012e083
jbe 0x18012e3ff
mov eax, dword [rbp + 0xa0]
movsx ecx, di
xchg dl, r8b
movsx r9, dx
lea rdx, [rbp - 0x48]
cmovg r8, rsp
jmp 0x18012e0a9
mov dword [rsp + 0x28], eax
mov r9w, 0x1c52
bswap rcx
lea rcx, [rbp - 0x28]
movsx r9d, bx
bswap r9
mov r9, rsi
mov qword [rsp + 0x20], rdi
mov r8d, r14d
jmp 0x18012e0d0
call fcn.18012aba9
movups xmm0, xmmword [rbp - 0x28]
movdqu xmmword [rbp - 0x38], xmm0
psrldq xmm0, 8
movd eax, xmm0
cmp eax, dword [rbp - 0x10]
jmp 0x18012e0ef
jae 0x18012e3ff
mov r9, qword [rbp - 0x28]
movsxd r12, r12d
mov r12d, dword [rbp - 0x30]
movsx edx, ax
mov ax, 0x4f97
cmovs dx, sp
mov qword [rsp + 0x78], r9
movzx ecx, ax
lahf
mov rax, qword [rbp - 0x38]
movsx cx, r11b
cdq
mov rax, qword [rax]
bswap rdx
mov ecx, r14d
movsx rcx, r13w
movsxd rdx, dword [rax + 0x10]
mov cx, 0x7c74
not cx
mov eax, r12d
cmovbe cx, r14w
movsx r8d, dx
lea rcx, [rax + rax*4]
mov rax, qword [r9 + 8]
jmp 0x18012e157
lea r8, [rdx + rcx*4]
movsx rcx, dx
cmovns rcx, r11
movsxd rcx, r15d
movups xmm0, xmmword [r8 + rax]
movsx cx, r12b
bswap ecx
movsxd rcx, dword [r8 + rax + 0x10]
jmp 0x18012e17c
mov dword [rbp - 0x50], ecx
jmp 0x18012e184
movd eax, xmm0
movups xmmword [rbp - 0x60], xmm0
cmp eax, r14d
jmp 0x18012e194
jg 0x18012e3e1
mov rax, qword [rbp - 0x60]
cmp rax, rsp
test ah, 0xcc
shr rax, 0x20
clc
cmp r9b, r9b
cmp r14d, eax
jmp 0x18012e1b4
jg 0x18012e3e1
mov r15, qword [rbp - 0x58]
movsx edx, r8w
bsr edx, r11d
mov rdx, rcx
cmp r9b, spl
test bpl, r14b
add rdx, qword [rsi + 8]
cmp cl, r8b
cmc
shr r15, 0x20
clc
jmp 0x18012e1e1
mov qword [rbp - 0x70], rdx
clc
test r15d, r15d
jmp 0x18012e1ee
je 0x18012e3de
mov eax, r13d
xchg ch, cl
movsxd rcx, r9d
movzx rcx, bp
lea rcx, [rax + rax*4]
cdqe
cbw
movsx ax, r12b
movups xmm0, xmmword [rdx + rcx*4]
movups xmmword [rbp - 8], xmm0
mov rax, rsi
movzx ax, bpl
mov eax, dword [rdx + rcx*4 + 0x10]
jmp 0x18012e226
mov dword [rbp + 8], eax
call fcn.18012b745
mov rcx, qword [rbx + 0x30]
movzx dx, r15b
rol dl, cl
add rax, 4
bsr rdx, r13
ror rdx, cl
shld dx, di, 0x98
movsxd rdx, dword [rcx + 0xc]
add rax, rdx
jmp 0x18012e255
mov qword [rsp + 0x70], rax
call fcn.18012b745
mov rcx, qword [rbx + 0x30]
rcr dx, cl
movsxd rdx, dword [rcx + 0xc]
rcl cx, cl
mov ecx, dword [rax + rdx]
mov dword [rsp + 0x64], ecx
cmp bh, 0x60
cmc
test ecx, ecx
jmp 0x18012e27f
jle 0x18012e31b
call fcn.18012b745
mov rcx, qword [rsp + 0x70]
sal dx, cl
shr dh, 0xfd
setl r8b
mov r8, qword [rbx + 0x30]
rcl dx, 0x2d
ror dx, cl
movsxd rcx, dword [rcx]
test r13w, bx
and dl, 0x78
bsr rdx, rbx
add rax, rcx
movsx edx, r8w
movzx edx, sp
cmovp dx, si
lea rcx, [rbp - 8]
cwd
mov rdx, rax
jmp 0x18012e2ce
mov qword [rbp - 0x78], rax
call fcn.18012f9ab
test eax, eax
jmp 0x18012e2de
jne 0x18012e33f
mov eax, dword [rsp + 0x64]
cmp r14b, 0x1b
test r8, 0xe2a1753
add qword [rsp + 0x70], 4
jmp 0x18012e2fe
dec eax
clc
cmp bx, ax
mov dword [rsp + 0x64], eax
stc
jmp 0x18012e30e
test eax, eax
jmp 0x18012e315
jg 0x18012e285
inc r13d
jmp 0x18012e323
cmp r13d, r15d
jmp 0x18012e32b
je 0x18012e3d8
mov rdx, qword [rbp - 0x70]
jmp 0x18012e33a
jmp 0x18012e1f4
mov al, byte [rbp + 0x98]
movsx ecx, cx
mov r9, rsi
cqo
mov r8, qword [rsp + 0x68]
cdq
setne cl
mov rcx, rbx
cdq
mov rdx, qword [rbp - 0x80]
jmp 0x18012e363
mov byte [rsp + 0x58], al
mov al, byte [rsp + 0x60]
jmp 0x18012e370
mov byte [rsp + 0x50], al
movsx ax, cl
mov al, r10b
mov rax, qword [rbp - 0x68]
mov qword [rsp + 0x48], rax
movzx ax, r8b
mov eax, dword [rbp + 0xa0]
jmp 0x18012e394
mov dword [rsp + 0x40], eax
not al
bswap eax
movsx ax, r13b
lea rax, [rbp - 0x60]
mov qword [rsp + 0x38], rax
movsxd rax, r10d
mov rax, qword [rbp - 0x78]
jmp 0x18012e3b6
mov qword [rsp + 0x30], rax
lea rax, [rbp - 8]
jmp 0x18012e3c4
mov qword [rsp + 0x28], rax
jmp 0x18012e3ce
mov qword [rsp + 0x20], rdi
call fcn.18012da1e
mov r9, qword [rsp + 0x78]
cmc
sub r13d, r13d
inc r12d
cmp r12d, dword [rbp - 0x10]
jmp 0x18012e3ed
jb 0x18012e114
mov r12, qword [rbp - 0x80]
cmp r12b, dl
shr al, 0x47
rcl eax, cl
mov eax, dword [rdi]
cmp r11b, r10b
and eax, 0x1fffffff
cmp eax, 0x19930521
jmp 0x18012e413
jb 0x18012e607
cmp dword [rdi + 0x20], r13d
je 0x18012e442
call fcn.18012b727
movsxd rcx, dword [rdi + 0x20]
test ch, 0xe4
jmp 0x18012e434
add rax, rcx
jmp 0x18012e43c
jne 0x18012e477
mov eax, dword [rdi + 0x24]
cmp al, 0x21
shr eax, 2
test al, 1
jmp 0x18012e451
je 0x18012e607
mov rdx, rdi
cmovp ecx, esi
mov rcx, rsi
jmp 0x18012e465
call fcn.18012a835
test al, al
jmp 0x18012e471
jne 0x18012e607
mov eax, dword [rdi + 0x24]
shr eax, 2
cmc
cmp r10w, ax
cmp bpl, 0xde
test al, 1
jne 0x18012e6b8
cmp dword [rdi + 0x20], r13d
je 0x18012e4ba
call fcn.18012b727
mov rdx, rax
movzx ax, r15b
shr ah, cl
movsxd rax, dword [rdi + 0x20]
stc
clc
add rdx, rax
jmp 0x18012e4b5
jmp 0x18012e4bf
mov rdx, r13
not ecx
mov rcx, rbx
jmp 0x18012e4c7
call fcn.180131d7c
test al, al
jmp 0x18012e4d3
jne 0x18012e607
lea r9, [rbp - 0x78]
jmp 0x18012e4e2
mov r8, rdi
mov rdx, rsi
movsx rcx, r9w
cmovp ecx, r14d
mov rcx, r12
jmp 0x18012e4f8
call fcn.18012a9d6
mov cl, byte [rbp + 0x98]
add r8b, r14b
mov r9, rax
movsx r8d, r15w
bswap edx
btr rdx, 0xf3
mov r8, qword [rsp + 0x68]
bsf dx, r13w
mov rdx, rbx
cmp bpl, r15b
test r14b, 0x9a
test r9b, sil
mov byte [rsp + 0x50], cl
test r12b, 0x7b
jmp 0x18012e538
or ecx, 0xffffffff
jmp 0x18012e540
mov qword [rsp + 0x48], rsi
jmp 0x18012e54a
mov qword [rsp + 0x40], r13
jmp 0x18012e554
mov dword [rsp + 0x38], ecx
jmp 0x18012e55d
mov dword [rsp + 0x30], ecx
not ch
mov rcx, r12
jmp 0x18012e56b
mov qword [rsp + 0x28], rdi
jmp 0x18012e575
mov qword [rsp + 0x20], r13
jmp 0x18012e57f
call fcn.18012b1c3
jmp 0x18012e607
cmp dword [rdi + 0xc], 0
jmp 0x18012e592
jbe 0x18012e607
cmp byte [rbp + 0x98], 0
jne 0x18012e6e9
mov eax, dword [rbp + 0xa0]
movsx rdx, r11w
movsx edx, r14w
jmp 0x18012e5b8
mov r9, rsi
movzx r8w, dil
bswap rcx
cdq
mov qword [rsp + 0x38], r13
movzx rdx, dx
mov r8, r15
setge dl
mov dword [rsp + 0x30], eax
movzx ecx, r15w
mov rdx, r12
jmp 0x18012e5ec
mov dword [rsp + 0x28], r14d
movzx rcx, r10w
mov rcx, rbx
jmp 0x18012e5fd
mov qword [rsp + 0x20], rdi
call fcn.18012effd
call fcn.18012c875
cmp qword [rax + 0x38], 0
jmp 0x18012e616
jne 0x18012e6e9
mov rcx, qword [rbp + 0x10]
clc
xor rcx, rsp
jmp 0x18012e629
call fcn.18012808d
add rsp, 0x128
movsx r13d, sp
movzx r15d, r12w
pop r15
mov si, 0x7da1
pop r14
setp r12b
movzx r12d, r11w
movzx r13w, bl
pop r13
pop r12
pop rdi
pop rsi
pop rbx
mov bp, 0x2144
pop rbp
jmp 0x18012e663
ret
mov dl, 1
movsx ecx, bp
bswap cx
mov rcx, rbx
jmp 0x18012e674
call fcn.18012ba9a
lea rcx, [rbp - 8]
jmp 0x18012e682
call fcn.180097344
lea rdx, [0x180083b90]
xchg cx, cx
cmovno cx, di
movsx rcx, dx
lea rcx, [rbp - 8]
jmp 0x18012e6a2
call fcn.18012be8b
int3
call fcn.180134044
int3
call fcn.18012c875
mov qword [rax + 0x20], rbx
jmp 0x18012e6c6
call fcn.18012c875
mov rcx, qword [rsp + 0x68]
jmp 0x18012e6d5
mov qword [rax + 0x28], rcx
jmp 0x18012e6de
call fcn.180134044
int3
call fcn.1801360f6
int3