Function at 0x140027e80
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 [0x14019d040]
xor rax, rsp
mov qword [rsp + 0xe8], rax
movabs rax, 0xaaaaaaaaaaaaaaaa
lea rdi, [rsp + 0xd0]
mov qword [rdi + 0x10], rax
movaps xmm6, xmmword [0x140171db0]
movaps xmmword [rdi], xmm6
mov rcx, rdx
mov rdx, rdi
call fcn.14003ef40
xorps xmm0, xmm0
movaps xmmword [rsp + 0xb0], xmm0
mov qword [rsp + 0xc0], 0
mov rbx, qword [rdi + 8]
cmp rbx, qword [rdi]
je 0x14002854f
xor eax, eax
lea r14, str.Program_Files__x86_
jmp 0x140028308
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 0x1400286d6
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 0x1400286f6
cmp rsi, rdx
ja 0x1400286d1
lea rax, [rsi*8]
lea rcx, [rax + rax*2]
call fcn.1400c5ab8
lea r13, [rbp*2]
add r13, rbp
shl r13, 3
add r13, rax
je 0x1400286cf
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.1400f5780
mov rcx, qword [rsp + 0xb0]
mov qword [rsp + 0xb0], r13
jmp 0x140028289
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 0x140028180
lea r10, [r9 + 2]
cmp r8, r9
je 0x140028046
cmp r9, 0x24
mov r9, r10
jne 0x140027fff
add rcx, rcx
xor rcx, r10
xor r10, 0x26
or r10, rcx
jne 0x140028180
mov ecx, 0x20
call fcn.1400c5ab8
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 0x1400286cf
movups xmm0, xmmword [0x140174a78]
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 0x140027f0f
test rbp, rbp
je 0x1400286cf
mov qword [rbp], r15
mov qword [rbp + 8], 0xd
movabs rax, 0x8000000000000010
mov qword [rbp + 0x10], rax
jmp 0x1400282e4
mov rcx, qword [rbx - 0x18]
mov rax, qword [rbx - 0x10]
jmp 0x140028121
lea rax, str..exe
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0xa8], 4
movsx rax, byte [rbx - 1]
test rax, rax
js 0x1400280ee
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.140114210
mov r9d, 1
test al, al
jne 0x1400282f3
lea rdi, [rbx - 0x18]
movsx rax, byte [rbx - 1]
mov rcx, rax
mov rdx, rdi
test rax, rax
jns 0x140028176
mov rdx, qword [rbx - 0x18]
mov rcx, qword [rbx - 0x10]
cmp rcx, 0x13
je 0x140027ff4
mov rbp, qword [rsp + 0xb8]
mov rcx, qword [rsp + 0xc0]
cmp rbp, rcx
jb 0x1400282c8
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 0x1400286d6
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 0x1400286e3
cmp rsi, rdx
ja 0x1400286d1
lea rax, [rsi*8]
lea rcx, [rax + rax*2]
call fcn.1400c5ab8
mov r13, rax
lea r15, [rbp*2]
add r15, rbp
shl r15, 3
add r15, r13
je 0x1400286cf
cmp byte [rbx - 1], 0
jns 0x1400282a5
mov rdx, qword [rbx - 0x18]
mov r8, qword [rbx - 0x10]
mov rcx, r15
call fcn.14008eed0
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.1400f5780
mov rcx, qword [rsp + 0xb0]
mov qword [rsp + 0xb0], r15
mov qword [rsp + 0xb8], rbp
mov qword [rsp + 0xc0], rsi
test rcx, rcx
je 0x1400282e8
call fcn.1400c5af4
jmp 0x1400282e8
mov rax, qword [rdi + 0x10]
mov qword [r15 + 0x10], rax
movups xmm0, xmmword [rdi]
movups xmmword [r15], xmm0
jmp 0x140028248
mov rdx, qword [rbx - 0x18]
mov r8, qword [rbx - 0x10]
mov rcx, rbp
call fcn.14008eed0
jmp 0x1400282e4
test rbp, rbp
je 0x1400286cf
test al, al
js 0x1400282b6
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 0x14002854f
lea r12, [rax + 1]
test rax, rax
je 0x1400280f8
cmp r12, 2
jne 0x14002815a
lea rdx, [rbx - 0x18]
movsx rcx, byte [rbx - 1]
mov r8, rcx
mov r9, rdx
test rcx, rcx
jns 0x14002833b
mov r9, qword [rbx - 0x18]
mov r8, qword [rbx - 0x10]
cmp r8, 4
jne 0x1400283b9
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 0x1400283b9
lea rdi, [rsi + 2]
cmp r10, rsi
je 0x1400283a0
inc r11
cmp rsi, 6
mov rsi, rdi
jne 0x140028352
add r8, r8
xor r8, rdi
xor rdi, 8
mov r9d, 2
or rdi, r8
je 0x1400282f3
test cl, cl
jns 0x1400283c5
mov rdx, qword [rbx - 0x18]
mov rcx, qword [rbx - 0x10]
cmp rcx, 0xb
jne 0x140028441
lea r8, [rcx*2 - 2]
lea r9, [0x140174a39]
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 0x140028441
lea r11, [r10 + 2]
cmp r8, r10
je 0x140028428
inc r9
cmp r10, 0x14
mov r10, r11
jne 0x1400283dd
add rcx, rcx
xor rcx, r11
xor r11, 0x16
mov r9d, 2
or r11, rcx
je 0x1400282f3
lea rcx, [rbx - 0x18]
movsx rdx, byte [rbx - 1]
test rdx, rdx
jns 0x1400286eb
mov r8, qword [rcx]
mov r9, qword [rcx + 8]
cmp r9, 0xa
jb 0x1400284b6
cmp word [r8], 0x73
jne 0x1400284b6
cmp word [r8 + 2], 0x63
jne 0x1400284b6
cmp word [r8 + 4], 0x6f
jne 0x1400284b6
cmp word [r8 + 6], 0x70
jne 0x1400284b6
cmp word [r8 + 8], 0x65
jne 0x1400284b6
cmp word [r8 + 0xa], 0x64
jne 0x1400284b6
cmp word [r8 + 0xc], 0x5f
jne 0x1400284b6
cmp word [r8 + 0xe], 0x64
jne 0x1400284b6
cmp word [r8 + 0x10], 0x69
jne 0x1400284b6
cmp word [r8 + 0x12], 0x72
mov r9, rax
je 0x1400282f3
test dl, dl
jns 0x1400284bd
mov rcx, qword [rcx]
mov qword [rsp + 0x40], rcx
test rcx, rcx
je 0x1400286cf
call fcn.1400e09e8
mov qword [rsp + 0x48], rax
lea rsi, [rsp + 0x50]
mov rcx, rsi
lea rdx, [rsp + 0x40]
call fcn.1400933f0
movsx rax, byte [rsp + 0x67]
test rax, rax
jns 0x1400284fc
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.14003ce60
mov rcx, rsi
call fcn.14003d240
mov ebp, eax
mov rcx, rsi
call fcn.14003ce30
cmp byte [rsp + 0x67], 0
jns 0x14002853b
mov rcx, qword [rsp + 0x50]
call fcn.1400c5af4
mov r9d, 1
test bpl, bpl
je 0x14002815a
jmp 0x1400282f3
mov r15, qword [rsp + 0x28]
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [r15 + 0x10], rax
movups xmmword [r15], xmm6
mov rcx, r15
call fcn.140094950
mov rsi, qword [rsp + 0xb0]
mov r14, qword [rsp + 0xb8]
cmp r14, rsi
je 0x1400285e8
add r14, 0xffffffffffffffe8
lea rdi, [rsp + 0x78]
lea rbx, [rsp + 0x30]
jmp 0x1400285d9
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.140095660
mov rcx, r15
mov rdx, rdi
call fcn.14003ef00
mov rcx, rdi
call fcn.140094af0
mov rsi, qword [rsp + 0xb0]
lea rax, [r14 - 0x18]
cmp r14, rsi
mov r14, rax
je 0x1400285e8
movsx rax, byte [r14 + 0x17]
mov rcx, r14
test rax, rax
jns 0x14002859a
jmp 0x140028593
test rsi, rsi
je 0x14002863d
mov rdi, qword [rsp + 0xb8]
mov rcx, rsi
cmp rsi, rdi
je 0x140028630
add rdi, 0xffffffffffffffe8
jmp 0x140028617
mov rcx, qword [rdi]
call fcn.1400c5af4
lea rax, [rdi - 0x18]
cmp rdi, rsi
mov rdi, rax
je 0x140028628
test rdi, rdi
je 0x1400286cf
cmp byte [rdi + 0x17], 0
js 0x140028603
jmp 0x14002860b
mov rcx, qword [rsp + 0xb0]
mov qword [rsp + 0xb8], rsi
call fcn.1400c5af4
mov rsi, qword [rsp + 0xd0]
test rsi, rsi
je 0x140028696
mov rdi, qword [rsp + 0xd8]
mov rcx, rsi
cmp rsi, rdi
je case.0x1400274bc.36
add rdi, 0xffffffffffffffe8
jmp 0x140028674
mov rcx, qword [rdi]
call fcn.1400c5af4
lea rax, [rdi - 0x18]
cmp rdi, rsi
mov rdi, rax
je 0x140028681
test rdi, rdi
je 0x1400286cf
cmp byte [rdi + 0x17], 0
js 0x140028660
jmp 0x140028668
mov rcx, qword [rsp + 0xd0]
mov qword [rsp + 0xd8], rsi
call fcn.1400c5af4
mov rcx, qword [rsp + 0xe8]
xor rcx, rsp
cmp rcx, qword [0x14019d040]
je 0x1400286b0
call fcn.1400c6de0
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
ud2
call fcn.1400f6890
lea rcx, [rsp + 0xb0]
call fcn.1400f6a90
xor r13d, r13d
jmp 0x14002821a
mov r9, rdx
mov r8, rcx
jmp 0x14002845a
xor eax, eax
jmp 0x140027f83