Function at 0x140026d50
Capabilities:
Encrypt data using speck

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x108
movaps xmmword [rsp + 0xf0], xmm6
mov qword [rsp + 0x28], rcx
mov rax, qword [0x140192040]
xor rax, rsp
mov qword [rsp + 0xe8], rax
movabs rax, 0xaaaaaaaaaaaaaaaa
lea rdi, [rsp + 0xd0]
mov qword [rdi + 0x10], rax
movaps xmm6, xmmword [0x1401667f0]
movaps xmmword [rdi], xmm6
mov rcx, rdx
mov rdx, rdi
call fcn.14003e010
xorps xmm0, xmm0
movaps xmmword [rsp + 0xb0], xmm0
mov qword [rsp + 0xc0], 0
mov rbx, qword [rdi + 8]
cmp rbx, qword [rdi]
je 0x1400273d6
xor eax, eax
lea rdi, str.Program_Files__x86_
jmp 0x140027129
mov rcx, qword [rsp + 0xb0]
sub r12, rcx
sar r12, 3
imul r12, r8
lea r13, [r12 + 1]
movabs rdx, 0xaaaaaaaaaaaaaaa
cmp r13, rdx
ja 0x140027614
sub rax, rcx
sar rax, 3
imul rax, r8
lea rcx, [rax + rax]
cmp rcx, r13
cmova r13, rcx
movabs rcx, 0x555555555555555
cmp rax, rcx
cmovae r13, rdx
test r13, r13
je 0x140027634
cmp r13, rdx
ja 0x14002760f
lea rax, [r13*8]
lea rcx, [rax + rax*2]
call fcn.1400b2e18
lea r14, [r12 + r12*2]
shl r14, 3
add r14, rax
je 0x1400275e9
lea rcx, [r13*2]
add rcx, r13
lea rsi, [rax + rcx*8]
mov qword [r14], rbp
mov qword [r14 + 8], 0xd
movabs rax, 0x8000000000000010
mov qword [r14 + 0x10], rax
lea r12, [r14 + 0x18]
mov rdx, qword [rsp + 0xb0]
mov r8, qword [rsp + 0xb8]
sub r8, rdx
sub r14, r8
mov rcx, r14
call fcn.1400e61a0
mov rcx, qword [rsp + 0xb0]
mov qword [rsp + 0xb0], r14
mov qword [rsp + 0xb8], r12
mov qword [rsp + 0xc0], rsi
test rcx, rcx
je 0x140027109
call fcn.1400b2e54
jmp 0x140027109
mov ecx, 0x20
call fcn.1400b2e18
mov rbp, rax
add rax, 0x1a
lea rdx, str.Program_Files
cmp rbp, rdx
seta cl
cmp rax, rdx
setbe al
or al, cl
je 0x140027621
movups xmm0, xmmword [0x140167020]
movups xmmword [rbp + 0xa], xmm0
movups xmm0, xmmword [str.Program_Files]
movups xmmword [rbp], xmm0
mov word [rbp + 0x1a], 0
mov r12, qword [rsp + 0xb8]
mov rax, qword [rsp + 0xc0]
cmp r12, rax
movabs r8, 0xaaaaaaaaaaaaaaab
jae 0x140026ddf
test r12, r12
je 0x1400275e9
mov qword [r12], rbp
mov qword [r12 + 8], 0xd
movabs rax, 0x8000000000000010
mov qword [r12 + 0x10], rax
jmp 0x140027105
mov rcx, qword [rbx - 0x18]
mov rax, qword [rbx - 0x10]
mov qword [rsp + 0x90], rcx
mov qword [rsp + 0x98], rax
test rax, rax
jns 0x140026fd2
jmp 0x140027495
lea rax, str..exe
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0xa8], 4
movsx rax, byte [rbx - 1]
test rax, rax
js 0x140026f77
lea rcx, [rbx - 0x18]
mov qword [rsp + 0x90], rcx
mov qword [rsp + 0x98], rax
test rax, rax
sete al
test rcx, rcx
setne cl
or cl, al
je 0x14002758b
lea rcx, [rsp + 0x90]
lea rdx, [rsp + 0xa0]
mov r8d, 1
call fcn.140102f40
mov r9d, 1
test al, al
jne 0x140027114
lea rdx, [rbx - 0x18]
movsx rax, byte [rbx - 1]
mov r8, rdx
mov rcx, rax
test rax, rax
jns 0x140027034
mov rcx, qword [rbx - 0x10]
test rcx, rcx
js 0x140027495
mov r8, qword [rbx - 0x18]
test rcx, rcx
sete r9b
test r8, r8
setne r10b
or r10b, r9b
je 0x14002758b
cmp rcx, 0x13
jne 0x1400270b1
lea r9, [rcx*2 - 2]
xor r10d, r10d
movzx r11d, word [r8 + r10]
lea esi, [r11 - 0x41]
lea ebp, [r11 + 0x20]
cmp si, 0x1a
cmovae ebp, r11d
movzx r11d, word [r10 + rdi]
lea esi, [r11 - 0x41]
lea r14d, [r11 + 0x20]
cmp si, 0x1a
cmovae r14d, r11d
cmp bp, r14w
jne 0x1400270b1
lea r11, [r10 + 2]
cmp r9, r10
je 0x14002709e
cmp r10, 0x24
mov r10, r11
jne 0x14002705c
add rcx, rcx
xor rcx, r11
xor r11, 0x26
or r11, rcx
je 0x140026ee2
mov r12, qword [rsp + 0xb8]
cmp r12, qword [rsp + 0xc0]
jb 0x1400270e8
lea rcx, [rsp + 0xb0]
call fcn.140027650
mov r12, rax
jmp 0x140027109
mov rax, qword [rdx + 0x10]
mov qword [r12 + 0x10], rax
movups xmm0, xmmword [rdx]
movups xmmword [r12], xmm0
jmp 0x140027105
test r12, r12
je 0x1400275e9
test al, al
jns 0x1400270d5
mov rdx, qword [rbx - 0x18]
mov r8, qword [rbx - 0x10]
mov rcx, r12
call fcn.14007be60
add r12, 0x18
mov qword [rsp + 0xb8], r12
mov r9, r15
add rbx, 0xffffffffffffffe8
mov rax, r9
cmp rbx, qword [rsp + 0xd0]
je 0x1400273d6
lea r15, [rax + 1]
test rax, rax
je 0x140026f99
cmp r15, 2
jne 0x14002700f
lea rcx, [rbx - 0x18]
movsx rdx, byte [rbx - 1]
mov r9, rcx
mov r8, rdx
test rdx, rdx
jns 0x140027165
mov r8, qword [rbx - 0x10]
test r8, r8
js 0x140027495
mov r9, qword [rbx - 0x18]
test r8, r8
sete r10b
test r9, r9
setne r11b
or r11b, r10b
je 0x14002758b
cmp r8, 4
jne 0x1400271fc
lea r10, [r8*2 - 2]
lea r11, str.Temp
xor r14d, r14d
movzx r12d, byte [r11]
movzx r13d, word [r9 + r14]
lea ebp, [r13 - 0x41]
lea esi, [r13 + 0x20]
cmp bp, 0x1a
cmovae esi, r13d
movzx esi, si
lea ebp, [r12 - 0x41]
lea r13d, [r12 + 0x20]
cmp bpl, 0x1a
movzx ebp, r13b
cmovae ebp, r12d
movsx ebp, bpl
cmp esi, ebp
jne 0x1400271fc
lea r12, [r14 + 2]
cmp r10, r14
je 0x1400271e3
inc r11
cmp r14, 6
mov r14, r12
jne 0x140027194
add r8, r8
xor r8, r12
xor r12, 8
mov r9d, 2
or r12, r8
je 0x140027114
mov r9, rcx
mov r8, rdx
test dl, dl
jns 0x140027217
mov r8, qword [rbx - 0x10]
test r8, r8
js 0x140027495
mov r9, qword [rbx - 0x18]
test r8, r8
sete r10b
test r9, r9
setne r11b
or r11b, r10b
je 0x14002758b
cmp r8, 0xb
jne 0x1400272af
lea r10, [r8*2 - 2]
lea r11, [0x140166fe1]
xor r14d, r14d
movzx esi, byte [r11]
movzx r12d, word [r9 + r14]
lea ebp, [r12 - 0x41]
lea r13d, [r12 + 0x20]
cmp bp, 0x1a
cmovae r13d, r12d
movzx ebp, r13w
lea r12d, [rsi - 0x41]
lea r13d, [rsi + 0x20]
cmp r12b, 0x1a
movzx r12d, r13b
cmovae r12d, esi
movsx esi, r12b
cmp ebp, esi
jne 0x1400272af
lea r12, [r14 + 2]
cmp r10, r14
je 0x140027296
inc r11
cmp r14, 0x14
mov r14, r12
jne 0x140027246
add r8, r8
xor r8, r12
xor r12, 0x16
mov r9d, 2
or r12, r8
je 0x140027114
mov r8, rcx
mov r9, rdx
test dl, dl
jns 0x1400272ca
mov r9, qword [rbx - 0x10]
test r9, r9
js 0x140027495
mov r8, qword [rbx - 0x18]
test r9, r9
sete r10b
test r8, r8
setne r11b
or r11b, r10b
je 0x14002758b
cmp r9, 0xa
jb 0x140027323
test r8, r8
je 0x14002758b
cmp word [r8], 0x73
jne 0x140027323
cmp word [r8 + 2], 0x63
jne 0x140027323
cmp word [r8 + 4], 0x6f
jne 0x140027323
cmp word [r8 + 6], 0x70
jne 0x140027323
cmp word [r8 + 8], 0x65
jne 0x140027323
cmp word [r8 + 0xa], 0x64
je 0x14002759e
test dl, dl
jns 0x14002732a
mov rcx, qword [rcx]
mov qword [rsp + 0x40], rcx
test rcx, rcx
je 0x1400275d6
call fcn.1400cfb08
mov qword [rsp + 0x48], rax
lea rsi, [rsp + 0x50]
mov rcx, rsi
lea rdx, [rsp + 0x40]
call fcn.14007fb60
movsx rcx, byte [rsp + 0x67]
test rcx, rcx
jns 0x140027369
mov rcx, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x50]
mov qword [rsp + 0x68], rsi
mov qword [rsp + 0x70], rcx
test rcx, rcx
js 0x140027495
sete cl
test rsi, rsi
setne al
or al, cl
je 0x14002758b
lea rsi, [rsp + 0x78]
mov rcx, rsi
lea rdx, [rsp + 0x68]
call fcn.14003b720
mov rcx, rsi
call fcn.14003bb30
mov ebp, eax
mov rcx, rsi
call fcn.14003b6d0
cmp byte [rsp + 0x67], 0
jns 0x1400273c2
mov rcx, qword [rsp + 0x50]
call fcn.1400b2e54
mov r9d, 1
test bpl, bpl
je 0x14002700f
jmp 0x140027114
mov rcx, qword [rsp + 0x28]
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rcx + 0x10], rax
movups xmmword [rcx], xmm6
call fcn.140081090
mov r15, qword [rsp + 0xb0]
mov r14, qword [rsp + 0xb8]
cmp r14, r15
je 0x1400274a8
add r14, 0xffffffffffffffe8
lea rdi, [rsp + 0x78]
lea rbx, [rsp + 0x30]
mov rsi, qword [rsp + 0x28]
jmp 0x140027475
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x38], rax
mov rcx, r14
test rax, rax
sete al
test rcx, rcx
setne cl
or cl, al
je 0x14002758b
mov rcx, rsi
mov rdx, rdi
mov r8, rbx
call fcn.140082150
mov rcx, rsi
mov rdx, rdi
call fcn.14003dce0
mov rcx, rdi
call fcn.140081240
mov r15, qword [rsp + 0xb0]
lea rax, [r14 - 0x18]
cmp r14, r15
mov r14, rax
je 0x1400274a8
movsx rax, byte [r14 + 0x17]
test rax, rax
jns 0x14002741f
mov rcx, qword [r14]
mov rax, qword [r14 + 8]
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x38], rax
test rax, rax
jns 0x14002742c
lea rcx, [0x1401668da]
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.1400e9b50
test r15, r15
je 0x1400274fd
mov rdi, qword [rsp + 0xb8]
mov rcx, r15
cmp rdi, r15
je 0x1400274f0
add rdi, 0xffffffffffffffe8
jmp 0x1400274d7
mov rcx, qword [rdi]
call fcn.1400b2e54
lea rax, [rdi - 0x18]
cmp rdi, r15
mov rdi, rax
je 0x1400274e8
test rdi, rdi
je 0x1400275fc
cmp byte [rdi + 0x17], 0
js 0x1400274c3
jmp 0x1400274cb
mov rcx, qword [rsp + 0xb0]
mov qword [rsp + 0xb8], r15
call fcn.1400b2e54
mov rdi, qword [rsp + 0xd0]
test rdi, rdi
je 0x14002755a
mov rbx, qword [rsp + 0xd8]
mov rcx, rdi
cmp rbx, rdi
je 0x14002754d
add rbx, 0xffffffffffffffe8
jmp 0x140027534
mov rcx, qword [rbx]
call fcn.1400b2e54
lea rax, [rbx - 0x18]
cmp rbx, rdi
mov rbx, rax
je 0x140027545
test rbx, rbx
je 0x1400275fc
cmp byte [rbx + 0x17], 0
js 0x140027520
jmp 0x140027528
mov rcx, qword [rsp + 0xd0]
mov qword [rsp + 0xd8], rdi
call fcn.1400b2e54
mov rcx, qword [rsp + 0xe8]
xor rcx, rsp
call fcn.1400b4140
mov rax, qword [rsp + 0x28]
movaps xmm6, xmmword [rsp + 0xf0]
add rsp, 0x108
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rcx, [0x1401668da]
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.1400e9b50
cmp word [r8 + 0xc], 0x5f
jne 0x140027323
cmp word [r8 + 0xe], 0x64
jne 0x140027323
cmp word [r8 + 0x10], 0x69
jne 0x140027323
cmp word [r8 + 0x12], 0x72
mov r9, rax
je 0x140027114
jmp 0x140027323
lea rcx, [0x1401668da]
lea rdx, str....._third_partylibc_srcinclude_string_view:268:_assertion___s___nullptr_failed:_null_pointer_passed_to_non_null_argument_of_char_traits_..._::length_n
call fcn.1400e9b50
lea rcx, [0x1401668da]
lea rdx, str....._third_partylibc_srcinclude__memoryconstruct_at.h:40:_assertion___location___nullptr_failed:_null_pointer_given_to_construct_at_n
call fcn.1400e9b50
lea rcx, [0x1401668da]
lea rdx, str....._third_partylibc_srcinclude__memoryconstruct_at.h:66:_assertion___loc___nullptr_failed:_null_pointer_given_to_destroy_at_n
call fcn.1400e9b50
call fcn.1400e7380
lea rcx, [rsp + 0xb0]
call fcn.1400e7590
lea rcx, [0x1401668da]
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.1400e9b50
xor eax, eax
jmp 0x140026e54