Function at 0x26678
Capabilities:
Encrypt data using openssl rsa

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x50
mov rdi, r8
mov r13, rdx
mov rsi, rcx
cmp r8, 7
jae 0x266a5
mov eax, 0x214
jmp 0x26b92
cmp dword [rcx + 0x10], 0
jne 0x266ba
cmp dword [rcx], 3
je 0x266bf
mov eax, 0x1f4
jmp 0x26b92
cmp dword [rcx], 7
jmp 0x266ae
call fcn.00027448
movzx ebp, byte [r13 + 4]
movzx eax, byte [r13 + 5]
shl ebp, 8
or ebp, eax
movzx eax, byte [r13 + 6]
shl ebp, 8
or rbp, rax
lea rax, [rdi - 7]
cmp rbp, rax
ja 0x2669b
mov r15d, 0x53534c4d
mov edi, 0x300
xor ecx, ecx
mov r8d, r15d
mov rdx, rdi
mov ebx, 0x64
call qword [sym.imp.ntoskrnl.exe_ExAllocatePoolWithTag]
mov r12, rax
test rax, rax
je 0x26b11
mov r8d, r15d
mov rdx, rdi
xor ecx, ecx
call qword [sym.imp.ntoskrnl.exe_ExAllocatePoolWithTag]
mov r15, rax
mov qword [rsp + 0x38], rax
test rax, rax
je 0x26aea
cmp dword [rsi + 0x10], 1
jne 0x2675c
test rbp, rbp
jne 0x2675c
cmp dword [rsi + 0x43c], 2
jne 0x2674e
mov ebx, 0x20e
jmp 0x26aea
and dword [rsi + 0x230], 0
xor ebx, ebx
jmp 0x26aea
cmp rbp, 3
jae 0x2676c
mov ebx, 0x214
jmp 0x26aea
movzx r14d, byte [r13 + 7]
movzx eax, byte [r13 + 8]
sub rbp, 3
shl r14d, 8
add r13, 0xa
or r14d, eax
movzx eax, byte [r13 - 1]
shl r14d, 8
or r14, rax
mov qword [rsp + 0xa0], r14
cmp r14, rbp
ja 0x26762
mov r8, r12
mov rdx, r14
mov rcx, r13
call fcn.0002c7c4
mov ebx, eax
test eax, eax
jne 0x26aea
cmp dword [rsi + 0x10], eax
jne 0x26853
mov rdi, qword [rsi + 0x38]
test rdi, rdi
je 0x26853
mov r15d, dword [r12 + 0x158]
or rcx, 0xffffffffffffffff
xor eax, eax
repne scasb al, byte [rdi]
dec r15d
not rcx
movsxd rdi, r15d
lea r14, [rcx - 2]
movsxd rbx, r14d
test r15d, r15d
js 0x2683d
test rbx, rbx
js 0x26834
mov rax, qword [r12 + 0x150]
cmp byte [rdi + rax], 0x2a
jne 0x26810
test rdi, rdi
jne 0x26810
xor r14d, r14d
xor ebx, ebx
jmp 0x26825
movzx ecx, byte [rdi + rax]
call sub.ntoskrnl.exe_tolower
mov rcx, qword [rsi + 0x38]
movsx edx, byte [rbx + rcx]
cmp eax, edx
jne 0x26834
dec r15d
dec r14d
dec rbx
sub rdi, 1
jns 0x267f1
test r15d, r15d
jns 0x26ae5
test r14d, r14d
jns 0x26ae5
mov r14, qword [rsp + 0xa0]
mov r15, qword [rsp + 0x38]
mov rdi, qword [r12 + 0x240]
mov rdx, qword [r12 + 0x248]
lea r8, [0x000445c0]
mov rcx, rdi
mov r9d, 9
call fcn.000326a8
test eax, eax
jne 0x268b6
cmp qword [r12 + 0x250], 0
je 0x2689a
lea rdx, [rsi + 0x238]
mov rcx, r12
call fcn.0002deb4
mov ebx, eax
jmp 0x2689f
mov ebx, 0xe2
test ebx, ebx
jne 0x26aea
mov dword [rsi + 0x230], 1
jmp 0x2698e
lea r8, [0x00041a18]
mov r9d, 7
mov rcx, rdi
call fcn.000326a8
test eax, eax
jne 0x26909
cmp qword [r12 + 0x270], 0
je 0x268ed
lea rdx, [rsi + 0x258]
mov rcx, r12
call fcn.0002df18
mov ebx, eax
jmp 0x268f2
mov ebx, 0xe2
test ebx, ebx
jne 0x26aea
mov dword [rsi + 0x230], 2
jmp 0x2698e
lea r8, [0x000445b0]
mov rcx, rdi
call fcn.000326a8
test eax, eax
jne 0x26ae5
mov rdx, qword [r12 + 0x2b8]
mov rcx, qword [r12 + 0x2b0]
call fcn.00033cb0
test rax, rax
je 0x26ae5
lea rcx, [rsi + 0x298]
mov rdx, rax
call fcn.0002a388
mov ebx, eax
test eax, eax
jne 0x26aea
mov r9, qword [r12 + 0x2c8]
mov r8, qword [r12 + 0x2c0]
lea rdx, [rsi + 0x318]
lea rcx, [rsi + 0x298]
call fcn.0002a4b0
mov ebx, eax
test eax, eax
jne 0x26aea
mov dword [rsi + 0x230], 0x40
add r13, r14
sub rbp, r14
je 0x26a20
cmp rbp, 3
jb 0x26762
movzx edi, byte [r13]
movzx eax, byte [r13 + 1]
sub rbp, 3
shl edi, 8
add r13, 3
or edi, eax
movzx eax, byte [r13 - 1]
shl edi, 8
or rdi, rax
cmp rdi, rbp
ja 0x26a13
mov r8, r15
mov rdx, rdi
mov rcx, r13
call fcn.0002c7c4
mov ebx, eax
test eax, eax
jne 0x26aea
mov rdx, r15
mov rcx, r12
call fcn.0002dfc8
mov ebx, eax
test eax, eax
jne 0x26aea
mov rcx, r12
mov rdx, r15
mov r8d, 0x2f8
call fcn.0003a6f0
add r13, rdi
sub rbp, rdi
jne 0x2699a
jmp 0x26a18
mov ebx, 0x214
test ebx, ebx
jne 0x26aea
mov rax, qword [rsi + 0x220]
and qword [rsp + 0xa0], 0
and qword [rsp + 0x40], 0
and qword [rsp + 0xa8], 0
mov qword [rsp + 0x48], rax
mov rax, qword [rsi + 0x228]
mov qword [rsp + 0x30], rax
test rax, rax
je 0x26aea
lea rax, [rsp + 0xa8]
lea r9, [rsp + 0x40]
lea r8, [rsp + 0xa0]
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x48]
mov qword [rsp + 0x20], rax
call fcn.00030870
mov rdi, qword [rsp + 0xa0]
mov ebx, eax
test eax, eax
jne 0x26ac2
mov rdx, qword [rsp + 0xa8]
mov r8, r15
mov rcx, rdi
call fcn.0002c7c4
mov ebx, eax
test eax, eax
jne 0x26ac2
mov rdx, r15
mov rcx, r12
call fcn.0002dfc8
mov ebx, eax
test eax, eax
je 0x26ac2
cmp qword [rsp + 0x30], 0
ja 0x26a59
cmp ebx, 0x130
mov eax, 0x213
cmove ebx, eax
test rdi, rdi
je 0x26aea
mov edx, 0x53534c4d
mov rcx, rdi
call qword [sym.imp.ntoskrnl.exe_ExFreePoolWithTag]
jmp 0x26aea
mov ebx, 0x210
mov edx, 0x53534c4d
mov rcx, r12
call qword [sym.imp.ntoskrnl.exe_ExFreePoolWithTag]
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x26b0d
mov edx, 0x53534c4d
call qword [sym.imp.ntoskrnl.exe_ExFreePoolWithTag]
test ebx, ebx
je 0x26b71
lea rcx, [rsi + 0x238]
call fcn.00030a94
lea rcx, [rsi + 0x248]
call fcn.00030a94
lea rcx, [rsi + 0x258]
call fcn.00030a94
lea rcx, [rsi + 0x268]
call fcn.00030a94
lea rcx, [rsi + 0x278]
call fcn.00030a94
lea rcx, [rsi + 0x288]
call fcn.00030a94
lea rcx, [rsi + 0x298]
call fcn.0002a344
lea rcx, [rsi + 0x318]
call fcn.0002a484
cmp dword [rsi + 0x10], 0
jne 0x26b8a
mov eax, dword [rsi + 0x38c]
dec eax
neg eax
sbb eax, eax
add eax, 5
mov dword [rsi], eax
jmp 0x26b90
mov dword [rsi], 8
mov eax, ebx
mov rbx, qword [rsp + 0x90]
add rsp, 0x50
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret