Function at 0x140059fd0
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 [0x1400ab080]
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 0x14005a059
mov qword [rsi], 0
mov rcx, qword [rsp + 0x70]
xor rcx, rsp
call fcn.140057bf0
mov rax, rsi
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.140059a40
cdqe
lea r13, [rax + 1]
lea rbp, [rax + rax]
add rbp, 2
cmp eax, 0xffffffff
mov rax, 0xffffffffffffffff
cmovl rbp, rax
mov rcx, rbp
call fcn.140056c40
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
mov r8, 0xffffffffffffffff
lea r9, str._s_s_s_08lx_08lx_s
call fcn.140059ac0
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 0x14005a12c
mov qword [rsi], 0
mov rcx, rdi
call fcn.140056c84
jmp 0x14005a038
lea rcx, [rsp + 0x68]
mov qword [rcx], 0
lea rdx, [0x1400a4b2a]
xor r14d, r14d
xor r8d, r8d
xor r9d, r9d
call sub.bcrypt.dll_BCryptOpenAlgorithmProvider
test eax, eax
js 0x14005a118
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 0x14005a3bd
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 0x14005a1d5
mov ecx, 0x10
call fcn.140056c40
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 0x14005a1d5
mov rcx, r14
call fcn.140056c84
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 0x14005a118
mov edx, 0
cmp ebp, 8
jl 0x14005a337
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 r11d, r12d
mov r12d, r11d
rol r12d, 0x10
add r10d, r15d
imul r12d, r12d, 0xef0569fb
imul r11d, eax
add r11d, r12d
imul r12d, r11d, 0x79f8a395
shr r11d, 0x10
imul r13d, r11d, 0x689b6b9f
add r13d, r12d
mov r11d, r13d
rol r11d, 0x10
imul r11d, r11d, 0xc3efea97
add r15d, ebp
imul r15d, ecx
rol r15d, 0x10
add r11d, r13d
imul r15d, r15d, 0xa27416f5
rol r15d, 0x10
add edx, r11d
imul r15d, r15d, 0xd38396ff
rol r15d, 0x10
imul r15d, r15d, 0x7c932b89
rol r15d, 0x10
imul r15d, r15d, 0xbfa49f69
add r11d, ebp
mov ebp, r11d
rol ebp, 0x10
add r10d, r15d
imul ebp, ebp, 0xc31713db
imul r11d, ecx
add r11d, ebp
imul ebp, r11d, 0x59c3af2d
shr r11d, 0x10
imul r12d, r11d, 0xddcd1f0f
add r12d, ebp
mov r11d, r12d
rol r11d, 0x10
imul r11d, r11d, 0x35bd1ec9
add r11d, r12d
add edx, r11d
inc r9
cmp r8, r9
jne 0x14005a230
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 0x14005a3ce
mov r12d, dword [rsp + 0x60]
add r12, r12
mov rcx, r12
call fcn.140056c40
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 0x14005a3d5
mov rcx, r15
call fcn.140056c84
jmp 0x14005a3d5
mov rcx, qword [rsp + 0x68]
xor edx, edx
call sub.bcrypt.dll_BCryptCloseAlgorithmProvider
jmp 0x14005a118
mov qword [rsi], 0
mov rcx, r14
call fcn.140056c84
jmp 0x14005a11f