Function at 0x1400c4900
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 [0x14025e040]
xor rax, rsp
mov qword [rsp + 0xe8], rax
movabs rax, 0xaaaaaaaaaaaaaaaa
lea rdi, [rsp + 0xd0]
mov qword [rdi + 0x10], rax
movaps xmm6, xmmword [0x14022f060]
movaps xmmword [rdi], xmm6
mov rcx, rdx
mov rdx, rdi
call fcn.1400e53a0
xorps xmm0, xmm0
movaps xmmword [rsp + 0xb0], xmm0
mov qword [rsp + 0xc0], 0
mov rbx, qword [rdi + 8]
cmp rbx, qword [rdi]
je 0x1400c4f86
xor eax, eax
lea rdi, str.Program_Files__x86_
jmp 0x1400c4cd9
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 0x1400c51c4
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 0x1400c51e4
cmp r13, rdx
ja 0x1400c51bf
lea rax, [r13*8]
lea rcx, [rax + rax*2]
call fcn.140155818
lea r14, [r12 + r12*2]
shl r14, 3
add r14, rax
je 0x1400c5199
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.14018f480
mov rcx, qword [rsp + 0xb0]
mov qword [rsp + 0xb0], r14
mov qword [rsp + 0xb8], r12
mov qword [rsp + 0xc0], rsi
test rcx, rcx
je 0x1400c4cb9
call fcn.140155854
jmp 0x1400c4cb9
mov ecx, 0x20
call fcn.140155818
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 0x1400c51d1
movups xmm0, xmmword [0x1402324f8]
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 0x1400c498f
test r12, r12
je 0x1400c5199
mov qword [r12], rbp
mov qword [r12 + 8], 0xd
movabs rax, 0x8000000000000010
mov qword [r12 + 0x10], rax
jmp 0x1400c4cb5
mov rcx, qword [rbx - 0x18]
mov rax, qword [rbx - 0x10]
mov qword [rsp + 0x90], rcx
mov qword [rsp + 0x98], rax
test rax, rax
jns 0x1400c4b82
jmp 0x1400c5045
lea rax, str..exe
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0xa8], 4
movsx rax, byte [rbx - 1]
test rax, rax
js 0x1400c4b27
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 0x1400c513b
lea rcx, [rsp + 0x90]
lea rdx, [rsp + 0xa0]
mov r8d, 1
call fcn.1401b77f0
mov r9d, 1
test al, al
jne 0x1400c4cc4
lea rdx, [rbx - 0x18]
movsx rax, byte [rbx - 1]
mov r8, rdx
mov rcx, rax
test rax, rax
jns 0x1400c4be4
mov rcx, qword [rbx - 0x10]
test rcx, rcx
js 0x1400c5045
mov r8, qword [rbx - 0x18]
test rcx, rcx
sete r9b
test r8, r8
setne r10b
or r10b, r9b
je 0x1400c513b
cmp rcx, 0x13
jne 0x1400c4c61
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 0x1400c4c61
lea r11, [r10 + 2]
cmp r9, r10
je 0x1400c4c4e
cmp r10, 0x24
mov r10, r11
jne 0x1400c4c0c
add rcx, rcx
xor rcx, r11
xor r11, 0x26
or r11, rcx
je 0x1400c4a92
mov r12, qword [rsp + 0xb8]
cmp r12, qword [rsp + 0xc0]
jb 0x1400c4c98
lea rcx, [rsp + 0xb0]
call fcn.1400c5200
mov r12, rax
jmp 0x1400c4cb9
mov rax, qword [rdx + 0x10]
mov qword [r12 + 0x10], rax
movups xmm0, xmmword [rdx]
movups xmmword [r12], xmm0
jmp 0x1400c4cb5
test r12, r12
je 0x1400c5199
test al, al
jns 0x1400c4c85
mov rdx, qword [rbx - 0x18]
mov r8, qword [rbx - 0x10]
mov rcx, r12
call fcn.140120ec0
add r12, 0x18
mov qword [rsp + 0xb8], r12
mov r9, r15
add rbx, 0xffffffffffffffe8
mov rax, r9
cmp rbx, qword [rsp + 0xd0]
je 0x1400c4f86
lea r15, [rax + 1]
test rax, rax
je 0x1400c4b49
cmp r15, 2
jne 0x1400c4bbf
lea rcx, [rbx - 0x18]
movsx rdx, byte [rbx - 1]
mov r9, rcx
mov r8, rdx
test rdx, rdx
jns 0x1400c4d15
mov r8, qword [rbx - 0x10]
test r8, r8
js 0x1400c5045
mov r9, qword [rbx - 0x18]
test r8, r8
sete r10b
test r9, r9
setne r11b
or r11b, r10b
je 0x1400c513b
cmp r8, 4
jne 0x1400c4dac
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 0x1400c4dac
lea r12, [r14 + 2]
cmp r10, r14
je 0x1400c4d93
inc r11
cmp r14, 6
mov r14, r12
jne 0x1400c4d44
add r8, r8
xor r8, r12
xor r12, 8
mov r9d, 2
or r12, r8
je 0x1400c4cc4
mov r9, rcx
mov r8, rdx
test dl, dl
jns 0x1400c4dc7
mov r8, qword [rbx - 0x10]
test r8, r8
js 0x1400c5045
mov r9, qword [rbx - 0x18]
test r8, r8
sete r10b
test r9, r9
setne r11b
or r11b, r10b
je 0x1400c513b
cmp r8, 0xb
jne 0x1400c4e5f
lea r10, [r8*2 - 2]
lea r11, [0x1402324b9]
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 0x1400c4e5f
lea r12, [r14 + 2]
cmp r10, r14
je 0x1400c4e46
inc r11
cmp r14, 0x14
mov r14, r12
jne 0x1400c4df6
add r8, r8
xor r8, r12
xor r12, 0x16
mov r9d, 2
or r12, r8
je 0x1400c4cc4
mov r8, rcx
mov r9, rdx
test dl, dl
jns 0x1400c4e7a
mov r9, qword [rbx - 0x10]
test r9, r9
js 0x1400c5045
mov r8, qword [rbx - 0x18]
test r9, r9
sete r10b
test r8, r8
setne r11b
or r11b, r10b
je 0x1400c513b
cmp r9, 0xa
jb 0x1400c4ed3
test r8, r8
je 0x1400c513b
cmp word [r8], 0x73
jne 0x1400c4ed3
cmp word [r8 + 2], 0x63
jne 0x1400c4ed3
cmp word [r8 + 4], 0x6f
jne 0x1400c4ed3
cmp word [r8 + 6], 0x70
jne 0x1400c4ed3
cmp word [r8 + 8], 0x65
jne 0x1400c4ed3
cmp word [r8 + 0xa], 0x64
je 0x1400c514e
test dl, dl
jns 0x1400c4eda
mov rcx, qword [rcx]
mov qword [rsp + 0x40], rcx
test rcx, rcx
je 0x1400c5186
call fcn.140175a44
mov qword [rsp + 0x48], rax
lea rsi, [rsp + 0x50]
mov rcx, rsi
lea rdx, [rsp + 0x40]
call fcn.1401266f0
movsx rcx, byte [rsp + 0x67]
test rcx, rcx
jns 0x1400c4f19
mov rcx, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x50]
mov qword [rsp + 0x68], rsi
mov qword [rsp + 0x70], rcx
test rcx, rcx
js 0x1400c5045
sete cl
test rsi, rsi
setne al
or al, cl
je 0x1400c513b
lea rsi, [rsp + 0x78]
mov rcx, rsi
lea rdx, [rsp + 0x68]
call fcn.1400df9c0
mov rcx, rsi
call fcn.1400dfdd0
mov ebp, eax
mov rcx, rsi
call fcn.1400df970
cmp byte [rsp + 0x67], 0
jns 0x1400c4f72
mov rcx, qword [rsp + 0x50]
call fcn.140155854
mov r9d, 1
test bpl, bpl
je 0x1400c4bbf
jmp 0x1400c4cc4
mov rcx, qword [rsp + 0x28]
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rcx + 0x10], rax
movups xmmword [rcx], xmm6
call fcn.14012d3c0
mov r15, qword [rsp + 0xb0]
mov r14, qword [rsp + 0xb8]
cmp r14, r15
je 0x1400c5058
add r14, 0xffffffffffffffe8
lea rdi, [rsp + 0x78]
lea rbx, [rsp + 0x30]
mov rsi, qword [rsp + 0x28]
jmp 0x1400c5025
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 0x1400c513b
mov rcx, rsi
mov rdx, rdi
mov r8, rbx
call fcn.14012e480
mov rcx, rsi
mov rdx, rdi
call fcn.1400e4fa0
mov rcx, rdi
call fcn.14012d570
mov r15, qword [rsp + 0xb0]
lea rax, [r14 - 0x18]
cmp r14, r15
mov r14, rax
je 0x1400c5058
movsx rax, byte [r14 + 0x17]
test rax, rax
jns 0x1400c4fcf
mov rcx, qword [r14]
mov rax, qword [r14 + 8]
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x38], rax
test rax, rax
jns 0x1400c4fdc
lea rcx, [0x140231db2]
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.140194150
test r15, r15
je 0x1400c50ad
mov rdi, qword [rsp + 0xb8]
mov rcx, r15
cmp rdi, r15
je 0x1400c50a0
add rdi, 0xffffffffffffffe8
jmp 0x1400c5087
mov rcx, qword [rdi]
call fcn.140155854
lea rax, [rdi - 0x18]
cmp rdi, r15
mov rdi, rax
je 0x1400c5098
test rdi, rdi
je 0x1400c51ac
cmp byte [rdi + 0x17], 0
js 0x1400c5073
jmp 0x1400c507b
mov rcx, qword [rsp + 0xb0]
mov qword [rsp + 0xb8], r15
call fcn.140155854
mov rdi, qword [rsp + 0xd0]
test rdi, rdi
je 0x1400c510a
mov rbx, qword [rsp + 0xd8]
mov rcx, rdi
cmp rbx, rdi
je 0x1400c50fd
add rbx, 0xffffffffffffffe8
jmp 0x1400c50e4
mov rcx, qword [rbx]
call fcn.140155854
lea rax, [rbx - 0x18]
cmp rbx, rdi
mov rbx, rax
je 0x1400c50f5
test rbx, rbx
je 0x1400c51ac
cmp byte [rbx + 0x17], 0
js 0x1400c50d0
jmp 0x1400c50d8
mov rcx, qword [rsp + 0xd0]
mov qword [rsp + 0xd8], rdi
call fcn.140155854
mov rcx, qword [rsp + 0xe8]
xor rcx, rsp
call fcn.140156d40
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, [0x140231db2]
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.140194150
cmp word [r8 + 0xc], 0x5f
jne 0x1400c4ed3
cmp word [r8 + 0xe], 0x64
jne 0x1400c4ed3
cmp word [r8 + 0x10], 0x69
jne 0x1400c4ed3
cmp word [r8 + 0x12], 0x72
mov r9, rax
je 0x1400c4cc4
jmp 0x1400c4ed3
lea rcx, [0x140231db2]
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.140194150
lea rcx, [0x140231db2]
lea rdx, str....._third_partylibc_srcinclude__memoryconstruct_at.h:40:_assertion___location___nullptr_failed:_null_pointer_given_to_construct_at_n
call fcn.140194150
lea rcx, [0x140231db2]
lea rdx, str....._third_partylibc_srcinclude__memoryconstruct_at.h:66:_assertion___loc___nullptr_failed:_null_pointer_given_to_destroy_at_n
call fcn.140194150
call fcn.140190760
lea rcx, [rsp + 0xb0]
call fcn.140190970
lea rcx, [0x140231db2]
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.140194150
xor eax, eax
jmp 0x1400c4a04