Function at 0x140026d40
Capabilities:
Encrypt data using speck

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xc8
movaps xmmword [rsp + 0xb0], xmm6
mov rsi, rcx
mov rax, qword [0x14018f028]
xor rax, rsp
mov qword [rsp + 0xa8], rax
movabs rax, 0xaaaaaaaaaaaaaaaa
lea rdi, [rsp + 0x90]
mov qword [rdi + 0x10], rax
movaps xmm6, xmmword [0x140164170]
movaps xmmword [rdi], xmm6
mov rcx, rdx
mov rdx, rdi
call fcn.140040d60
xorps xmm0, xmm0
movaps xmmword [rsp + 0x70], xmm0
mov qword [rsp + 0x80], 0
mov rbp, qword [rdi + 8]
cmp rbp, qword [rdi]
je 0x14002724d
xor r14d, r14d
lea rdi, str.Program_Files__x86_
jmp 0x1400270cc
mov rcx, qword [rsp + 0x70]
sub r15, rcx
sar r15, 3
imul r15, r8
lea rbx, [r15 + 1]
movabs rdx, 0xaaaaaaaaaaaaaaa
cmp rbx, rdx
ja 0x14002742b
sub rax, rcx
sar rax, 3
imul rax, r8
lea rcx, [rax + rax]
cmp rcx, rbx
cmova rbx, rcx
movabs rcx, 0x555555555555555
cmp rax, rcx
cmovae rbx, rdx
test rbx, rbx
je 0x140027435
cmp rbx, rdx
ja 0x140027426
lea rax, [rbx*8]
lea rcx, [rax + rax*2]
call fcn.1400b2768
lea r13, [r15 + r15*2]
shl r13, 3
add r13, rax
je 0x140027400
lea rcx, [rbx + rbx*2]
lea rbx, [rax + rcx*8]
mov qword [r13], r12
mov qword [r13 + 8], 0xd
movabs rax, 0x8000000000000010
mov qword [r13 + 0x10], rax
lea r15, [r13 + 0x18]
mov rdx, qword [rsp + 0x70]
mov r8, qword [rsp + 0x78]
sub r8, rdx
sub r13, r8
mov rcx, r13
call fcn.1400b56c0
mov rcx, qword [rsp + 0x70]
mov qword [rsp + 0x70], r13
mov qword [rsp + 0x78], r15
mov qword [rsp + 0x80], rbx
test rcx, rcx
je 0x1400270b5
call fcn.1400b27a4
jmp 0x1400270b5
mov ecx, 0x20
call fcn.1400b2768
mov r12, rax
add rax, 0x1a
lea rdx, str.Program_Files
cmp r12, rdx
seta cl
cmp rax, rdx
setbe al
or al, cl
je 0x14002743c
movups xmm0, xmmword [0x1401649a0]
movups xmmword [r12 + 0xa], xmm0
movups xmm0, xmmword [str.Program_Files]
movups xmmword [r12], xmm0
mov word [r12 + 0x1a], 0
mov r15, qword [rsp + 0x78]
mov rax, qword [rsp + 0x80]
cmp r15, rax
movabs r8, 0xaaaaaaaaaaaaaaab
jae 0x140026dcb
test r15, r15
je 0x140027400
mov qword [r15], r12
mov qword [r15 + 8], 0xd
movabs rax, 0x8000000000000010
mov qword [r15 + 0x10], rax
jmp 0x1400270b1
mov rcx, qword [rbp - 0x18]
mov rax, qword [rbp - 0x10]
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x58], rax
test rax, rax
jns 0x140026f92
jmp 0x1400273da
lea rax, str..exe
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], 4
movsx rax, byte [rbp - 1]
test rax, rax
js 0x140026f49
lea rcx, [rbp - 0x18]
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x58], rax
test rax, rax
sete al
test rcx, rcx
setne cl
or cl, al
je 0x1400273ed
lea rcx, [rsp + 0x50]
lea rdx, [rsp + 0x60]
mov r8d, 1
call fcn.140104280
test al, al
jne 0x1400270ba
lea rdx, [rbp - 0x18]
movsx rax, byte [rbp - 1]
mov r8, rdx
mov rcx, rax
test rax, rax
jns 0x140026fe8
mov rcx, qword [rbp - 0x10]
test rcx, rcx
js 0x1400273da
mov r8, qword [rbp - 0x18]
test rcx, rcx
sete r9b
test r8, r8
setne r10b
or r10b, r9b
je 0x1400273ed
cmp rcx, 0x13
jne 0x140027065
lea r9, [rcx*2 - 2]
xor r10d, r10d
movzx r11d, word [r8 + r10]
lea ebx, [r11 - 0x41]
lea r15d, [r11 + 0x20]
cmp bx, 0x1a
cmovae r15d, r11d
movzx r11d, word [r10 + rdi]
lea ebx, [r11 - 0x41]
lea r12d, [r11 + 0x20]
cmp bx, 0x1a
cmovae r12d, r11d
cmp r15w, r12w
jne 0x140027065
lea r11, [r10 + 2]
cmp r9, r10
je 0x140027052
cmp r10, 0x24
mov r10, r11
jne 0x140027010
add rcx, rcx
xor rcx, r11
xor r11, 0x26
or r11, rcx
je 0x140026eb5
mov r15, qword [rsp + 0x78]
cmp r15, qword [rsp + 0x80]
jb 0x140027094
lea rcx, [rsp + 0x70]
call fcn.140027460
mov r15, rax
jmp 0x1400270b5
mov rax, qword [rdx + 0x10]
mov qword [r15 + 0x10], rax
movups xmm0, xmmword [rdx]
movups xmmword [r15], xmm0
jmp 0x1400270b1
test r15, r15
je 0x140027400
test al, al
jns 0x140027083
mov rdx, qword [rbp - 0x18]
mov r8, qword [rbp - 0x10]
mov rcx, r15
call fcn.14007d5b0
add r15, 0x18
mov qword [rsp + 0x78], r15
add rbp, 0xffffffffffffffe8
cmp rbp, qword [rsp + 0x90]
je 0x14002724d
mov rax, r14
inc r14
test rax, rax
je 0x140026f65
cmp r14, 2
jne 0x140026fc3
lea rcx, [rbp - 0x18]
movsx rax, byte [rbp - 1]
mov r8, rcx
mov rdx, rax
test rax, rax
jns 0x14002710a
mov rdx, qword [rbp - 0x10]
test rdx, rdx
js 0x1400273da
mov r8, qword [rbp - 0x18]
test rdx, rdx
sete r9b
test r8, r8
setne r10b
or r10b, r9b
je 0x1400273ed
cmp rdx, 4
jne 0x14002719c
lea r9, [rdx*2 - 2]
lea r10, str.Temp
xor r11d, r11d
movzx ebx, byte [r10]
movzx r15d, word [r8 + r11]
lea r12d, [r15 - 0x41]
lea r13d, [r15 + 0x20]
cmp r12w, 0x1a
cmovae r13d, r15d
movzx r15d, r13w
lea r12d, [rbx - 0x41]
lea r13d, [rbx + 0x20]
cmp r12b, 0x1a
movzx r12d, r13b
cmovae r12d, ebx
movsx ebx, r12b
cmp r15d, ebx
jne 0x14002719c
lea rbx, [r11 + 2]
cmp r9, r11
je 0x140027189
inc r10
cmp r11, 6
mov r11, rbx
jne 0x140027139
add rdx, rdx
xor rdx, rbx
xor rbx, 8
or rbx, rdx
je 0x1400270ba
test al, al
jns 0x1400271b1
mov rax, qword [rbp - 0x10]
test rax, rax
js 0x1400273da
mov rcx, qword [rbp - 0x18]
test rax, rax
sete dl
test rcx, rcx
setne r8b
or r8b, dl
je 0x1400273ed
cmp rax, 0xb
jne 0x140026fc3
lea rdx, [rax*2 - 2]
lea r8, [0x140164961]
xor r9d, r9d
movzx r10d, byte [r8]
movzx r11d, word [rcx + r9]
lea ebx, [r11 - 0x41]
lea r15d, [r11 + 0x20]
cmp bx, 0x1a
cmovae r15d, r11d
movzx r11d, r15w
lea ebx, [r10 - 0x41]
lea r15d, [r10 + 0x20]
cmp bl, 0x1a
movzx ebx, r15b
cmovae ebx, r10d
movsx r10d, bl
cmp r11d, r10d
jne 0x140026fc3
lea r10, [r9 + 2]
cmp rdx, r9
je 0x140027235
inc r8
cmp r9, 0x14
mov r9, r10
jne 0x1400271e3
add rax, rax
xor rax, r10
xor r10, 0x16
or r10, rax
jne 0x140026fc3
jmp 0x1400270ba
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsi + 0x10], rax
movups xmmword [rsi], xmm6
mov rcx, rsi
call fcn.140089e80
mov r14, qword [rsp + 0x78]
cmp r14, qword [rsp + 0x70]
je 0x140027302
add r14, 0xffffffffffffffe8
lea rdi, [rsp + 0x38]
lea rbx, [rsp + 0x28]
jmp 0x1400272d6
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x30], rax
mov rcx, r14
test rax, rax
sete al
test rcx, rcx
setne cl
or cl, al
je 0x1400273ed
mov rcx, rsi
mov rdx, rdi
mov r8, rbx
call fcn.14008af30
mov rcx, rsi
mov rdx, rdi
call fcn.140040a30
mov rcx, rdi
call fcn.14008a030
lea rax, [r14 - 0x18]
cmp r14, qword [rsp + 0x70]
mov r14, rax
je 0x1400272fb
movsx rax, byte [r14 + 0x17]
test rax, rax
jns 0x140027286
mov rcx, qword [r14]
mov rax, qword [r14 + 8]
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x30], rax
test rax, rax
jns 0x140027293
jmp 0x1400273da
add rax, 0x18
mov r14, rax
test r14, r14
je 0x14002734e
mov rdi, qword [rsp + 0x78]
mov rcx, r14
cmp rdi, r14
je 0x140027344
add rdi, 0xffffffffffffffe8
jmp 0x14002732e
mov rcx, qword [rdi]
call fcn.1400b27a4
lea rax, [rdi - 0x18]
cmp rdi, r14
mov rdi, rax
je 0x14002733f
test rdi, rdi
je 0x140027413
cmp byte [rdi + 0x17], 0
js 0x14002731a
jmp 0x140027322
mov rcx, qword [rsp + 0x70]
mov qword [rsp + 0x78], r14
call fcn.1400b27a4
mov rdi, qword [rsp + 0x90]
test rdi, rdi
je 0x1400273ab
mov rbx, qword [rsp + 0x98]
mov rcx, rdi
cmp rbx, rdi
je 0x14002739e
add rbx, 0xffffffffffffffe8
jmp 0x140027385
mov rcx, qword [rbx]
call fcn.1400b27a4
lea rax, [rbx - 0x18]
cmp rbx, rdi
mov rbx, rax
je 0x140027396
test rbx, rbx
je 0x140027413
cmp byte [rbx + 0x17], 0
js 0x140027371
jmp 0x140027379
mov rcx, qword [rsp + 0x90]
mov qword [rsp + 0x98], rdi
call fcn.1400b27a4
mov rcx, qword [rsp + 0xa8]
xor rcx, rsp
call fcn.1400b3c20
mov rax, rsi
movaps xmm6, xmmword [rsp + 0xb0]
add rsp, 0xc8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rcx, [0x14016425a]
lea rdx, str....._third_partylibc_srcinclude_string_view:318:_assertion___len___static_cast_size_type__numeric_limits_difference_type_::max____failed:_string_view::string_view__CharT___size_t_:_length_does_not_fit_in_difference_type_n
call fcn.1400eae10
lea rcx, [0x14016425a]
lea rdx, str....._third_partylibc_srcinclude_string_view:320:_assertion___len__0____s___nullptr_failed:_string_view::string_view__CharT___size_t_:_received_nullptr_n
call fcn.1400eae10
lea rcx, [0x14016425a]
lea rdx, str....._third_partylibc_srcinclude__memoryconstruct_at.h:40:_assertion___location___nullptr_failed:_null_pointer_given_to_construct_at_n
call fcn.1400eae10
lea rcx, [0x14016425a]
lea rdx, str....._third_partylibc_srcinclude__memoryconstruct_at.h:66:_assertion___loc___nullptr_failed:_null_pointer_given_to_destroy_at_n
call fcn.1400eae10
call fcn.1400e8640
lea rcx, [rsp + 0x70]
call fcn.1400e8850
xor eax, eax
jmp 0x140026e3c
lea rcx, [0x14016425a]
lea rdx, str....._third_partylibc_srcinclude__stringchar_traits.h:222:_assertion__std::__is_pointer_in_range___s1____s1____n____s2__failed:_char_traits::copy:_source_and_destination_ranges_overlap_n
call fcn.1400eae10
int3