Function at 0x14005b670
Capabilities:
Encode data using base64 via winapi
Hash data via bcrypt

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x78
mov rdi, r9
mov rbp, r8
mov rbx, rdx
mov r13, rcx
mov rax, qword [rsp + 0xe0]
mov rcx, qword [0x1400a9028]
xor rcx, rsp
mov qword [rsp + 0x70], rcx
mov rdx, qword [rax]
lea rcx, [rsp + 0x50]
mov qword [rcx], rdx
mov eax, dword [rax + 8]
mov dword [rcx + 8], eax
mov dword [rcx + 0xc], 0
lea rdx, [rsp + 0x68]
mov qword [rdx], 0
call qword [sym.imp.KERNEL32.dll_SystemTimeToFileTime]
test eax, eax
jne 0x14005b6fa
mov qword [r13], 0
mov rcx, qword [rsp + 0x70]
xor rcx, rsp
call fcn.140059960
mov rax, r13
add rsp, 0x78
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov eax, dword [rsp + 0x68]
mov ecx, dword [rsp + 0x6c]
lea r14, str.User_Choice_set_via_Windows_User_Experience_D18B6DD5_6124_4341_9318_804003BAFA0B
mov qword [rsp + 0x30], r14
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], ecx
lea rcx, str._s_s_s_08lx_08lx_s
mov rdx, rbx
mov r8, rbp
mov r9, rdi
call fcn.14005af60
inc eax
movsxd r12, eax
mov rsi, r12
add rsi, r12
mov rax, 0xffffffffffffffff
cmovb rsi, rax
mov rcx, rsi
call fcn.14005896c
mov r15, rax
mov rcx, rax
xor edx, edx
mov r8, rsi
call sub.VCRUNTIME140.dll_memset
mov eax, dword [rsp + 0x68]
mov ecx, dword [rsp + 0x6c]
mov qword [rsp + 0x48], r14
mov dword [rsp + 0x40], eax
mov dword [rsp + 0x38], ecx
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x28], rbp
mov qword [rsp + 0x20], rbx
mov rcx, r15
mov rdx, r12
mov r8, 0xffffffffffffffff
lea r9, str._s_s_s_08lx_08lx_s
call fcn.14005afe0
mov rcx, r15
call qword [sym.imp.USER32.dll_CharLowerW]
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_lstrlenW]
lea ebp, [rax + rax]
add ebp, 2
cmp ebp, 7
ja 0x14005b7c8
mov qword [r13], 0
mov rcx, r15
call fcn.140058840
jmp 0x14005b6d9
lea rcx, [rsp + 0x68]
mov qword [rcx], 0
lea rdx, [0x1400a22b8]
xor esi, esi
xor r8d, r8d
xor r9d, r9d
call sub.bcrypt.dll_BCryptOpenAlgorithmProvider
test eax, eax
js 0x14005b7b3
lea r14, [rsp + 0x60]
mov qword [r14], rsi
mov rcx, qword [rsp + 0x68]
mov dword [rsp + 0x30], esi
mov dword [rsp + 0x28], esi
mov qword [rsp + 0x20], rsi
mov rdx, r14
xor r8d, r8d
xor r9d, r9d
call sub.bcrypt.dll_BCryptCreateHash
test eax, eax
js 0x14005ba15
mov rcx, qword [rsp + 0x60]
xor r12d, r12d
mov rdx, r15
mov r8d, ebp
xor r9d, r9d
call sub.bcrypt.dll_BCryptHashData
test eax, eax
js 0x14005b86e
mov ecx, 0x10
call fcn.14005896c
mov r12, rax
xorps xmm0, xmm0
movups xmmword [rax], xmm0
mov rcx, qword [rsp + 0x60]
mov rdx, rax
mov r8d, 0x10
xor r9d, r9d
call sub.bcrypt.dll_BCryptFinishHash
test eax, eax
jns 0x14005b86e
mov rcx, r12
call fcn.140058840
xor r12d, r12d
mov rcx, qword [rsp + 0x60]
call sub.bcrypt.dll_BCryptDestroyHash
mov rcx, qword [rsp + 0x68]
xor ebx, ebx
xor edx, edx
call sub.bcrypt.dll_BCryptCloseAlgorithmProvider
test r12, r12
je 0x14005b7b3
mov edx, 0
cmp ebp, 8
jl 0x14005b99f
sar ebp, 3
mov r9d, dword [r12]
mov r10d, dword [r12 + 4]
or r9d, 1
or r10d, 1
cmp ebp, 2
mov r8d, 1
cmovge r8d, ebp
xor ebp, ebp
xor ebx, ebx
xor edi, edi
xor edx, edx
xor esi, esi
mov ecx, dword [r15 + rbp*8]
add ebx, ecx
imul ebx, r9d
rol ebx, 0x10
mov eax, dword [r15 + rbp*8 + 4]
imul ebx, ebx, 0xcf98b111
rol ebx, 0x10
imul ebx, ebx, 0x87085b9f
rol ebx, 0x10
imul ebx, ebx, 0x12ceb96d
rol ebx, 0x10
imul ebx, ebx, 0x257e1d83
add esi, ebx
add edi, ecx
mov ecx, edi
rol ecx, 0x10
imul ecx, ecx, 0xef0569fb
imul edi, r9d
add edi, ecx
imul ecx, edi, 0x79f8a395
shr edi, 0x10
imul edi, edi, 0x689b6b9f
add edi, ecx
mov ecx, edi
rol ecx, 0x10
add ebx, eax
imul ebx, r10d
rol ebx, 0x10
imul ebx, ebx, 0xa27416f5
rol ebx, 0x10
imul ecx, ecx, 0xc3efea97
imul ebx, ebx, 0xd38396ff
rol ebx, 0x10
add ecx, edi
imul ebx, ebx, 0x7c932b89
rol ebx, 0x10
add edx, ecx
imul ebx, ebx, 0xbfa49f69
add esi, ebx
add ecx, eax
mov eax, ecx
rol eax, 0x10
imul eax, eax, 0xc31713db
imul ecx, r10d
add ecx, eax
imul eax, ecx, 0x59c3af2d
shr ecx, 0x10
imul ecx, ecx, 0xddcd1f0f
add ecx, eax
mov eax, ecx
rol eax, 0x10
imul edi, eax, 0x35bd1ec9
add edi, ecx
add edx, edi
inc rbp
cmp r8, rbp
jne 0x14005b8c8
xor ebx, edi
xor edx, esi
lea rcx, [rsp + 0x68]
mov dword [rcx], ebx
mov dword [rcx + 4], edx
mov dword [rsp + 0x60], 0
mov qword [rsp + 0x20], r14
mov edx, 8
mov r8d, 0x40000001
xor r9d, r9d
call qword [sym.imp.CRYPT32.dll_CryptBinaryToStringW]
test eax, eax
je 0x14005ba26
mov esi, dword [rsp + 0x60]
add rsi, rsi
mov rcx, rsi
call fcn.14005896c
mov rdi, rax
mov rcx, rax
xor edx, edx
mov r8, rsi
call sub.VCRUNTIME140.dll_memset
mov qword [rsp + 0x20], r14
lea rcx, [rsp + 0x68]
mov edx, 8
mov r8d, 0x40000001
mov r9, rdi
call qword [sym.imp.CRYPT32.dll_CryptBinaryToStringW]
test eax, eax
je 0x14005ba3b
mov qword [r13], rdi
jmp 0x14005ba2e
mov rcx, qword [rsp + 0x68]
xor edx, edx
call sub.bcrypt.dll_BCryptCloseAlgorithmProvider
jmp 0x14005b7b3
mov qword [r13], 0
mov rcx, r12
call fcn.140058840
jmp 0x14005b7bb
mov qword [r13], 0
mov rcx, rdi
call fcn.140058840
jmp 0x14005ba2e