Function at 0x14005a500
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 [0x1400aa050]
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 0x14005a58a
mov qword [r13], 0
mov rcx, qword [rsp + 0x70]
xor rcx, rsp
call fcn.140058660
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.140059f80
inc eax
movsxd r12, eax
mov rsi, r12
add rsi, r12
mov rax, 0xffffffffffffffff
cmovb rsi, rax
mov rcx, rsi
call fcn.14005766c
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.14005a000
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 0x14005a658
mov qword [r13], 0
mov rcx, r15
call fcn.140057540
jmp 0x14005a569
lea rcx, [rsp + 0x68]
mov qword [rcx], 0
lea rdx, [0x1400a3656]
xor esi, esi
xor r8d, r8d
xor r9d, r9d
call sub.bcrypt.dll_BCryptOpenAlgorithmProvider
test eax, eax
js 0x14005a643
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 0x14005a8b5
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 0x14005a6fe
mov ecx, 0x10
call fcn.14005766c
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 0x14005a6fe
mov rcx, r12
call fcn.140057540
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 0x14005a643
mov edx, 0
cmp ebp, 8
jl 0x14005a831
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
imul ebx, ebx, 0xcf98b111
rol ebx, 0x10
mov r11d, dword [r15 + rbp*8 + 4]
imul ebx, ebx, 0x87085b9f
rol ebx, 0x10
imul ebx, ebx, 0x12ceb96d
rol ebx, 0x10
imul ebx, ebx, 0x257e1d83
add edi, ecx
mov ecx, edi
rol ecx, 0x10
add esi, ebx
imul ecx, ecx, 0xef0569fb
imul edi, r9d
add edi, ecx
imul ecx, edi, 0x79f8a395
shr edi, 0x10
imul eax, edi, 0x689b6b9f
add eax, ecx
mov ecx, eax
rol ecx, 0x10
imul edi, ecx, 0xc3efea97
add ebx, r11d
imul ebx, r10d
rol ebx, 0x10
add edi, eax
imul eax, ebx, 0xa27416f5
rol eax, 0x10
add edx, edi
imul eax, eax, 0xd38396ff
rol eax, 0x10
imul eax, eax, 0x7c932b89
rol eax, 0x10
imul ebx, eax, 0xbfa49f69
add edi, r11d
mov eax, edi
rol eax, 0x10
add esi, ebx
imul eax, eax, 0xc31713db
imul edi, r10d
add edi, eax
imul eax, edi, 0x59c3af2d
shr edi, 0x10
imul ecx, edi, 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 0x14005a758
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 0x14005a8c6
mov esi, dword [rsp + 0x60]
add rsi, rsi
mov rcx, rsi
call fcn.14005766c
mov rdi, rax
xor ebx, ebx
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
cmovne rbx, rdi
mov qword [r13], rbx
jne 0x14005a8ce
mov rcx, rdi
call fcn.140057540
jmp 0x14005a8ce
mov rcx, qword [rsp + 0x68]
xor edx, edx
call sub.bcrypt.dll_BCryptCloseAlgorithmProvider
jmp 0x14005a643
mov qword [r13], 0
mov rcx, r12
call fcn.140057540
jmp 0x14005a64b