Function at 0x14006a950
Capabilities:
Encrypt data using speck

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0xab8
lea rbp, [rsp + 0x80]
mov qword [rbp + 0xa30], 0xfffffffffffffffe
mov rdi, r9
mov qword [rbp + 0xa10], r8
mov qword [rbp + 0xa00], rcx
mov qword [rbp + 0x9e0], rdx
add rdx, 0x17
lea rcx, [rbp + 0x2d0]
call fcn.1400945b0
movzx esi, byte [rbp + 0x641]
mov r14d, dword [rbp + 0x2d0]
mov r15d, dword [rbp + 0x2d4]
mov r12, qword [rbp + 0x2d8]
mov rbx, qword [rbp + 0x2e0]
cmp sil, 2
jne 0x14006a9d3
mov dword [rbp + 0xa28], r15d
jmp 0x14006b0d9
lea rdx, [rbp + 0x2e8]
lea rcx, [rbp + 0x660]
mov r8d, 0x359
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [rbp + 0x642]
mov dword [rbp + 0x9ba], eax
movzx eax, word [rbp + 0x646]
mov word [rbp + 0x9be], ax
mov dword [rbp + 0x648], r14d
mov dword [rbp + 0x64c], r15d
mov qword [rbp + 0x650], r12
mov qword [rbp + 0x658], rbx
mov byte [rbp + 0x9b9], sil
lea rcx, [rbp + 0x2d0]
lea rdx, [rbp + 0x648]
xor r8d, r8d
call fcn.140095e50
mov r14d, dword [rbp + 0x2d0]
cmp r14d, 3
jne 0x14006b0a7
lea rcx, [rbp + 0x2d0]
lea rdx, [rbp + 0x648]
xor r8d, r8d
call fcn.140095e50
mov r14d, dword [rbp + 0x2d0]
cmp r14d, 3
jne 0x14006b0a7
lea rcx, [rbp + 0x2d0]
lea rdx, [rbp + 0x648]
xor r8d, r8d
call fcn.140095e50
mov r14d, dword [rbp + 0x2d0]
cmp r14d, 3
jne 0x14006b0a7
mov eax, dword [rbp + 0x2d4]
mov dword [rbp + 0x7d0], eax
lea rcx, [rbp + 0x2d0]
lea rdx, [rbp + 0x648]
xor r8d, r8d
call fcn.140095e50
mov r14d, dword [rbp + 0x2d0]
cmp r14d, 3
jne 0x14006b0a7
mov eax, dword [rbp + 0x2d4]
mov dword [rbp + 0x7d4], eax
lea rcx, [rbp + 0x648]
call fcn.140095510
test rdi, rdi
je 0x14006aea1
lea rax, [rdi + rdi*2]
mov rcx, qword [rbp + 0xa10]
lea rax, [rcx + rax*8]
mov qword [rbp + 0x9f0], rax
xor eax, eax
mov qword [rbp + 0x9d8], rax
mov ebx, 0x7fffffff
cmp rax, 0x7fffffff
je 0x14006b216
mov rdx, qword [rbp + 0xa10]
mov r12, qword [rdx + 0x10]
cmp r12, 0x7ffffffe
mov dword [rbp + 0xa28], eax
ja 0x14006b22e
mov r14d, eax
mov qword [rbp + 0xa18], rax
mov rax, qword [rbp + 0x698]
mov rcx, qword [rbp + 0x7b8]
cmp rcx, r12
cmovae rcx, r12
mov qword [rbp + 0x7b8], rcx
mov rcx, qword [rbp + 0x7c0]
cmp rcx, r12
mov rdi, r12
cmovbe rcx, r12
mov r12, qword [rdx]
mov qword [rbp + 0x7c0], rcx
mov qword [rbp + 0x9c0], rax
cmp qword [rbp + 0xa18], rax
mov rcx, qword [rbp + 0xa18]
jne 0x14006b457
mov rax, rcx
cmp rcx, qword [rbp + 0x690]
jne 0x14006abc2
lea rcx, [rbp + 0x688]
mov rdx, qword [rbp + 0xa18]
call fcn.14004da90
mov rax, qword [rbp + 0x698]
mov rcx, qword [rbp + 0x688]
mov dword [rcx + rax*4], edi
inc qword [rbp + 0x698]
mov rax, qword [rbp + 0x668]
cmp byte [rax], 0
je 0x14006abf1
lea rcx, [rbp + 0x7e8]
mov rdx, r12
mov r8, rdi
call fcn.1400975d0
mov esi, dword [rbp + 0x7d0]
test rdi, rdi
je 0x14006ae2d
add rdi, r12
mov qword [rbp + 0x9e8], rdi
xor eax, eax
mov qword [rbp + 0x9f8], rax
xor r15d, r15d
jmp 0x14006ac33
inc r12
inc r15
cmp r12, qword [rbp + 0x9e8]
je 0x14006ae2d
movzx r13d, byte [r12]
mov edi, esi
test byte [rbp + 0x9f8], 1
mov cl, 1
jne 0x14006ac69
mov rdx, qword [rbp + 0x680]
cmp rdx, rdi
jbe 0x14006b41e
mov rax, qword [rbp + 0x670]
imul rcx, rdi, 0x38
cmp qword [rax + rcx + 0x28], 0
setne cl
test cl, cl
je 0x14006ac7e
mov rax, qword [rbp + 0x668]
cmp byte [rax + 2], 1
je 0x14006ae75
mov qword [rbp + 0x9f8], rcx
lea rcx, [rbp + 0x648]
mov edx, r13d
mov r8d, r13d
call fcn.140083280
movzx eax, r13b
mov qword [rbp + 0xa20], rax
mov rax, qword [rbp + 0x668]
cmp byte [rax + 1], 0
je 0x14006ace4
lea eax, [r13 - 0x41]
cmp al, 0x1a
jae 0x14006acbf
mov edx, r13d
or dl, 0x20
jmp 0x14006acd5
lea eax, [r13 - 0x61]
mov ecx, r13d
xor cl, 0x20
cmp al, 0x1a
movzx edx, cl
cmovae edx, dword [rbp + 0xa20]
lea rcx, [rbp + 0x648]
mov r8d, edx
call fcn.140083280
mov rdx, qword [rbp + 0x680]
cmp rdx, rdi
jbe 0x14006b3f6
mov rcx, qword [rbp + 0x670]
imul rbx, rdi, 0x38
mov rax, qword [rcx + rbx]
mov rcx, qword [rcx + rbx + 0x10]
cmp rcx, 0x100
jne 0x14006ad30
mov rcx, qword [rbp + 0xa20]
lea rdx, [rax + rcx*8]
add rdx, 4
jmp 0x14006ad56
add rax, 0xfffffffffffffffc
shl rcx, 3
nop dword [rax + rax]
test rcx, rcx
je 0x14006ad61
lea rdx, [rax + 8]
add rcx, 0xfffffffffffffff8
cmp byte [rax + 4], r13b
mov rax, rdx
jne 0x14006ad40
mov esi, dword [rdx]
cmp esi, 1
jne 0x14006ac20
lea rcx, [rbp + 0x2d0]
lea rdx, [rbp + 0x648]
mov r8, r15
call fcn.140095e50
mov r14d, dword [rbp + 0x2d0]
mov esi, dword [rbp + 0x2d4]
cmp r14d, 3
jne 0x14006b113
mov rdx, qword [rbp + 0x680]
cmp rdx, rdi
jbe 0x14006b40a
mov rcx, qword [rbp + 0x670]
add rcx, rbx
mov edx, r13d
mov r8d, esi
call fcn.1400941e0
mov r14d, dword [rbp + 0xa28]
mov rax, qword [rbp + 0x668]
cmp byte [rax + 1], 0
je 0x14006ac20
lea eax, [r13 - 0x41]
cmp al, 0x1a
jae 0x14006ade0
or r13b, 0x20
mov qword [rbp + 0xa20], r13
jmp 0x14006adff
lea eax, [r13 - 0x61]
xor r13b, 0x20
cmp al, 0x1a
movzx eax, r13b
mov rcx, qword [rbp + 0xa20]
cmovb ecx, eax
mov qword [rbp + 0xa20], rcx
mov rdx, qword [rbp + 0x680]
cmp rdx, rdi
jbe 0x14006b432
add rbx, qword [rbp + 0x670]
mov rcx, rbx
mov rdx, qword [rbp + 0xa20]
mov r8d, esi
call fcn.1400941e0
jmp 0x14006ac20
mov ecx, esi
mov rdx, qword [rbp + 0x680]
cmp rdx, rcx
jbe 0x14006b446
mov rax, qword [rbp + 0x670]
imul rcx, rcx, 0x38
lea rsi, [rax + rcx]
add rsi, 0x18
mov rdx, qword [rax + rcx + 0x28]
cmp rdx, qword [rax + rcx + 0x20]
jne 0x14006ae6a
mov rcx, rsi
call fcn.14004da90
mov rdx, qword [rsi + 0x10]
mov rax, qword [rsi]
mov dword [rax + rdx*4], r14d
inc qword [rsi + 0x10]
mov rax, qword [rbp + 0xa10]
add rax, 0x18
mov rcx, qword [rbp + 0xa18]
inc rcx
mov qword [rbp + 0xa10], rax
cmp rax, qword [rbp + 0x9f0]
mov rax, rcx
jne 0x14006ab0a
lea rcx, [rbp + 0x648]
call fcn.140095660
lea rcx, [rbp + 0x648]
call fcn.140095800
lea rcx, [rbp + 0x648]
call fcn.140095b70
lea rcx, [rbp + 0x648]
call fcn.1400948e0
lea rcx, [rbp + 0x648]
call fcn.1400959a0
lea rcx, [rbp + 0x648]
call fcn.140095000
lea rcx, [rbp + 0x2d0]
lea rdx, [rbp + 0x648]
call fcn.140083300
lea rcx, [rbp + 0x6b8]
lea rdx, [rbp + 0x2d0]
mov r8d, 0x100
call sub.VCRUNTIME140.dll_memcpy
lea rsi, [rbp + 0x7e8]
lea rcx, [rbp + 0x2d0]
mov rdx, rsi
call fcn.1400969b0
mov rax, qword [rbp + 0x6a0]
test rax, rax
je 0x14006af49
lock dec qword [rax]
jne 0x14006af49
lea rcx, [rbp + 0x6a0]
call fcn.140014510
mov rax, qword [rbp + 0x2e0]
lea rcx, [rbp + 0x6a0]
mov qword [rcx + 0x10], rax
movdqu xmm0, xmmword [rbp + 0x2d0]
movdqu xmmword [rcx], xmm0
lea rcx, [rbp + 0x648]
call fcn.140095f30
xor eax, eax
cmp qword [rbp + 0x6a0], 0
setne al
mov eax, dword [rbp + rax*8 + 0x7cc]
mov dword [rbp + 0x7c8], eax
mov r14d, dword [rbp + 0x670]
mov r15d, dword [rbp + 0x674]
mov r12, qword [rbp + 0x678]
mov rbx, qword [rbp + 0x680]
lea rdx, [rbp + 0x688]
lea rcx, [rbp - 0x50]
mov r8d, 0x158
call sub.VCRUNTIME140.dll_memcpy
movzx edi, byte [rbp + 0x7e0]
mov eax, dword [rbp + 0x7e1]
mov dword [rbp + 0xa08], eax
mov eax, dword [rbp + 0x7e4]
mov dword [rbp + 0xa0b], eax
mov rcx, rsi
call fcn.140071cf0
cmp dil, 3
je 0x14006a9c7
lea rcx, [rbp + 0x170]
lea rdx, [rbp - 0x50]
mov r8d, 0x158
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [rbp + 0xa08]
mov ecx, dword [rbp + 0xa0b]
mov dword [rbp + 0x2c9], eax
mov dword [rbp + 0x2cc], ecx
mov dword [rbp + 0x158], r14d
mov dword [rbp + 0x15c], r15d
mov qword [rbp + 0x160], r12
mov qword [rbp + 0x168], rbx
mov byte [rbp + 0x2c8], dil
mov r14, qword [rbp + 0x9e0]
movzx eax, byte [r14 + 0x10]
cmp rax, 3
jne 0x14006b129
lea rsi, [rbp + 0x648]
lea rdx, [rbp + 0x158]
mov r8d, 0x178
mov rcx, rsi
call sub.VCRUNTIME140.dll_memcpy
mov byte [rbp + 0xa2f], 0
lea rcx, [rbp + 0x9c0]
mov rdx, r14
mov r8, rsi
call fcn.140080e40
mov rdi, qword [rbp + 0xa00]
movdqa xmm0, xmmword [rbp + 0x9c0]
movzx eax, byte [rbp + 0x9d0]
jmp 0x14006b2b6
mov eax, dword [rbp + 0x2d4]
mov dword [rbp + 0xa28], eax
mov r12, qword [rbp + 0x2d8]
mov rbx, qword [rbp + 0x2e0]
lea rcx, [rbp + 0x7e8]
call fcn.140071cf0
lea rcx, [rbp + 0x670]
call fcn.140071c20
mov rdi, qword [rbp + 0xa00]
mov dword [rdi + 8], r14d
mov eax, dword [rbp + 0xa28]
mov dword [rdi + 0xc], eax
mov qword [rdi + 0x10], r12
mov qword [rdi + 0x18], rbx
mov qword [rdi], 1
mov rax, rdi
add rsp, 0xab8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov r12, qword [rbp + 0x2d8]
mov rbx, qword [rbp + 0x2e0]
mov dword [rbp + 0xa28], esi
jmp 0x14006b0c1
test rax, rax
mov rdi, qword [rbp + 0xa00]
je 0x14006b239
cmp eax, 1
jne 0x14006b2d2
mov byte [rbp + 0xa2f], 1
lea rcx, [rbp + 0x2d0]
lea r8, [rbp + 0x158]
mov rdx, r14
call fcn.140092d00
movzx ebx, byte [rbp + 0x448]
cmp bl, 3
je 0x14006b2fc
lea rsi, [rbp - 0x50]
lea rdx, [rbp + 0x2d0]
mov r8d, 0x178
mov rcx, rsi
call sub.VCRUNTIME140.dll_memcpy
lea rcx, [rbp + 0x658]
mov eax, dword [rbp + 0x449]
mov edx, dword [rbp + 0x44c]
mov dword [rbp + 0x7d4], edx
mov dword [rbp + 0x7d1], eax
mov r8d, 0x178
mov rdx, rsi
call sub.VCRUNTIME140.dll_memcpy
mov byte [rbp + 0x7d0], bl
mov qword [rbp + 0x648], 1
mov qword [rbp + 0x650], 1
movzx eax, byte [0x1401c6201]
mov ecx, 0x190
mov edx, 8
call fcn.140003a20
test rax, rax
je 0x14006b4c3
mov rsi, rax
lea rdx, [rbp + 0x648]
mov r8d, 0x190
mov rcx, rax
call sub.VCRUNTIME140.dll_memcpy
lea rax, fcn.140071bb0
mov cl, 1
jmp 0x14006b3cb
mov dword [rbp + 0xa28], r14d
mov r14d, 1
mov r12d, 0x7ffffffe
jmp 0x14006b0c1
mov r14d, 2
jmp 0x14006b0c1
lea rcx, [rbp + 0x658]
lea rdx, [rbp + 0x158]
mov r8d, 0x178
call sub.VCRUNTIME140.dll_memcpy
mov qword [rbp + 0x648], 1
mov qword [rbp + 0x650], 1
movzx eax, byte [0x1401c6201]
mov ecx, 0x188
mov edx, 8
call fcn.140003a20
test rax, rax
je 0x14006b4b2
mov rsi, rax
lea rdx, [rbp + 0x648]
mov r8d, 0x188
mov rcx, rax
call sub.VCRUNTIME140.dll_memcpy
lea rax, fcn.140071c20
movq xmm1, rax
movq xmm0, rsi
punpcklqdq xmm0, xmm1
xor eax, eax
movzx ecx, byte [r14 + 0x11]
movdqu xmmword [rdi + 8], xmm0
mov byte [rdi + 0x18], al
mov byte [rdi + 0x19], cl
mov qword [rdi], 0
jmp 0x14006b0fc
lea rdx, [r14 + 0x12]
mov byte [rbp + 0xa2f], 1
lea rcx, [rbp + 0x2d0]
lea r8, [rbp + 0x158]
call fcn.140084830
movzx ebx, byte [rbp + 0x470]
cmp bl, 3
jne 0x14006b329
mov rax, qword [rbp + 0x2e0]
mov qword [rbp - 0x40], rax
movdqu xmm0, xmmword [rbp + 0x2d0]
movdqa xmmword [rbp - 0x50], xmm0
mov qword [rdi + 0x18], rax
movdqu xmmword [rdi + 8], xmm0
mov qword [rdi], 1
jmp 0x14006b3e5
lea rsi, [rbp - 0x50]
lea rdx, [rbp + 0x2d0]
mov r8d, 0x1a0
mov rcx, rsi
call sub.VCRUNTIME140.dll_memcpy
lea rcx, [rbp + 0x658]
mov eax, dword [rbp + 0x471]
mov edx, dword [rbp + 0x474]
mov dword [rbp + 0x7fc], edx
mov dword [rbp + 0x7f9], eax
mov r8d, 0x1a0
mov rdx, rsi
call sub.VCRUNTIME140.dll_memcpy
mov byte [rbp + 0x7f8], bl
mov qword [rbp + 0x648], 1
mov qword [rbp + 0x650], 1
movzx eax, byte [0x1401c6201]
mov ecx, 0x1b8
mov edx, 8
call fcn.140003a20
test rax, rax
je 0x14006b4d4
mov rsi, rax
lea rdx, [rbp + 0x648]
mov r8d, 0x1b8
mov rcx, rax
call sub.VCRUNTIME140.dll_memcpy
lea rax, fcn.14002b580
mov cl, 2
movzx edx, byte [r14 + 0x11]
mov qword [rdi + 8], rsi
mov qword [rdi + 0x10], rax
mov byte [rdi + 0x18], cl
mov byte [rdi + 0x19], dl
mov qword [rdi], 0
lea rcx, [rbp + 0x158]
call fcn.140071c20
jmp 0x14006b0fc
lea r8, str.C:Users_runneradmin.cargo_registry_srcindex.crates.io_6f17d22bba15001f_aho_corasick_1.0.1_src_nfa_noncontiguous.rsexpected_number_of_patterns_to_match_pattern_ID
mov rcx, rdi
call fcn.14011b770
jmp 0x14006b4e3
lea r8, str.C:Users_runneradmin.cargo_registry_srcindex.crates.io_6f17d22bba15001f_aho_corasick_1.0.1_src_nfa_noncontiguous.rsexpected_number_of_patterns_to_match_pattern_ID
mov rcx, rdi
call fcn.14011b770
jmp 0x14006b4e3
lea r8, str.C:Users_runneradmin.cargo_registry_srcindex.crates.io_6f17d22bba15001f_aho_corasick_1.0.1_src_nfa_noncontiguous.rsexpected_number_of_patterns_to_match_pattern_ID
mov rcx, rdi
call fcn.14011b770
jmp 0x14006b4e3
lea r8, str.C:Users_runneradmin.cargo_registry_srcindex.crates.io_6f17d22bba15001f_aho_corasick_1.0.1_src_nfa_noncontiguous.rsexpected_number_of_patterns_to_match_pattern_ID
mov rcx, rdi
call fcn.14011b770
jmp 0x14006b4e3
lea r8, str.C:Users_runneradmin.cargo_registry_srcindex.crates.io_6f17d22bba15001f_aho_corasick_1.0.1_src_nfa_noncontiguous.rsexpected_number_of_patterns_to_match_pattern_ID
call fcn.14011b770
jmp 0x14006b4e3
lea rax, [0x140128550]
mov qword [rbp + 0x2d0], rax
mov qword [rbp + 0x2d8], 1
lea rax, str.C:Users_runneradmin.cargo_registry_srcindex.crates.io_6f17d22bba15001f_aho_corasick_1.0.1_src_nfa_noncontiguous.rsexpected_number_of_patterns_to_match_pattern_ID
mov qword [rbp + 0x2e0], rax
xorps xmm0, xmm0
movups xmmword [rbp + 0x2e8], xmm0
lea rax, str.C:Users_runneradmin.cargo_registry_srcindex.crates.io_6f17d22bba15001f_aho_corasick_1.0.1_src_nfa_noncontiguous.rsexpected_number_of_patterns_to_match_pattern_ID
mov qword [rsp + 0x20], rax
lea rdx, [rbp + 0x9d8]
lea r8, [rbp + 0x9c0]
lea r9, [rbp + 0x2d0]
xor ecx, ecx
call fcn.140119b70
jmp 0x14006b4e3
mov ecx, 8
mov edx, 0x188
call fcn.14011b3d0
jmp 0x14006b4e3
mov ecx, 8
mov edx, 0x190
call fcn.14011b3d0
jmp 0x14006b4e3
mov ecx, 8
mov edx, 0x1b8
call fcn.14011b3d0
ud2