Function at 0x140019f40
Capabilities:
Encrypt or decrypt data via bcrypt
Generate random numbers via winapi

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rbp
push rdi
push r14
mov rbp, rsp
sub rsp, 0x80
mov rbx, r9
mov rdi, r8
mov r14, rdx
mov rsi, rcx
test rcx, rcx
je 0x14001a33f
test r8, r8
je 0x14001a33f
xorps xmm0, xmm0
mov qword [rsp + 0xa8], r15
xor r9d, r9d
lea rdx, [0x1400203c0]
xor r8d, r8d
lea rcx, [rbp - 0x30]
movdqu xmmword [rbp - 0x30], xmm0
call sub.bcrypt.dll_BCryptOpenAlgorithmProvider
lea rdx, str.BA:O
mov ecx, eax
call fcn.14001a7c0
xor r15d, r15d
test al, al
je 0x14001a244
mov rcx, qword [rbp - 0x30]
lea r9d, [r15 + 0x20]
lea r8, str.ChainingModeCBC
mov dword [rsp + 0x20], r15d
lea rdx, str.ChainingMode
call sub.bcrypt.dll_BCryptSetProperty
lea rdx, str.BA:SIP
mov ecx, eax
call fcn.14001a7c0
test al, al
je 0x14001a244
mov rcx, qword [rbp - 0x30]
lea rdx, [rbp - 0x28]
mov dword [rsp + 0x30], r15d
xor r9d, r9d
mov dword [rsp + 0x28], 0x20
xor r8d, r8d
mov qword [rsp + 0x20], rdi
call sub.bcrypt.dll_BCryptGenerateSymmetricKey
lea rdx, str.BK:SK
mov ecx, eax
call fcn.14001a7c0
test al, al
jne 0x14001a04e
mov rcx, qword [rbp - 0x28]
test rcx, rcx
je 0x14001a042
call sub.bcrypt.dll_BCryptDestroyKey
lea rdx, str.BK:D
mov qword [rbp - 0x28], r15
mov ecx, eax
call fcn.14001a7c0
lea rcx, str.Couldnt_set_key.
jmp 0x14001a299
test rbx, rbx
je 0x14001a05f
movups xmm0, xmmword [rbx]
movaps xmmword [rbp - 0x20], xmm0
jmp 0x14001a0f6
xor r9d, r9d
mov qword [rbp + 0x20], r15
xor r8d, r8d
lea rdx, [0x1400204b0]
lea rcx, [rbp + 0x20]
call sub.bcrypt.dll_BCryptOpenAlgorithmProvider
lea rdx, str.BA:O
mov ecx, eax
call fcn.14001a7c0
mov rcx, qword [rbp + 0x20]
lea rdx, [rbp - 0x20]
xor r9d, r9d
lea r8d, [r9 + 0x10]
call sub.bcrypt.dll_BCryptGenRandom
lea rdx, str.A2CB:EWPI:BGR
mov ecx, eax
call fcn.14001a7c0
mov rcx, qword [rbp + 0x20]
test al, al
jne 0x14001a0d8
test rcx, rcx
je 0x14001a29e
xor edx, edx
call sub.bcrypt.dll_BCryptCloseAlgorithmProvider
lea rdx, str.BA:C
mov qword [rbp + 0x20], r15
mov ecx, eax
call fcn.14001a7c0
jmp 0x14001a29e
test rcx, rcx
je 0x14001a0f6
xor edx, edx
call sub.bcrypt.dll_BCryptCloseAlgorithmProvider
lea rdx, str.BA:C
mov qword [rbp + 0x20], r15
mov ecx, eax
call fcn.14001a7c0
movaps xmm0, xmmword [rbp - 0x20]
lea rax, [rbp + 0x20]
mov rcx, qword [rbp - 0x28]
xor r9d, r9d
mov dword [rsp + 0x48], 1
mov r8d, r14d
mov qword [rsp + 0x40], rax
mov rdx, rsi
mov dword [rsp + 0x38], r15d
lea rax, [rbp - 0x10]
mov qword [rsp + 0x30], r15
mov dword [rsp + 0x28], 0x10
mov qword [rsp + 0x20], rax
movdqa xmmword [rbp - 0x10], xmm0
mov dword [rbp + 0x20], r15d
call sub.bcrypt.dll_BCryptEncrypt
lea rdx, str.BA:GES
mov ecx, eax
call fcn.14001a7c0
test al, al
mov rax, r15
je 0x14001a159
mov eax, dword [rbp + 0x20]
mov rdi, qword [rbp + 0x40]
lea r8, [rbp + 0x20]
mov rcx, rdi
mov byte [rbp + 0x20], r15b
mov rbx, qword [rdi + 8]
sub rbx, qword [rdi]
lea rdx, [rbx + 0x10]
add rdx, rax
call fcn.14001a5a0
mov rax, qword [rdi]
mov r8, qword [rdi + 8]
sub r8, rax
sub r8, rbx
lea rcx, [rax + rbx]
test rcx, rcx
jne 0x14001a19f
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
mov dword [rax], 0x16
jmp 0x14001a1c1
cmp r8, 0x10
jb 0x14001a1ae
movaps xmm0, xmmword [rbp - 0x20]
movups xmmword [rcx], xmm0
jmp 0x14001a1c7
xor edx, edx
call sub.VCRUNTIME140.dll_memset
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
mov dword [rax], 0x22
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo]
mov rax, qword [rdi]
lea rdx, [rbp + 0x20]
mov rcx, qword [rdi + 8]
add rbx, 0x10
movaps xmm0, xmmword [rbp - 0x20]
sub rcx, rax
mov dword [rsp + 0x48], 1
sub rcx, rbx
mov qword [rsp + 0x40], rdx
add rax, rbx
mov dword [rsp + 0x38], ecx
xor r9d, r9d
mov rcx, qword [rbp - 0x28]
mov r8d, r14d
mov qword [rsp + 0x30], rax
mov rdx, rsi
lea rax, [rbp - 0x10]
mov dword [rsp + 0x28], 0x10
mov qword [rsp + 0x20], rax
movdqa xmmword [rbp - 0x10], xmm0
mov dword [rbp + 0x20], r15d
call sub.bcrypt.dll_BCryptEncrypt
lea rdx, str.BA:E
mov ecx, eax
call fcn.14001a7c0
test al, al
jne 0x14001a240
lea rcx, str.Failed_to_finish_transform_
jmp 0x14001a299
mov bl, 1
jmp 0x14001a2a0
lea rcx, str.BA:I___Could_not_init
call fcn.140005810
mov rcx, qword [rbp - 0x28]
test rcx, rcx
je 0x14001a270
call sub.bcrypt.dll_BCryptDestroyKey
lea rdx, str.BK:D
mov qword [rbp - 0x28], r15
mov ecx, eax
call fcn.14001a7c0
mov rcx, qword [rbp - 0x30]
test rcx, rcx
je 0x14001a292
xor edx, edx
call sub.bcrypt.dll_BCryptCloseAlgorithmProvider
lea rdx, str.BA:C
mov qword [rbp - 0x30], r15
mov ecx, eax
call fcn.14001a7c0
lea rcx, str.Couldnt_init_algo.
call fcn.140005810
xor bl, bl
mov rcx, qword [rbp - 0x28]
test rcx, rcx
je 0x14001a2c4
call sub.bcrypt.dll_BCryptDestroyKey
lea rdx, str.BK:D
mov qword [rbp - 0x28], r15
mov ecx, eax
call fcn.14001a7c0
mov rcx, qword [rbp - 0x28]
mov rax, qword [rbp - 0x30]
test rax, rax
je 0x14001a2f1
xor edx, edx
mov rcx, rax
call sub.bcrypt.dll_BCryptCloseAlgorithmProvider
lea rdx, str.BA:C
mov qword [rbp - 0x30], r15
mov ecx, eax
call fcn.14001a7c0
mov rcx, qword [rbp - 0x28]
mov rax, qword [rbp - 0x30]
test rcx, rcx
je 0x14001a311
call sub.bcrypt.dll_BCryptDestroyKey
lea rdx, str.BK:D
mov qword [rbp - 0x28], r15
mov ecx, eax
call fcn.14001a7c0
mov rax, qword [rbp - 0x30]
test rax, rax
je 0x14001a332
xor edx, edx
mov rcx, rax
call sub.bcrypt.dll_BCryptCloseAlgorithmProvider
lea rdx, str.BA:C
mov qword [rbp - 0x30], r15
mov ecx, eax
call fcn.14001a7c0
mov r15, qword [rsp + 0xa8]
movzx eax, bl
jmp 0x14001a34d
lea rcx, str.Invalid_buffer_passed_in.
call fcn.140005810
xor al, al
lea r11, [rsp + 0x80]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rsp, r11
pop r14
pop rdi
pop rbp
ret