Function at 0x1400665c0
Capabilities:
Encrypt data using openssl rsa
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x128
mov rsi, rcx
cmp byte [rdx + 0x28], 9
jne 0x1400665f9
mov rdi, rdx
lea rcx, [rdx + 0x29]
lea rdx, [0x1400dad51]
mov r8d, 0x27
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
je 0x140066663
mov dword [rsp + 0x20], 0
mov eax, 5
mov dword [rsi + 0xc], 0x48862a09
movabs rcx, 0x101010df786
mov qword [rsi + 0x10], rcx
xorps xmm0, xmm0
movups xmmword [rsi + 0x18], xmm0
mov qword [rsi + 0x27], 0
mov byte [rsi + 0x2f], 0
mov ecx, dword [rsp + 0x20]
mov dword [rsi + 0x30], ecx
mov rcx, qword [rsp + 0x24]
mov qword [rsi + 0x34], rcx
mov ecx, dword [rsp + 0x2c]
mov dword [rsi + 0x3c], ecx
mov dword [rsi + 8], eax
mov qword [rsi], 2
movzx ecx, byte [rdi + 0x68]
mov eax, 2
cmp cl, 0x17
je 0x140066606
mov eax, 4
cmp cl, 4
jne 0x140066606
cmp dword [rdi + 0x60], 0
jne 0x140066606
cmp qword [rdi + 0x58], 0
jne 0x140066606
xor ebx, ebx
cmp byte [rdi + 0x20], 0
jne 0x140066697
mov rbx, qword [rdi]
mov r15, qword [rdi + 8]
je 0x1400666b2
mov dword [rsi + 8], 4
mov qword [rsi + 0x10], 0
mov qword [rsi + 0x18], r15
jmp 0x140066648
cmp r15, 0xfffffff
ja 0x14006675f
mov r14d, r15d
mov qword [rsp + 0xb0], rbx
mov qword [rsp + 0xb8], r15
mov qword [rsp + 0xc0], r14
mov qword [rsp + 0xc8], 0
test r15, r15
je 0x140066777
mov dword [rsp + 0xc8], 1
movzx edx, byte [rbx]
lea rcx, [rsp + 0x20]
call fcn.140046a00
mov eax, dword [rsp + 0x20]
cmp eax, 2
jne 0x140066795
movzx eax, byte [rsp + 0x26]
shl eax, 0x10
movzx r12d, word [rsp + 0x24]
or r12d, eax
cmp r15, 1
jne 0x1400667c2
mov byte [rsp + 0xcc], 1
movabs r15, 0x200000003
mov eax, 1
mov r10d, 1
mov r11d, r10d
and r11d, 0xffffff00
movzx r10d, r10b
jmp 0x140066aea
mov r10, r15
shl r10, 0x20
or r10, 0xc
mov ecx, r15d
xor eax, eax
mov r14, r15
jmp 0x140066b3b
mov byte [rsp + 0xcc], 1
mov r12d, 3
mov r10d, 1
xor r15d, r15d
mov eax, 1
jmp 0x1400667a9
mov r15d, dword [rsp + 0x24]
mov r12d, dword [rsp + 0x28]
mov r10d, dword [rsp + 0x2c]
mov r14, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x38]
mov r9, qword [rsp + 0x40]
mov r8, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x50]
jmp 0x140066b1c
mov dword [rsp + 0xc8], 2
movzx ebp, byte [rbx + 1]
movzx r13d, bpl
test r13b, r13b
js 0x1400668c9
cmp r12b, 9
jne 0x1400668da
mov eax, dword [rsp + 0xc0]
mov r15d, dword [rsp + 0xc8]
xor ecx, ecx
sub eax, r15d
cmovb eax, ecx
xor edx, edx
cmp eax, r13d
setne dl
mov ecx, 0xff
cmovbe ecx, edx
test cl, cl
je 0x140066822
movzx ecx, cl
cmp ecx, 0xff
jne 0x140066a3a
mov eax, r13d
lea rcx, [rsp + 0xb0]
mov qword [rsp + 0xf8], rcx
mov qword [rsp + 0x100], rax
lea rcx, [rsp + 0x20]
lea rdx, [rsp + 0xf8]
call fcn.14005e7a0
mov eax, dword [rsp + 0x20]
cmp eax, 2
jne 0x140066a12
mov rdi, qword [rsp + 0x28]
mov rbx, qword [rsp + 0x30]
lea rcx, [rsp + 0x20]
lea rdx, [rsp + 0xf8]
call fcn.14005e7a0
mov eax, dword [rsp + 0x20]
cmp eax, 2
jne 0x140066a12
mov r14d, dword [rsp + 0x100]
mov r15d, dword [rsp + 0x104]
cmp r14d, r15d
jbe 0x140066aac
xor eax, eax
sub r14d, r15d
cmovb r14d, eax
mov byte [rsp + 0x84], 0x15
mov dword [rsp + 0x88], r15d
mov eax, 1
mov r10, qword [rsp + 0x84]
jmp 0x140066b8b
cmp bpl, 0x80
jne 0x140066929
mov r15d, 5
jmp 0x140066ae2
mov byte [rsp + 0x84], 0x13
mov dword [rsp + 0x80], 0x13131313
mov byte [rsp + 0x87], 0
mov word [rsp + 0x85], 9
mov word [rsp + 0x88], r12w
shr r12d, 0x10
mov byte [rsp + 0x8a], r12b
xor eax, eax
mov r15d, 0x13131313
mov r10, qword [rsp + 0x84]
jmp 0x140066b3b
mov r15d, 0xd
cmp bpl, 0x84
ja 0x140066ae2
mov r14, r13
xor r13d, r13d
xor r14, 0x80
je 0x1400669dd
lea rdi, [rsp + 0x20]
lea rbx, [rsp + 0xb0]
mov rcx, rdi
mov rdx, rbx
mov r8d, 1
call fcn.140048760
mov eax, dword [rsp + 0x20]
cmp eax, 2
jne 0x140066a84
mov rdx, qword [rsp + 0x30]
cmp rdx, 1
jne 0x140066f41
mov eax, r13d
shl eax, 8
mov rcx, qword [rsp + 0x28]
movzx r13d, byte [rcx]
or r13d, eax
dec r14
jne 0x140066959
cmp r13d, 0x10000000
jae 0x140066adc
mov eax, r13d
and eax, 0xfffff80
mov cl, 1
mov bl, 0x81
cmp eax, 0x80
je 0x1400669ee
lea eax, [r13 - 0x100]
mov bl, 0x82
cmp eax, 0xff00
jb 0x1400669ee
lea eax, [r13 - 0x10000]
mov bl, 0x83
cmp eax, 0xff0000
jb 0x1400669ee
lea eax, [r13 - 0x1000000]
cmp eax, 0xf000000
setb cl
mov bl, 0x84
xor eax, eax
test cl, cl
je 0x140066ae4
mov r10d, 0
mov r11d, 0
cmp bl, bpl
je 0x1400667de
jmp 0x140066aea
mov r15d, dword [rsp + 0x24]
mov r10, qword [rsp + 0x28]
mov r14, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x38]
mov r9, qword [rsp + 0x40]
mov r8, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x50]
jmp 0x140066ad2
add r13d, r15d
setb cl
xor r14d, r14d
mov r10d, 0xc
cmp r13d, 0xfffffff
ja 0x140066a7f
test cl, cl
jne 0x140066a7f
add eax, r15d
setb cl
xor r14d, r14d
cmp eax, 0xfffffff
ja 0x140066acd
test cl, cl
jne 0x140066acd
shl r13, 0x20
or r13, 3
mov r14d, eax
mov eax, 1
mov r10, r13
jmp 0x140066ad2
mov r15d, r13d
jmp 0x140066ad0
mov r10d, dword [rsp + 0x24]
mov r15, qword [rsp + 0x28]
mov r14, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x38]
mov r9, qword [rsp + 0x40]
mov r8, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x50]
jmp 0x14006674c
mov r15d, dword [rsp + 0xc8]
cmp byte [rsp + 0xcc], 0
je 0x140066b65
mov r10d, 1
jmp 0x140066b86
mov r15d, eax
xor eax, eax
mov qword [rsp + 0x84], r10
jmp 0x140066b33
mov r15d, 0xc
xor eax, eax
xor r10d, r10d
xor r11d, r11d
or r10, r11
and r12d, 0xffffff
shl r12, 8
or r12, 6
xor r11d, r11d
cmp r15b, 0xd
cmovne r12, r15
mov r15d, 0
cmovne r15, r10
cmove eax, r11d
mov r10, r12
shr r10, 0x20
shl r12, 0x20
or r12, r15
mov dword [rsp + 0x88], r10d
mov qword [rsp + 0x80], r12
mov r10, qword [rsp + 0x84]
shl r15, 0x20
mov eax, eax
or rax, r15
mov qword [rsi + 8], rax
mov qword [rsi + 0x10], r10
mov qword [rsi + 0x18], r14
mov qword [rsi + 0x20], rcx
mov qword [rsi + 0x28], r9
mov qword [rsi + 0x30], r8
mov qword [rsi + 0x38], rdx
jmp 0x140066648
mov r14d, dword [rsp + 0xc0]
cmp r14d, r15d
jbe 0x140066b8d
xor eax, eax
sub r14d, r15d
cmovb r14d, eax
mov r10, r15
shl r10, 0x20
or r10, 0x15
mov eax, 1
jmp 0x140066b3b
mov r14, qword [rsp + 0x28]
mov r15, qword [rsp + 0x30]
lea rcx, [rsp + 0x80]
mov rdx, rdi
mov r8, rbx
call fcn.1400662c0
lea rcx, [rsp + 0xf8]
mov rdx, r14
mov r8, r15
call fcn.1400662c0
movups xmm0, xmmword [rsp + 0x80]
movups xmm1, xmmword [rsp + 0x90]
movups xmm2, xmmword [rsp + 0xa0]
movaps xmmword [rsp + 0x40], xmm2
movaps xmmword [rsp + 0x20], xmm0
movaps xmmword [rsp + 0x30], xmm1
movups xmm0, xmmword [rsp + 0xf8]
movups xmm1, xmmword [rsp + 0x108]
movups xmm2, xmmword [rsp + 0x118]
movaps xmmword [rsp + 0x50], xmm0
movaps xmmword [rsp + 0x60], xmm1
movaps xmmword [rsp + 0x70], xmm2
mov rcx, qword [rsp + 0x48]
mov rax, qword [rsp + 0x20]
cmp rcx, 5
jb 0x140066c2c
mov rdx, qword [rsp + 0x28]
test rdx, rdx
je 0x140066c67
mov r8, qword [rsp + 0x30]
jmp 0x140066c39
test rcx, rcx
je 0x140066c67
lea r8, [rsp + 0x28]
mov rdx, rcx
mov r8, qword [r8 + rdx*8 - 8]
test r8, r8
je 0x140066c4d
bsr r8, r8
xor r8, 0x3f
jmp 0x140066c53
mov r8d, 0x40
shl rdx, 6
sub rdx, r8
ret 0x8148
cli
add byte [rax], dl
add byte [rax], al
ja 0x140066ef7
mov rdx, qword [rsp + 0x78]
cmp rdx, 5
jb 0x140066c7e
mov r9, qword [rsp + 0x58]
lea r8, [rsp + 0x58]
mov r9, rdx
lea r8, [0x1400d9e10]
mov ecx, 1
call fcn.1400a4ac0
fild dword [rbx]
add byte [rdi], cl
invalid