Function at 0x1400018d8
Capabilities:
Encrypt or decrypt data via bcrypt

Disassembly:
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x78
lea rbp, [rsp + 0x70]
mov qword [rbp + 0x30], rcx
mov qword [rbp + 0x38], rdx
mov qword [rbp + 0x40], r8
mov qword [rbp - 8], 0
mov qword [rbp - 0x10], 0
mov dword [rbp - 0x14], 0
lea rax, [rbp - 8]
mov r9d, 0
mov r8d, 0
lea rdx, [0x1400b8002]
mov rcx, rax
call sym.BCryptOpenAlgorithmProvider
test eax, eax
setne al
test al, al
je 0x14000193a
mov eax, 0
jmp 0x140001af8
mov rax, qword [rbp - 8]
mov dword [rsp + 0x20], 0
mov r9d, 0x20
lea r8, str.ChainingModeECB
lea rdx, str.ChainingMode
mov rcx, rax
call sym.BCryptSetProperty
test eax, eax
setne al
test al, al
je 0x140001986
mov rax, qword [rbp - 8]
mov edx, 0
mov rcx, rax
call sym.BCryptCloseAlgorithmProvider
mov eax, 0
jmp 0x140001af8
mov rax, qword [rbp + 0x40]
mov rcx, rax
call method.std::vector_unsigned_char__std::allocator_unsigned_char___.size___const
mov ebx, eax
mov rax, qword [rbp + 0x40]
mov rcx, rax
call method.std::vector_unsigned_char__std::allocator_unsigned_char___.data___const
mov rcx, rax
mov rax, qword [rbp - 8]
lea rdx, [rbp - 0x10]
mov dword [rsp + 0x30], 0
mov dword [rsp + 0x28], ebx
mov qword [rsp + 0x20], rcx
mov r9d, 0
mov r8d, 0
mov rcx, rax
call sym.BCryptGenerateSymmetricKey
test eax, eax
setne al
test al, al
je 0x1400019f4
mov rax, qword [rbp - 8]
mov edx, 0
mov rcx, rax
call sym.BCryptCloseAlgorithmProvider
mov eax, 0
jmp 0x140001af8
mov rax, qword [rbp + 0x30]
mov rcx, rax
call method.std::vector_unsigned_char__std::allocator_unsigned_char___.size___const
mov rdx, rax
mov rax, qword [rbp + 0x38]
mov rcx, rax
call method.std::vector_unsigned_char__std::allocator_unsigned_char___.resize_unsigned_long_long_
mov rax, qword [rbp + 0x38]
mov rcx, rax
call method.std::vector_unsigned_char__std::allocator_unsigned_char___.size___const
mov esi, eax
mov rax, qword [rbp + 0x38]
mov rcx, rax
call method.std::vector_unsigned_char__std::allocator_unsigned_char___.data__
mov rbx, rax
mov rax, qword [rbp + 0x30]
mov rcx, rax
call method.std::vector_unsigned_char__std::allocator_unsigned_char___.size___const
mov edi, eax
mov rax, qword [rbp + 0x30]
mov rcx, rax
call method.std::vector_unsigned_char__std::allocator_unsigned_char___.data___const
mov rcx, rax
mov rax, qword [rbp - 0x10]
mov dword [rsp + 0x48], 0
lea rdx, [rbp - 0x14]
mov qword [rsp + 0x40], rdx
mov dword [rsp + 0x38], esi
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
mov r9d, 0
mov r8d, edi
mov rdx, rcx
mov rcx, rax
call sym.BCryptDecrypt
test eax, eax
setne al
test al, al
je 0x140001ab9
mov rax, qword [rbp - 0x10]
mov rcx, rax
call sym.BCryptDestroyKey
mov rax, qword [rbp - 8]
mov edx, 0
mov rcx, rax
call sym.BCryptCloseAlgorithmProvider
mov eax, 0
jmp 0x140001af8
mov eax, dword [rbp - 0x14]
mov edx, eax
mov rax, qword [rbp + 0x38]
mov rcx, rax
call method.std::vector_unsigned_char__std::allocator_unsigned_char___.resize_unsigned_long_long_
mov rax, qword [rbp - 0x10]
mov rcx, rax
call sym.BCryptDestroyKey
mov rax, qword [rbp - 8]
mov edx, 0
mov rcx, rax
call sym.BCryptCloseAlgorithmProvider
mov rax, qword [rbp + 0x38]
mov rcx, rax
call sym.x19_std::vector_unsigned_char__std::allocator_unsigned_char____
mov eax, 1
add rsp, 0x78
pop rbx
pop rsi
pop rdi
pop rbp
ret