Function at 0x1400591d0
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 r15, r9
mov r14, r8
mov rbx, rdx
mov rsi, rcx
mov rax, qword [rsp + 0xe0]
mov rcx, qword [0x1400ac070]
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 0x140059257
mov qword [rsi], 0
mov rcx, qword [rsp + 0x70]
xor rcx, rsp
call fcn.140056980
nop
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 r12, str.User_Choice_set_via_Windows_User_Experience_D18B6DD5_6124_4341_9318_804003BAFA0B
mov qword [rsp + 0x30], r12
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], ecx
lea rcx, str._s_s_s_08lx_08lx_s
mov rdx, rbx
mov r8, r14
mov r9, r15
call fcn.140058910
cdqe
lea r13, [rax + 1]
lea rbp, [rax + rax]
add rbp, 2
mov rcx, rbp
call fcn.140055a0c
mov rdi, rax
mov rcx, rax
xor edx, edx
mov r8, rbp
call sub.VCRUNTIME140.dll_memset
mov eax, dword [rsp + 0x68]
mov ecx, dword [rsp + 0x6c]
mov qword [rsp + 0x48], r12
mov dword [rsp + 0x40], eax
mov dword [rsp + 0x38], ecx
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x20], rbx
mov rcx, rdi
mov rdx, r13
lea r9, str._s_s_s_08lx_08lx_s
call fcn.140058990
mov rcx, rdi
call qword [sym.imp.USER32.dll_CharLowerW]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_lstrlenW]
lea ebp, [rax + rax]
add ebp, 2
cmp ebp, 7
ja 0x140059315
mov qword [rsi], 0
mov rcx, rdi
call fcn.140055a14
jmp 0x140059238
lea rcx, [rsp + 0x68]
mov qword [rcx], 0
lea rdx, [0x1400a4e86]
xor r14d, r14d
xor r8d, r8d
xor r9d, r9d
call sub.bcrypt.dll_BCryptOpenAlgorithmProvider
test eax, eax
js 0x140059301
lea rbx, [rsp + 0x60]
mov qword [rbx], r14
mov rcx, qword [rsp + 0x68]
mov dword [rsp + 0x30], r14d
mov dword [rsp + 0x28], r14d
mov qword [rsp + 0x20], r14
mov rdx, rbx
xor r8d, r8d
xor r9d, r9d
call sub.bcrypt.dll_BCryptCreateHash
test eax, eax
js 0x1400595a6
mov rcx, qword [rsp + 0x60]
xor r14d, r14d
mov rdx, rdi
mov r8d, ebp
xor r9d, r9d
call sub.bcrypt.dll_BCryptHashData
test eax, eax
js 0x1400593be
mov ecx, 0x10
call fcn.140055a0c
mov r14, 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 0x1400593be
mov rcx, r14
call fcn.140055a14
xor r14d, r14d
mov rcx, qword [rsp + 0x60]
call sub.bcrypt.dll_BCryptDestroyHash
mov rcx, qword [rsp + 0x68]
xor r15d, r15d
xor edx, edx
call sub.bcrypt.dll_BCryptCloseAlgorithmProvider
test r14, r14
je 0x140059301
mov edx, 0
cmp ebp, 8
jl 0x140059520
sar ebp, 3
mov eax, dword [r14]
mov ecx, dword [r14 + 4]
or eax, 1
or ecx, 1
cmp ebp, 2
mov r8d, 1
cmovge r8d, ebp
xor r9d, r9d
xor r15d, r15d
xor r11d, r11d
xor edx, edx
xor r10d, r10d
mov r12d, dword [rdi + r9*8]
add r15d, r12d
imul r15d, eax
rol r15d, 0x10
imul r15d, r15d, 0xcf98b111
rol r15d, 0x10
mov ebp, dword [rdi + r9*8 + 4]
imul r15d, r15d, 0x87085b9f
rol r15d, 0x10
imul r15d, r15d, 0x12ceb96d
rol r15d, 0x10
imul r15d, r15d, 0x257e1d83
add r10d, r15d
add r11d, r12d
mov r12d, eax
imul r12d, r11d
rol r11d, 0x10
imul r11d, r11d, 0xef0569fb
add r11d, r12d
imul r12d, r11d, 0x79f8a395
shr r11d, 0x10
imul r11d, r11d, 0x689b6b9f
add r11d, r12d
mov r12d, r11d
rol r12d, 0x10
imul r12d, r12d, 0xc3efea97
add r15d, ebp
imul r15d, ecx
rol r15d, 0x10
add r12d, r11d
imul r11d, r15d, 0xa27416f5
rol r11d, 0x10
add edx, r12d
imul r11d, r11d, 0xd38396ff
rol r11d, 0x10
imul r11d, r11d, 0x7c932b89
rol r11d, 0x10
imul r15d, r11d, 0xbfa49f69
add r10d, r15d
add r12d, ebp
mov r11d, ecx
imul r11d, r12d
rol r12d, 0x10
imul ebp, r12d, 0xc31713db
add ebp, r11d
imul r11d, ebp, 0x59c3af2d
shr ebp, 0x10
imul ebp, ebp, 0xddcd1f0f
add ebp, r11d
mov r11d, ebp
rol r11d, 0x10
imul r11d, r11d, 0x35bd1ec9
add r11d, ebp
add edx, r11d
inc r9
cmp r8, r9
jne 0x140059419
xor r15d, r11d
xor edx, r10d
lea rcx, [rsp + 0x68]
mov dword [rcx], r15d
mov dword [rcx + 4], edx
mov dword [rsp + 0x60], 0
mov qword [rsp + 0x20], rbx
mov edx, 8
mov r8d, 0x40000001
xor r9d, r9d
call qword [sym.imp.CRYPT32.dll_CryptBinaryToStringW]
test eax, eax
je 0x1400595b7
mov r12d, dword [rsp + 0x60]
add r12, r12
mov rcx, r12
call fcn.140055a0c
mov r15, rax
xor r13d, r13d
mov rcx, rax
xor edx, edx
mov r8, r12
call sub.VCRUNTIME140.dll_memset
mov qword [rsp + 0x20], rbx
lea rcx, [rsp + 0x68]
mov edx, 8
mov r8d, 0x40000001
mov r9, r15
call qword [sym.imp.CRYPT32.dll_CryptBinaryToStringW]
test eax, eax
cmovne r13, r15
mov qword [rsi], r13
jne 0x1400595be
mov rcx, r15
call fcn.140055a14
jmp 0x1400595be
mov rcx, qword [rsp + 0x68]
xor edx, edx
call sub.bcrypt.dll_BCryptCloseAlgorithmProvider
jmp 0x140059301
mov qword [rsi], 0
mov rcx, r14
call fcn.140055a14
jmp 0x140059308