Function at 0x140026710
Capabilities:
Encrypt data using speck

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x118
movaps xmmword [rsp + 0x100], xmm7
movaps xmmword [rsp + 0xf0], xmm6
mov qword [rsp + 0x20], rcx
mov rax, qword [0x140175040]
xor rax, rsp
mov qword [rsp + 0xe8], rax
movabs rax, 0xaaaaaaaaaaaaaaaa
lea rdi, [rsp + 0xd0]
mov qword [rdi + 0x10], rax
movaps xmm6, xmmword [0x14014c6c0]
movaps xmmword [rdi], xmm6
mov rcx, rdx
mov rdx, rdi
call fcn.1400d9fc0
xorps xmm7, xmm7
movaps xmmword [rsp + 0xb0], xmm7
mov qword [rsp + 0xc0], 0
mov rbx, qword [rdi + 8]
cmp rbx, qword [rdi]
je 0x1400267a3
xor eax, eax
lea r12, str.Program_Files__x86_
jmp 0x140026d81
mov r15, qword [rsp + 0x20]
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [r15 + 0x10], rax
movups xmmword [r15], xmm6
mov rcx, r15
call fcn.140039e00
mov r14, qword [rsp + 0xb0]
mov rsi, qword [rsp + 0xb8]
cmp rsi, r14
je 0x14002685f
add rsi, 0xffffffffffffffe8
lea rdi, [rsp + 0x70]
lea rbx, [rsp + 0x28]
jmp 0x14002683d
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x30], rax
mov rcx, rsi
test rax, rax
sete al
test rcx, rcx
setne cl
or cl, al
je 0x14002685d
mov rcx, r15
mov rdx, rdi
mov r8, rbx
call fcn.14003a280
mov rcx, r15
mov rdx, rdi
call fcn.140039ed0
mov rcx, rdi
call fcn.140039e60
mov r14, qword [rsp + 0xb0]
lea rax, [rsi - 0x18]
cmp rsi, r14
mov rsi, rax
je 0x14002685f
movsx rax, byte [rsi + 0x17]
test rax, rax
jns 0x1400267eb
mov rcx, qword [rsi]
mov rax, qword [rsi + 8]
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x30], rax
test rax, rax
jns 0x1400267f8
ud2
test r14, r14
je 0x1400268ac
mov rsi, qword [rsp + 0xb8]
mov rcx, r14
cmp rsi, r14
je 0x14002689f
add rsi, 0xffffffffffffffe8
test rsi, rsi
je 0x14002685d
cmp byte [rsi + 0x17], 0
jns 0x14002688b
mov rcx, qword [rsi]
call fcn.1400837d0
lea rax, [rsi - 0x18]
cmp rsi, r14
mov rsi, rax
jne 0x140026878
mov rcx, qword [rsp + 0xb0]
mov qword [rsp + 0xb8], r14
call fcn.1400837d0
mov rsi, qword [rsp + 0xd0]
test rsi, rsi
je 0x140026901
mov rdi, qword [rsp + 0xd8]
mov rcx, rsi
cmp rdi, rsi
je 0x1400268f4
add rdi, 0xffffffffffffffe8
test rdi, rdi
je 0x14002685d
cmp byte [rdi + 0x17], 0
jns 0x1400268e0
mov rcx, qword [rdi]
call fcn.1400837d0
lea rax, [rdi - 0x18]
cmp rdi, rsi
mov rdi, rax
jne 0x1400268cd
mov rcx, qword [rsp + 0xd0]
mov qword [rsp + 0xd8], rsi
call fcn.1400837d0
mov rcx, qword [rsp + 0xe8]
xor rcx, rsp
call fcn.140084ac0
mov rax, r15
movaps xmm6, xmmword [rsp + 0xf0]
movaps xmm7, xmmword [rsp + 0x100]
add rsp, 0x118
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rcx, [rsp + 0x70]
lea rdx, str.Program_Files
call fcn.140027230
mov rdi, qword [rsp + 0xb8]
mov rax, qword [rsp + 0xc0]
cmp rdi, rax
jb 0x140026a6d
mov rcx, qword [rsp + 0xb0]
sub rdi, rcx
sar rdi, 3
movabs r8, 0xaaaaaaaaaaaaaaab
imul rdi, r8
lea rsi, [rdi + 1]
movabs rdx, 0xaaaaaaaaaaaaaaa
cmp rsi, rdx
ja 0x140027066
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 0x14002708f
cmp rsi, rdx
ja 0x140027061
lea rax, [rsi*8]
lea rcx, [rax + rax*2]
call fcn.140083794
lea r14, [rdi + rdi*2]
shl r14, 3
add r14, rax
je 0x14002685d
lea rcx, [rsi + rsi*2]
lea rsi, [rax + rcx*8]
mov rax, qword [rsp + 0x80]
mov qword [r14 + 0x10], rax
movaps xmm0, xmmword [rsp + 0x70]
movups xmmword [r14], xmm0
movaps xmmword [rsp + 0x70], xmm7
mov qword [rsp + 0x80], 0
lea rdi, [r14 + 0x18]
mov rdx, qword [rsp + 0xb0]
mov r8, qword [rsp + 0xb8]
sub r8, rdx
sub r14, r8
mov rcx, r14
call fcn.1400b6b20
mov rcx, qword [rsp + 0xb0]
mov qword [rsp + 0xb0], r14
mov qword [rsp + 0xb8], rdi
mov qword [rsp + 0xc0], rsi
test rcx, rcx
je 0x140026a9f
call fcn.1400837d0
jmp 0x140026a9f
test rdi, rdi
je 0x14002685d
mov rax, qword [rsp + 0x80]
mov qword [rdi + 0x10], rax
movaps xmm0, xmmword [rsp + 0x70]
movups xmmword [rdi], xmm0
movaps xmmword [rsp + 0x70], xmm7
mov qword [rsp + 0x80], 0
add rdi, 0x18
mov qword [rsp + 0xb8], rdi
cmp byte [rsp + 0x87], 0
jns 0x140026d69
mov rcx, qword [rsp + 0x70]
call fcn.1400837d0
jmp 0x140026d69
mov rax, qword [rsp + 0xb0]
sub r14, rax
sar r14, 3
movabs r8, 0xaaaaaaaaaaaaaaab
imul r14, r8
lea rsi, [r14 + 1]
movabs rdx, 0xaaaaaaaaaaaaaaa
cmp rsi, rdx
ja 0x140027066
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 0x140027073
cmp rsi, rdx
ja 0x140027061
lea rax, [rsi*8]
lea rcx, [rax + rax*2]
call fcn.140083794
mov rbp, rax
lea r13, [r14 + r14*2]
shl r13, 3
add r13, rbp
je 0x14002685d
cmp byte [rbx - 1], 0
jns 0x14002707a
mov rdx, qword [rbx - 0x18]
mov r8, qword [rbx - 0x10]
mov rcx, r13
call fcn.140035920
lea rax, [rsi + rsi*2]
lea rsi, [rax*8]
add rsi, rbp
lea r14, [r13 + 0x18]
mov rdx, qword [rsp + 0xb0]
mov r8, qword [rsp + 0xb8]
sub r8, rdx
sub r13, r8
mov rcx, r13
call fcn.1400b6b20
mov rcx, qword [rsp + 0xb0]
mov qword [rsp + 0xb0], r13
mov qword [rsp + 0xb8], r14
mov qword [rsp + 0xc0], rsi
test rcx, rcx
je 0x140026d61
call fcn.1400837d0
jmp 0x140026d61
mov rcx, qword [rbx - 0x18]
mov rax, qword [rbx - 0x10]
mov qword [rsp + 0x90], rcx
mov qword [rsp + 0x98], rax
test rax, rax
jns 0x140026c44
jmp 0x14002685d
mov rdx, qword [rbx - 0x18]
mov r8, qword [rbx - 0x10]
mov rcx, r14
call fcn.140035920
jmp 0x140026d5d
lea rax, str..exe
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0xa8], 4
movsx rax, byte [rbx - 1]
test rax, rax
js 0x140026bd4
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 0x14002685d
lea rcx, [rsp + 0x90]
lea rdx, [rsp + 0xa0]
mov r8d, 1
call fcn.1400d3f70
mov r9d, 1
test al, al
jne 0x140026d6c
lea rdi, [rbx - 0x18]
movsx rax, byte [rbx - 1]
mov rdx, rdi
mov rcx, rax
test rax, rax
jns 0x140026ca6
mov rcx, qword [rbx - 0x10]
test rcx, rcx
js 0x14002685d
mov rdx, qword [rbx - 0x18]
test rcx, rcx
sete r8b
test rdx, rdx
setne r9b
or r9b, r8b
je 0x14002685d
cmp rcx, 0x13
jne 0x140026d24
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 + r12]
lea r11d, [r10 - 0x41]
lea ebp, [r10 + 0x20]
cmp r11w, 0x1a
cmovae ebp, r10d
cmp si, bp
jne 0x140026d24
lea r10, [r9 + 2]
cmp r8, r9
je 0x140026d11
cmp r9, 0x24
mov r9, r10
jne 0x140026cce
add rcx, rcx
xor rcx, r10
xor r10, 0x26
or r10, rcx
je 0x140026938
mov r14, qword [rsp + 0xb8]
mov rcx, qword [rsp + 0xc0]
cmp r14, rcx
jae 0x140026ac4
test r14, r14
je 0x14002685d
test al, al
js 0x140026bf6
mov rax, qword [rdi + 0x10]
mov qword [r14 + 0x10], rax
movups xmm0, xmmword [rdi]
movups xmmword [r14], xmm0
add r14, 0x18
mov qword [rsp + 0xb8], r14
mov r9, r15
add rbx, 0xffffffffffffffe8
mov rax, r9
cmp rbx, qword [rsp + 0xd0]
je 0x1400267a3
lea r15, [rax + 1]
test rax, rax
je 0x140026c0b
cmp r15, 2
jne 0x140026c81
lea rcx, [rbx - 0x18]
movsx rdx, byte [rbx - 1]
mov r9, rcx
mov r8, rdx
test rdx, rdx
jns 0x140026dbd
mov r8, qword [rbx - 0x10]
test r8, r8
js 0x14002685d
mov r9, qword [rbx - 0x18]
test r8, r8
sete r10b
test r9, r9
setne r11b
or r11b, r10b
je 0x14002685d
cmp r8, 4
jne 0x140026e52
lea r10, [r8*2 - 2]
lea r11, str.Temp
xor esi, esi
movzx edi, byte [r11]
movzx r14d, word [r9 + rsi]
lea ebp, [r14 - 0x41]
lea r13d, [r14 + 0x20]
cmp bp, 0x1a
cmovae r13d, r14d
movzx ebp, r13w
lea r14d, [rdi - 0x41]
lea r13d, [rdi + 0x20]
cmp r14b, 0x1a
movzx r14d, r13b
cmovae r14d, edi
movsx edi, r14b
cmp ebp, edi
jne 0x140026e52
lea rdi, [rsi + 2]
cmp r10, rsi
je 0x140026e39
inc r11
cmp rsi, 6
mov rsi, rdi
jne 0x140026deb
add r8, r8
xor r8, rdi
xor rdi, 8
mov r9d, 2
or rdi, r8
je 0x140026d6c
mov r9, rcx
mov r8, rdx
test dl, dl
jns 0x140026e6d
mov r8, qword [rbx - 0x10]
test r8, r8
js 0x14002685d
mov r9, qword [rbx - 0x18]
test r8, r8
sete r10b
test r9, r9
setne r11b
or r11b, r10b
je 0x14002685d
cmp r8, 0xb
jne 0x140026f02
lea r10, [r8*2 - 2]
lea r11, [0x14014c891]
xor esi, esi
movzx edi, byte [r11]
movzx r14d, word [r9 + rsi]
lea ebp, [r14 - 0x41]
lea r13d, [r14 + 0x20]
cmp bp, 0x1a
cmovae r13d, r14d
movzx ebp, r13w
lea r14d, [rdi - 0x41]
lea r13d, [rdi + 0x20]
cmp r14b, 0x1a
movzx r14d, r13b
cmovae r14d, edi
movsx edi, r14b
cmp ebp, edi
jne 0x140026f02
lea rdi, [rsi + 2]
cmp r10, rsi
je 0x140026ee9
inc r11
cmp rsi, 0x14
mov rsi, rdi
jne 0x140026e9b
add r8, r8
xor r8, rdi
xor rdi, 0x16
mov r9d, 2
or rdi, r8
je 0x140026d6c
mov r8, rcx
mov r9, rdx
test dl, dl
jns 0x140026f1d
mov r9, qword [rbx - 0x10]
test r9, r9
js 0x14002685d
mov r8, qword [rbx - 0x18]
test r9, r9
sete r10b
test r8, r8
setne r11b
or r11b, r10b
je 0x14002685d
cmp r9, 0xa
jb 0x140026f76
test r8, r8
je 0x14002685d
cmp word [r8], 0x73
jne 0x140026f76
cmp word [r8 + 2], 0x63
jne 0x140026f76
cmp word [r8 + 4], 0x6f
jne 0x140026f76
cmp word [r8 + 6], 0x70
jne 0x140026f76
cmp word [r8 + 8], 0x65
jne 0x140026f76
cmp word [r8 + 0xa], 0x64
je 0x140027029
test dl, dl
jns 0x140026f7d
mov rcx, qword [rcx]
mov qword [rsp + 0x38], rcx
test rcx, rcx
je 0x14002685d
call fcn.1400a0488
mov qword [rsp + 0x40], rax
lea rsi, [rsp + 0x48]
mov rcx, rsi
lea rdx, [rsp + 0x38]
call fcn.14006d9f0
movsx rcx, byte [rsp + 0x5f]
test rcx, rcx
jns 0x140026fbc
mov rcx, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x48]
mov qword [rsp + 0x60], rsi
mov qword [rsp + 0x68], rcx
test rcx, rcx
js 0x14002685d
sete cl
test rsi, rsi
setne al
or al, cl
je 0x14002685d
lea rsi, [rsp + 0x70]
mov rcx, rsi
lea rdx, [rsp + 0x60]
call fcn.1400388f0
mov rcx, rsi
call fcn.140038cc0
mov ebp, eax
mov rcx, rsi
call fcn.1400388c0
cmp byte [rsp + 0x5f], 0
jns 0x140027015
mov rcx, qword [rsp + 0x48]
call fcn.1400837d0
mov r9d, 1
test bpl, bpl
je 0x140026c81
jmp 0x140026d6c
cmp word [r8 + 0xc], 0x5f
jne 0x140026f76
cmp word [r8 + 0xe], 0x64
jne 0x140026f76
cmp word [r8 + 0x10], 0x69
jne 0x140026f76
cmp word [r8 + 0x12], 0x72
mov r9, rax
je 0x140026d6c
jmp 0x140026f76
call fcn.1400b81d0
lea rcx, [rsp + 0xb0]
call fcn.1400b83c0
xor ebp, ebp
jmp 0x140026b45
mov rax, qword [rdi + 0x10]
mov qword [r13 + 0x10], rax
movups xmm0, xmmword [rdi]
movups xmmword [r13], xmm0
jmp 0x140026b70
xor eax, eax
jmp 0x1400269e0