Function at 0x1400c5af0
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 [0x14026c040]
xor rax, rsp
mov qword [rsp + 0xe8], rax
movabs rax, 0xaaaaaaaaaaaaaaaa
lea rdi, [rsp + 0xd0]
mov qword [rdi + 0x10], rax
movaps xmm6, xmmword [0x14023d9f0]
movaps xmmword [rdi], xmm6
mov rcx, rdx
mov rdx, rdi
call fcn.1400e4610
xorps xmm0, xmm0
movaps xmmword [rsp + 0xb0], xmm0
mov qword [rsp + 0xc0], 0
mov rbx, qword [rdi + 8]
cmp rbx, qword [rdi]
je 0x1400c619f
xor eax, eax
lea r14, str.Program_Files__x86_
jmp 0x1400c5f78
mov rcx, qword [rsp + 0xb0]
sub rbp, rcx
sar rbp, 3
imul rbp, r8
lea rsi, [rbp + 1]
movabs rdx, 0xaaaaaaaaaaaaaaa
cmp rsi, rdx
ja 0x1400c636e
sub rax, rcx
sar rax, 3
imul rax, r8
lea rcx, [rax + rax]
cmp rcx, rsi
cmova rsi, rcx
movabs rcx, 0x555555555555555
cmp rax, rcx
cmovae rsi, rdx
test rsi, rsi
je 0x1400c6383
cmp rsi, rdx
ja 0x1400c6369
lea rax, [rsi*8]
lea rcx, [rax + rax*2]
call fcn.140167c6c
lea r13, [rbp*2]
add r13, rbp
shl r13, 3
add r13, rax
je 0x1400c6367
lea rcx, [rsi + rsi*2]
lea rsi, [rax + rcx*8]
mov qword [r13], r15
mov qword [r13 + 8], 0xd
movabs rax, 0x8000000000000010
mov qword [r13 + 0x10], rax
lea rbp, [r13 + 0x18]
mov rdx, qword [rsp + 0xb0]
mov r8, qword [rsp + 0xb8]
sub r8, rdx
sub r13, r8
mov rcx, r13
call fcn.1401a2ec0
mov rcx, qword [rsp + 0xb0]
mov qword [rsp + 0xb0], r13
jmp 0x1400c5ef9
lea r8, [rcx*2 - 2]
xor r9d, r9d
movzx r10d, word [rdx + r9]
lea r11d, [r10 - 0x41]
lea esi, [r10 + 0x20]
cmp r11w, 0x1a
cmovae esi, r10d
movzx r10d, word [r9 + r14]
lea r11d, [r10 - 0x41]
lea ebp, [r10 + 0x20]
cmp r11w, 0x1a
cmovae ebp, r10d
cmp si, bp
jne 0x1400c5df0
lea r10, [r9 + 2]
cmp r8, r9
je 0x1400c5cb6
cmp r9, 0x24
mov r9, r10
jne 0x1400c5c6f
add rcx, rcx
xor rcx, r10
xor r10, 0x26
or r10, rcx
jne 0x1400c5df0
mov ecx, 0x20
call fcn.140167c6c
mov r15, rax
add rax, 0x1a
lea rdx, str.Program_Files
cmp r15, rdx
seta cl
cmp rax, rdx
setbe al
or al, cl
je 0x1400c6367
movups xmm0, xmmword [0x140240a60]
movups xmmword [r15 + 0xa], xmm0
movups xmm0, xmmword [str.Program_Files]
movups xmmword [r15], xmm0
mov word [r15 + 0x1a], 0
mov rbp, qword [rsp + 0xb8]
mov rax, qword [rsp + 0xc0]
cmp rbp, rax
movabs r8, 0xaaaaaaaaaaaaaaab
jae 0x1400c5b7f
test rbp, rbp
je 0x1400c6367
mov qword [rbp], r15
mov qword [rbp + 8], 0xd
movabs rax, 0x8000000000000010
mov qword [rbp + 0x10], rax
jmp 0x1400c5f54
mov rcx, qword [rbx - 0x18]
mov rax, qword [rbx - 0x10]
jmp 0x1400c5d91
lea rax, str..exe
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0xa8], 4
movsx rax, byte [rbx - 1]
test rax, rax
js 0x1400c5d5e
lea rcx, [rbx - 0x18]
mov qword [rsp + 0x90], rcx
mov qword [rsp + 0x98], rax
lea rcx, [rsp + 0x90]
lea rdx, [rsp + 0xa0]
mov r8d, 1
call fcn.1401cb520
mov r9d, 1
test al, al
jne 0x1400c5f63
lea rdi, [rbx - 0x18]
movsx rax, byte [rbx - 1]
mov rcx, rax
mov rdx, rdi
test rax, rax
jns 0x1400c5de6
mov rdx, qword [rbx - 0x18]
mov rcx, qword [rbx - 0x10]
cmp rcx, 0x13
je 0x1400c5c64
mov rbp, qword [rsp + 0xb8]
mov rcx, qword [rsp + 0xc0]
cmp rbp, rcx
jb 0x1400c5f38
mov rax, qword [rsp + 0xb0]
sub rbp, rax
sar rbp, 3
movabs r8, 0xaaaaaaaaaaaaaaab
imul rbp, r8
lea rsi, [rbp + 1]
movabs rdx, 0xaaaaaaaaaaaaaaa
cmp rsi, rdx
ja 0x1400c636e
sub rcx, rax
sar rcx, 3
imul rcx, r8
lea rax, [rcx + rcx]
cmp rax, rsi
cmova rsi, rax
movabs rax, 0x555555555555555
cmp rcx, rax
cmovae rsi, rdx
test rsi, rsi
je 0x1400c637b
cmp rsi, rdx
ja 0x1400c6369
lea rax, [rsi*8]
lea rcx, [rax + rax*2]
call fcn.140167c6c
mov r13, rax
lea r15, [rbp*2]
add r15, rbp
shl r15, 3
add r15, r13
je 0x1400c6367
cmp byte [rbx - 1], 0
jns 0x1400c5f15
mov rdx, qword [rbx - 0x18]
mov r8, qword [rbx - 0x10]
mov rcx, r15
call fcn.140131790
lea rax, [rsi + rsi*2]
lea rsi, [rax*8]
add rsi, r13
lea rbp, [r15 + 0x18]
mov rdx, qword [rsp + 0xb0]
mov r8, qword [rsp + 0xb8]
sub r8, rdx
sub r15, r8
mov rcx, r15
call fcn.1401a2ec0
mov rcx, qword [rsp + 0xb0]
mov qword [rsp + 0xb0], r15
mov qword [rsp + 0xb8], rbp
mov qword [rsp + 0xc0], rsi
test rcx, rcx
je 0x1400c5f58
call fcn.140167ca8
jmp 0x1400c5f58
mov rax, qword [rdi + 0x10]
mov qword [r15 + 0x10], rax
movups xmm0, xmmword [rdi]
movups xmmword [r15], xmm0
jmp 0x1400c5eb8
mov rdx, qword [rbx - 0x18]
mov r8, qword [rbx - 0x10]
mov rcx, rbp
call fcn.140131790
jmp 0x1400c5f54
test rbp, rbp
je 0x1400c6367
test al, al
js 0x1400c5f26
mov rax, qword [rdi + 0x10]
mov qword [rbp + 0x10], rax
movups xmm0, xmmword [rdi]
movups xmmword [rbp], xmm0
add rbp, 0x18
mov qword [rsp + 0xb8], rbp
mov r9, r12
add rbx, 0xffffffffffffffe8
mov rax, r9
cmp rbx, qword [rsp + 0xd0]
je 0x1400c619f
lea r12, [rax + 1]
test rax, rax
je 0x1400c5d68
cmp r12, 2
jne 0x1400c5dca
lea rdx, [rbx - 0x18]
movsx rcx, byte [rbx - 1]
mov r8, rcx
mov r9, rdx
test rcx, rcx
jns 0x1400c5fab
mov r9, qword [rbx - 0x18]
mov r8, qword [rbx - 0x10]
cmp r8, 4
jne 0x1400c6029
lea r10, [r8*2 - 2]
lea r11, str.Temp
xor esi, esi
movzx edi, byte [r11]
movzx r15d, word [r9 + rsi]
lea ebp, [r15 - 0x41]
lea r13d, [r15 + 0x20]
cmp bp, 0x1a
cmovae r13d, r15d
movzx ebp, r13w
lea r15d, [rdi - 0x41]
lea r13d, [rdi + 0x20]
cmp r15b, 0x1a
movzx r15d, r13b
cmovae r15d, edi
movsx edi, r15b
cmp ebp, edi
jne 0x1400c6029
lea rdi, [rsi + 2]
cmp r10, rsi
je 0x1400c6010
inc r11
cmp rsi, 6
mov rsi, rdi
jne 0x1400c5fc2
add r8, r8
xor r8, rdi
xor rdi, 8
mov r9d, 2
or rdi, r8
je 0x1400c5f63
test cl, cl
jns 0x1400c6035
mov rdx, qword [rbx - 0x18]
mov rcx, qword [rbx - 0x10]
cmp rcx, 0xb
jne 0x1400c60b1
lea r8, [rcx*2 - 2]
lea r9, [0x140240a21]
xor r10d, r10d
movzx r11d, byte [r9]
movzx esi, word [rdx + r10]
lea edi, [rsi - 0x41]
lea ebp, [rsi + 0x20]
cmp di, 0x1a
cmovae ebp, esi
movzx esi, bp
lea edi, [r11 - 0x41]
lea ebp, [r11 + 0x20]
cmp dil, 0x1a
movzx edi, bpl
cmovae edi, r11d
movsx r11d, dil
cmp esi, r11d
jne 0x1400c60b1
lea r11, [r10 + 2]
cmp r8, r10
je 0x1400c6098
inc r9
cmp r10, 0x14
mov r10, r11
jne 0x1400c604d
add rcx, rcx
xor rcx, r11
xor r11, 0x16
mov r9d, 2
or r11, rcx
je 0x1400c5f63
lea rcx, [rbx - 0x18]
movsx rdx, byte [rbx - 1]
test rdx, rdx
js 0x1400c6193
mov r9, rdx
mov r8, rcx
cmp r9, 0xa
jb 0x1400c60fa
cmp word [r8], 0x73
jne 0x1400c60fa
cmp word [r8 + 2], 0x63
jne 0x1400c60fa
cmp word [r8 + 4], 0x6f
jne 0x1400c60fa
cmp word [r8 + 6], 0x70
jne 0x1400c60fa
cmp word [r8 + 8], 0x65
je 0x1400c6323
test dl, dl
jns 0x1400c6101
mov rcx, qword [rcx]
mov qword [rsp + 0x40], rcx
test rcx, rcx
je 0x1400c6367
call fcn.140187d04
mov qword [rsp + 0x48], rax
lea rsi, [rsp + 0x50]
mov rcx, rsi
lea rdx, [rsp + 0x40]
call fcn.1401370c0
movsx rax, byte [rsp + 0x67]
test rax, rax
jns 0x1400c6140
mov rax, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x50]
mov qword [rsp + 0x68], rsi
mov qword [rsp + 0x70], rax
lea rsi, [rsp + 0x78]
mov rcx, rsi
lea rdx, [rsp + 0x68]
call fcn.1400df200
mov rcx, rsi
call fcn.1400df610
mov ebp, eax
mov rcx, rsi
call fcn.1400df1d0
cmp byte [rsp + 0x67], 0
jns 0x1400c617f
mov rcx, qword [rsp + 0x50]
call fcn.140167ca8
mov r9d, 1
test bpl, bpl
jne 0x1400c5f63
jmp 0x1400c5dca
mov r8, qword [rcx]
mov r9, qword [rcx + 8]
jmp 0x1400c60c9
mov r15, qword [rsp + 0x28]
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [r15 + 0x10], rax
movups xmmword [r15], xmm6
mov rcx, r15
call fcn.14013e220
mov rsi, qword [rsp + 0xb0]
mov r14, qword [rsp + 0xb8]
cmp r14, rsi
je 0x1400c6238
add r14, 0xffffffffffffffe8
lea rdi, [rsp + 0x78]
lea rbx, [rsp + 0x30]
jmp 0x1400c6229
mov rcx, qword [r14]
mov rax, qword [r14 + 8]
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x38], rax
mov rcx, r15
mov rdx, rdi
mov r8, rbx
call fcn.14013ef30
mov rcx, r15
mov rdx, rdi
call fcn.1400e44d0
mov rcx, rdi
call fcn.14013e3c0
mov rsi, qword [rsp + 0xb0]
lea rax, [r14 - 0x18]
cmp r14, rsi
mov r14, rax
je 0x1400c6238
movsx rax, byte [r14 + 0x17]
mov rcx, r14
test rax, rax
jns 0x1400c61ea
jmp 0x1400c61e3
test rsi, rsi
je 0x1400c628d
mov rdi, qword [rsp + 0xb8]
mov rcx, rsi
cmp rsi, rdi
je 0x1400c6280
add rdi, 0xffffffffffffffe8
jmp 0x1400c6267
mov rcx, qword [rdi]
call fcn.140167ca8
lea rax, [rdi - 0x18]
cmp rdi, rsi
mov rdi, rax
je 0x1400c6278
test rdi, rdi
je 0x1400c6367
cmp byte [rdi + 0x17], 0
js 0x1400c6253
jmp 0x1400c625b
mov rcx, qword [rsp + 0xb0]
mov qword [rsp + 0xb8], rsi
call fcn.140167ca8
mov rsi, qword [rsp + 0xd0]
test rsi, rsi
je 0x1400c62ea
mov rdi, qword [rsp + 0xd8]
mov rcx, rsi
cmp rsi, rdi
je 0x1400c62dd
add rdi, 0xffffffffffffffe8
jmp 0x1400c62c4
mov rcx, qword [rdi]
call fcn.140167ca8
lea rax, [rdi - 0x18]
cmp rdi, rsi
mov rdi, rax
je 0x1400c62d5
test rdi, rdi
je 0x1400c6367
cmp byte [rdi + 0x17], 0
js 0x1400c62b0
jmp 0x1400c62b8
mov rcx, qword [rsp + 0xd0]
mov qword [rsp + 0xd8], rsi
call fcn.140167ca8
mov rcx, qword [rsp + 0xe8]
xor rcx, rsp
cmp rcx, qword [0x14026c040]
je 0x1400c6304
call fcn.140169190
int3
mov rax, r15
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
cmp word [r8 + 0xa], 0x64
jne 0x1400c60fa
cmp word [r8 + 0xc], 0x5f
jne 0x1400c60fa
cmp word [r8 + 0xe], 0x64
jne 0x1400c60fa
cmp word [r8 + 0x10], 0x69
jne 0x1400c60fa
cmp word [r8 + 0x12], 0x72
mov r9, rax
je 0x1400c5f63
jmp 0x1400c60fa
ud2
call fcn.1401a40e0
lea rcx, [rsp + 0xb0]
call fcn.1401a42e0
invalid
invalid
xor r13d, r13d
jmp 0x1400c5e8a
xor eax, eax
jmp 0x1400c5bf3