Function at 0x14008c410
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 r14, r9
mov rbx, r8
mov r13, rdx
mov rax, qword [rsp + 0xe8]
mov rcx, qword [0x140241038]
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
je 0x14008c64a
mov r9, qword [rsp + 0xe0]
mov eax, dword [rsp + 0x68]
mov ecx, dword [rsp + 0x6c]
lea rsi, str.User_Choice_set_via_Windows_User_Experience_D18B6DD5_6124_4341_9318_804003BAFA0B
mov qword [rsp + 0x30], rsi
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], ecx
lea r12, str._s_s_s_08lx_08lx_s
mov rcx, r12
mov rdx, rbx
mov r8, r14
call fcn.14008de80
cdqe
mov r15, r13
lea r13, [rax + 1]
lea rbp, [rax*2 + 2]
cmp eax, 0xffffffff
mov rax, 0xffffffffffffffff
cmovl rbp, rax
mov rcx, rbp
call fcn.14015371c
mov rdi, rax
mov rcx, rax
xor edx, edx
mov r8, rbp
call fcn.140157270
mov eax, dword [rsp + 0x68]
mov ecx, dword [rsp + 0x6c]
mov qword [rsp + 0x48], rsi
mov dword [rsp + 0x40], eax
mov dword [rsp + 0x38], ecx
mov rax, qword [rsp + 0xe0]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x20], rbx
mov rcx, rdi
mov rdx, r13
mov r13, r15
mov r8, 0xffffffffffffffff
mov r9, r12
call fcn.14008df00
mov rcx, rdi
call qword [sym.imp.USER32.dll_CharLowerW]
test rdi, rdi
je 0x14008c64a
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_lstrlenW]
lea ebp, [rax*2 + 2]
cmp ebp, 7
jbe 0x14008c638
lea rcx, [rsp + 0x68]
mov qword [rcx], 0
lea rdx, [0x1402236e6]
xor esi, esi
xor r8d, r8d
xor r9d, r9d
call sub.bcrypt.dll_BCryptOpenAlgorithmProvider
test eax, eax
js 0x14008c638
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 0x14008c62c
mov rcx, qword [rsp + 0x60]
xor ebx, ebx
mov rdx, rdi
mov r8d, ebp
xor r9d, r9d
call sub.bcrypt.dll_BCryptHashData
test eax, eax
js 0x14008c5fe
mov ecx, reloc.WS2_32.dll_recv
call fcn.14015371c
mov rbx, rax
xorps xmm0, xmm0
movups xmmword [rax], xmm0
mov rcx, qword [rsp + 0x60]
mov rdx, rax
mov r8d, reloc.WS2_32.dll_recv
xor r9d, r9d
call sub.bcrypt.dll_BCryptFinishHash
test eax, eax
jns 0x14008c5fe
test rbx, rbx
je 0x14008c5fc
mov rcx, rbx
call fcn.140153724
xor ebx, ebx
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 rbx, rbx
je 0x14008c638
mov eax, 0
cmp ebp, 8
jl 0x14008c7a7
jmp 0x14008c685
mov rcx, qword [rsp + 0x68]
xor edx, edx
call sub.bcrypt.dll_BCryptCloseAlgorithmProvider
mov qword [r13], 0
mov rcx, rdi
call fcn.140153724
jmp 0x14008c652
mov qword [r13], 0
mov rcx, qword [rsp + 0x70]
xor rcx, rsp
call fcn.1401542e0
mov rax, r13
add rsp, 0x78
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov qword [r13], 0
mov rcx, rbx
call fcn.140153724
jmp 0x14008c640
sar ebp, 3
mov ecx, dword [rbx]
mov edx, dword [rbx + 4]
or ecx, 1
or edx, 1
cmp ebp, 2
mov r8d, 1
cmovge r8d, ebp
xor r10d, r10d
xor eax, eax
xor r9d, r9d
xor r15d, r15d
xor r11d, r11d
mov esi, dword [rdi + r10*8]
add r11d, esi
imul r11d, ecx
rol r11d, 0x10
imul r11d, r11d, 0xcf98b111
rol r11d, 0x10
mov ebp, dword [rdi + r10*8 + 4]
imul r11d, r11d, 0x87085b9f
rol r11d, 0x10
imul r11d, r11d, 0x12ceb96d
rol r11d, 0x10
imul r11d, r11d, 0x257e1d83
add r9d, r11d
add r15d, esi
mov esi, ecx
imul esi, r15d
rol r15d, 0x10
imul r15d, r15d, 0xef0569fb
add r15d, esi
imul esi, r15d, 0x79f8a395
shr r15d, 0x10
imul r15d, r15d, 0x689b6b9f
add r15d, esi
mov esi, r15d
rol esi, 0x10
imul esi, esi, 0xc3efea97
add r11d, ebp
imul r11d, edx
rol r11d, 0x10
add esi, r15d
imul r11d, r11d, 0xa27416f5
rol r11d, 0x10
add eax, esi
imul r11d, r11d, 0xd38396ff
rol r11d, 0x10
imul r11d, r11d, 0x7c932b89
rol r11d, 0x10
imul r11d, r11d, 0xbfa49f69
add r9d, r11d
add esi, ebp
mov ebp, edx
imul ebp, esi
rol esi, 0x10
imul esi, esi, 0xc31713db
add esi, ebp
imul ebp, esi, 0x59c3af2d
shr esi, 0x10
imul esi, esi, 0xddcd1f0f
add esi, ebp
mov ebp, esi
rol ebp, 0x10
imul r15d, ebp, 0x35bd1ec9
add r15d, esi
add eax, r15d
inc r10
cmp r8, r10
jne 0x14008c6ae
xor r15d, r11d
xor eax, r9d
lea rcx, [rsp + 0x68]
mov dword [rcx], r15d
mov dword [rcx + 4], eax
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 0x14008c673
mov r12d, dword [rsp + 0x60]
add r12, r12
mov rcx, r12
call fcn.14015371c
mov r15, rax
xor esi, esi
mov rcx, rax
xor edx, edx
mov r8, r12
call fcn.140157270
mov qword [rsp + 0x20], r14
lea rcx, [rsp + 0x68]
mov edx, 8
mov r8d, 0x40000001
mov r9, r15
call qword [sym.imp.CRYPT32.dll_CryptBinaryToStringW]
test eax, eax
cmovne rsi, r15
mov qword [r13], rsi
test r15, r15
je 0x14008c67b
test eax, eax
jne 0x14008c67b
mov rcx, r15
call fcn.140153724
jmp 0x14008c67b